From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-qe0-x230.google.com ([2607:f8b0:400d:c02::230]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1W4KNE-0007u3-Lx for ptxdist@pengutronix.de; Sat, 18 Jan 2014 02:06:58 +0100 Received: by mail-qe0-f48.google.com with SMTP id ne12so2869136qeb.35 for ; Fri, 17 Jan 2014 17:06:50 -0800 (PST) From: jon@ringle.org Date: Fri, 17 Jan 2014 20:06:43 -0500 Message-Id: <1390007203-31694-1-git-send-email-jon@ringle.org> Subject: [ptxdist] [PATCH 2/2] ptxdist getdev: Download dev packages from ${PTXCONF_SETUP_DEVMIRROR} Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de Cc: Jon Ringle From: Jon Ringle There's probably clean up to be done with this, but here goes... :) This patch allows you to setup a dev package mirror to hold *-dev.tar.gz packages. Upload your *-dev.tar.gz packages to your mirror, then you can avoid rebuilding all your packages by doing: ptxdist getdev Signed-off-by: Jon Ringle --- bin/ptxdist | 5 +++++ config/setup/Kconfig | 10 ++++++++++ rules/post/get.make | 1 + rules/post/ptxd_make_world_get.make | 12 ++++++++++++ scripts/lib/ptxd_lib_dgen.awk | 5 +++++ scripts/lib/ptxd_make_get.sh | 28 +++++++++++++++++++++------- 6 files changed, 54 insertions(+), 7 deletions(-) diff --git a/bin/ptxdist b/bin/ptxdist index f9cbdec..663c41e 100755 --- a/bin/ptxdist +++ b/bin/ptxdist @@ -1789,6 +1789,11 @@ EOF fi exit ;; + getdev) + check_premake && + ptxd_make_log getdev + exit + ;; go|images) do_${cmd} exit diff --git a/config/setup/Kconfig b/config/setup/Kconfig index 790276b..e90949b 100644 --- a/config/setup/Kconfig +++ b/config/setup/Kconfig @@ -93,6 +93,16 @@ config SETUP_PROJECTPATH endmenu +menu "Dev Download " + +config SETUP_DEVMIRROR + string "Dev package Mirror" + help + Enter a URL where *-dev.tar.gz packages can be downloaded + Use: ptxdist getdev + +endmenu + menu "Source Directories" config SETUP_SRCDIR diff --git a/rules/post/get.make b/rules/post/get.make index 7e7ad25..58ea81d 100644 --- a/rules/post/get.make +++ b/rules/post/get.make @@ -1,6 +1,7 @@ # -*-makefile-*- get: $(addprefix $(STATEDIR)/,$(addsuffix .get,$(PACKAGES) $(HOST_PACKAGES) $(CROSS_PACKAGES) $(LAZY_PACKAGES))) +getdev: $(addprefix $(STATEDIR)/,$(addsuffix .getdev,$(PACKAGES) $(HOST_PACKAGES) $(CROSS_PACKAGES) $(LAZY_PACKAGES))) # vim600:set foldmethod=marker: # vim600:set syntax=make: diff --git a/rules/post/ptxd_make_world_get.make b/rules/post/ptxd_make_world_get.make index 152674c..828a73e 100644 --- a/rules/post/ptxd_make_world_get.make +++ b/rules/post/ptxd_make_world_get.make @@ -26,6 +26,9 @@ $(SRCDIR)/%: @$(call targetinfo) @$(call get, $($@)) +$(call remove_quotes, $(PTXCONF_PROJECT_DEVPKGDIR))/%: + @$(call targetinfo) + @$(call getdev, $@) $(STATEDIR)/%.get: @$(call targetinfo) @@ -35,6 +38,12 @@ $(STATEDIR)/%.get: $(call world/check_src, $($(src)));) @$(call touch) +$(STATEDIR)/%.getdev: + @$(call targetinfo) +# @$(foreach src,$($(PTX_MAP_TO_PACKAGE_$(*))_DEVPKG), \ +# $(call world/getdev, $($(src)));) + @$(call touch) + world/get = \ $(call world/env, $(1)) \ ptxd_make_world_get @@ -59,4 +68,7 @@ get = \ check_src = \ ptxd_make_check_src "$($(strip $(1))_SOURCE)" "$($(strip $(1))_MD5)" +getdev = \ + ptxd_make_getdev "$(strip $(1))" "$(call remove_quotes, $(PTXCONF_SETUP_DEVMIRROR))/$(notdir $(1))" + # vim: syntax=make diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk index 7f790c9..1829d64 100644 --- a/scripts/lib/ptxd_lib_dgen.awk +++ b/scripts/lib/ptxd_lib_dgen.awk @@ -241,6 +241,11 @@ function write_deps_pkg_all(this_PKG, this_pkg) { # .get rule # print "$(STATEDIR)/" this_pkg ".get: $(" this_PKG "_SOURCES)" > DGEN_DEPS_POST; + print "ifneq ($(strip $(PTXCONF_SETUP_DEVMIRROR)),)" > DGEN_DEPS_POST; + print "ifneq ($($(" this_PKG "_DEVPKG)),NO)" > DGEN_DEPS_POST; + print "$(STATEDIR)/" this_pkg ".getdev: $(call remove_quotes, $(PTXCONF_PROJECT_DEVPKGDIR))/$(" this_PKG "_DEVPKG)" > DGEN_DEPS_POST; + print "endif" > DGEN_DEPS_POST; + print "endif" > DGEN_DEPS_POST; } function write_deps_pkg_active(this_PKG, this_pkg, prefix) { diff --git a/scripts/lib/ptxd_make_get.sh b/scripts/lib/ptxd_make_get.sh index f4d7922..d310ac2 100644 --- a/scripts/lib/ptxd_make_get.sh +++ b/scripts/lib/ptxd_make_get.sh @@ -252,7 +252,10 @@ export -f ptxd_make_get_download_permitted # - no-check-certificate don't check server certificate (https only) # - no-proxy don't use proxy even if configured # -ptxd_make_get() { +_ptxd_make_get() { + local exit_on_fail="${1}" + shift + local -a argv local ptxmirror_url local mrd=false # is mirror already part of urls? @@ -280,7 +283,7 @@ ptxd_make_get() { shift case "${url}" in - ${PTXCONF_SETUP_PTXMIRROR}/*/*) + ${PTXCONF_SETUP_PTXMIRROR}/*/*|${PTXCONF_SETUP_DEVMIRROR}/*) # keep original URL, for stuff like glibc argv[${#argv[@]}]="${url}" mrd=true @@ -397,11 +400,22 @@ ptxd_make_get() { esac done - echo - echo "Could not download package" - echo "URL: ${orig_argv[@]}" - echo - exit 1 + if [ "${exit_on_fail}" = "y" ]; then + echo + echo "Could not download package" + echo "URL: ${orig_argv[@]}" + echo + exit 1 + fi } +export -f _ptxd_make_get +ptxd_make_get() { + _ptxd_make_get y "${@}" +} export -f ptxd_make_get + +ptxd_make_getdev() { + _ptxd_make_get n "${@}" +} +export -f ptxd_make_getdev -- 1.7.10.4 -- ptxdist mailing list ptxdist@pengutronix.de