mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Simon Falsig <sfalsig@verity.ch>
To: "ptxdist@pengutronix.de" <ptxdist@pengutronix.de>
Subject: [ptxdist] [PATCH] ipkg-push: expose checksum type in platformconfig
Date: Wed, 15 Apr 2020 08:41:18 +0000	[thread overview]
Message-ID: <PR1PR02MB4826D938DBC06C1350FE5E15BFDB0@PR1PR02MB4826.eurprd02.prod.outlook.com> (raw)

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
+
 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
+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
        @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

             reply	other threads:[~2020-04-15  8:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-15  8:41 Simon Falsig [this message]
2020-04-15 13:55 ` Simon Falsig
2020-04-15 16:26   ` Simon Falsig
2020-04-16  6:48 ` Michael Olbrich
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=PR1PR02MB4826D938DBC06C1350FE5E15BFDB0@PR1PR02MB4826.eurprd02.prod.outlook.com \
    --to=sfalsig@verity.ch \
    --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