mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: "ptxdist@pengutronix.de" <ptxdist@pengutronix.de>
Cc: Simon Falsig <sfalsig@verity.ch>
Subject: Re: [ptxdist] [PATCH] ipkg-push: expose checksum type in platformconfig
Date: Thu, 16 Apr 2020 08:48:06 +0200	[thread overview]
Message-ID: <20200416064806.GD2081@pengutronix.de> (raw)
In-Reply-To: <PR1PR02MB4826D938DBC06C1350FE5E15BFDB0@PR1PR02MB4826.eurprd02.prod.outlook.com>

On Wed, Apr 15, 2020 at 08:41:18AM +0000, Simon Falsig wrote:
> This allows the checksum type used when creating the pacakge index to
> be set in the platformconfig. Currently supported types are md5 (the
> default), and sha256.
> md5 is kept as default, since the target opkg package needs to be
> specifically configured to be built with sha256 support.
> 
> Also, the ipkg support in ipkg-push has been removed, and it now always
> uses the opkg tools instead. The name is kept, since everything else is
> still using the 'ipkg' naming scheme though.
> ---
>  platforms/image_ipkg.in    | 18 ++++++++++++++++++
>  rules/post/image_ipkg.make | 23 ++++++++++++++++++++---
>  scripts/ipkg-push          |  8 ++++----
>  3 files changed, 42 insertions(+), 7 deletions(-)
> 
> diff --git a/platforms/image_ipkg.in b/platforms/image_ipkg.in
> index dae4fe5b7..018231677 100644
> --- a/platforms/image_ipkg.in
> +++ b/platforms/image_ipkg.in
> @@ -70,6 +70,24 @@ config IMAGE_IPKG_INDEX
>           server it allows ipkg on your target to access your ipkg and
>           install or update them.
>  
> +choice
> +       prompt "checksum type"
> +       default IMAGE_IPKG_CHECKSUM_MD5
> +       help
> +         Sets the checksum type to use when generating the index,
> +         both when pushing to a repository and in PKGDIR.
> +         Note that opkg on the target may need to be specifically
> +          built with support for the selected checksum type.
> +
> +       config IMAGE_IPKG_CHECKSUM_MD5
> +         bool
> +         prompt "md5"
> +
> +       config IMAGE_IPKG_CHECKSUM_SHA256
> +         bool
> +         prompt "sha256"
> +endchoice

Hmmm, we already have the PTXCONF_OPKG_SHA256 option for opkg. Maybe just
use that one?

>  config IMAGE_XPKG_EXTRA_ARGS
>         string
>         prompt "extra arguments passed to ipkg-build/opkg-build"
> diff --git a/rules/post/image_ipkg.make b/rules/post/image_ipkg.make
> index c2171574c..64cdf150f 100644
> --- a/rules/post/image_ipkg.make
> +++ b/rules/post/image_ipkg.make
> @@ -19,13 +19,24 @@ ifdef PTXCONF_IMAGE_IPKG_FORCED_PUSH
>         rm  -rf "$(IMAGE_REPO_DIST_DIR)"
>  endif
>         @echo "pushing ipkg packages to ipkg-repository..."
> -       @$(HOST_ENV) $(PTXDIST_TOPDIR)/scripts/ipkg-push \
> +ifdef PTXCONF_IMAGE_IPKG_CHECKSUM_MD5
> +       @$(HOST_ENV) $(PTXDIST_TOPDIR)/scripts/opkg-push \
>                 --ipkgdir  $(call remove_quotes,$(PKGDIR)) \
>                 --repodir  $(call remove_quotes,$(PTXCONF_SETUP_IPKG_REPOSITORY)) \
>                 --revision $(call remove_quotes,$(PTXDIST_VERSION_FULL)) \
>                 --project  $(call remove_quotes,$(PTXCONF_PROJECT)) \
>                 --dist     $(call remove_quotes,$(PTXCONF_PROJECT)$(PTXCONF_PROJECT_VERSION)) \
> -               --type     opkg
> +               --checksum md5

--checksum $(call ptx/ifdef,PTXCONF_IMAGE_IPKG_CHECKSUM_MD5,md5,sha256)

Or whatever option we end up using.

> +endif
> +ifdef PTXCONF_IMAGE_IPKG_CHECKSUM_SHA256
> +       @$(HOST_ENV) $(PTXDIST_TOPDIR)/scripts/opkg-push \
> +               --ipkgdir  $(call remove_quotes,$(PKGDIR)) \
> +               --repodir  $(call remove_quotes,$(PTXCONF_SETUP_IPKG_REPOSITORY)) \
> +               --revision $(call remove_quotes,$(PTXDIST_VERSION_FULL)) \
> +               --project  $(call remove_quotes,$(PTXCONF_PROJECT)) \
> +               --dist     $(call remove_quotes,$(PTXCONF_PROJECT)$(PTXCONF_PROJECT_VERSION)) \
> +               --checksum sha256
> +endif
>         @echo "ipkg-repository updated"
>  ifdef PTXCONF_IMAGE_IPKG_SIGN_OPENSSL
>         @echo "signing Packages..."
> @@ -50,8 +61,14 @@ PHONY += $(PKGDIR)/Packages
>  $(PKGDIR)/Packages: $(STATEDIR)/host-ipkg-utils.install.post $(STATEDIR)/world.targetinstall
>         @echo "Creating ipkg index '$@'..."
>         @rm -f $(PKGDIR)/Packages*
> +ifdef PTXCONF_IMAGE_IPKG_CHECKSUM_MD5
>         @$(HOST_ENV) opkg-make-index \
> -               -l "$(PKGDIR)/Packages.filelist" -p "$(@)" "$(PKGDIR)"
> +               -l "$(PKGDIR)/Packages.filelist" -p "$(@)" --checksum md5 "$(PKGDIR)"
> +endif
> +ifdef PTXCONF_IMAGE_IPKG_CHECKSUM_SHA256
> +       @$(HOST_ENV) opkg-make-index \
> +               -l "$(PKGDIR)/Packages.filelist" -p "$(@)" --checksum sha256 "$(PKGDIR)"
> +endif

Same here.

Michael

>         @echo "done."
>  
>  # vim: syntax=make
> diff --git a/scripts/ipkg-push b/scripts/ipkg-push
> index 45978b305..6467f0947 100755
> --- a/scripts/ipkg-push
> +++ b/scripts/ipkg-push
> @@ -31,7 +31,7 @@ usage() {
>         echo "  --revision <revision>      dist revision name to be updated"
>         echo "  --project  <projectname>   project name"
>         echo "  --dist     <distname>      use this to make a dist release (optional)"
> -       echo "  --type     <package type>  specify package type (default: ipkg)"
> +       echo "  --checksum <checksum>      specify checksum type, {md5,sha256}, default: md5"
>         echo
>         exit 1
>  }
> @@ -41,7 +41,7 @@ REPODIR=
>  DISTREVISION=
>  PROJECT=
>  DIST=
> -TYPE=ipkg
> +CHECKSUM=md5
>  
>  
>  #
> @@ -55,7 +55,7 @@ while [ $# -gt 0 ]; do
>                 --revision) DISTREVISION=`ptxd_abspath $2`; shift 2 ;;
>                 --project)  PROJECT=$2;                     shift 2 ;;
>                 --dist)     DIST=$2;                        shift 2 ;;
> -               --type)     TYPE=$2;                        shift 2 ;;
> +               --checksum) CHECKSUM=$2;                    shift 2 ;;
>                 *)  usage "unknown option $1" ;;
>         esac
>  done
> @@ -193,7 +193,7 @@ done
>  
>  echo "creating index.....: "
>  
> -(cd $REPODIR/$PROJECT/dists/$DIST && ${TYPE}-make-index . > Packages && gzip -c Packages > Packages.gz)
> +(cd $REPODIR/$PROJECT/dists/$DIST && opkg-make-index --checksum ${CHECKSUM} . > Packages && gzip -c Packages > Packages.gz)
>  
>  exit
>  
> -- 
> 2.17.1
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  parent reply	other threads:[~2020-04-16  6:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-15  8:41 Simon Falsig
2020-04-15 13:55 ` Simon Falsig
2020-04-15 16:26   ` Simon Falsig
2020-04-16  6:48 ` Michael Olbrich [this message]
2020-04-16  7:58   ` Simon Falsig

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=20200416064806.GD2081@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    --cc=sfalsig@verity.ch \
    /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