Custom extract command agian agian
Sorry for the mess... (I tested in the wrong repos....)
Here is a proposal which only have one stamp file and is tested.
PATCH 1/1 Makefile.package.in: Makes it possible to override the default extract commands
When using GENTARGETS (or macroes depending on it), there is no way of specifying a custom extraction procedure. When using the patch one can simply define $(PACKAGE_NAME)_EXTRACT_CMDS which will override the default. If non is defined it will fall back to the default extract procedure.
An example could look like this:
--- PACKAGE BEGIN ---
FGLRX_VERSION=11-3 FGLRX_SOURCE:=ati-driver-installer-$(FGLRX_VERSION)-x86.x86_64.run FGLRX_SITE:=http://www2.ati.com/drivers/linux/
define FGLRX_EXTRACT_CMDS
sh $(DL_DIR)/$(FGLRX_SOURCE) --extract $(@D)
endef
$(eval $(call GENTARGETS,package,fglrx))
--- PACKAGE END ---
--- package/Makefile.package.in | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
package/Makefile.package.in +5 -2
@@ -243,8 +243,7 @@ endif $(BUILD_DIR)/%/.stamp_extracted: @$(call MESSAGE,"Extracting") $(Q)mkdir -p $(@D) - $(Q)$(if $($(PKG)_SOURCE),$(INFLATE$(suffix $($(PKG)_SOURCE))) $(DL_DIR)/$($(PKG)_SOURCE) | \ - $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $(@D) $(TAR_OPTIONS) -) + $($(PKG)_EXTRACT_CMDS) # some packages have messed up permissions inside $(Q)chmod -R ug+rw $(@D) $(foreach hook,$($(PKG)_POST_EXTRACT_HOOKS),$(call $(hook))$(sep))
@@ -425,6 +424,10 @@ $(2)_TARGET_UNINSTALL = $$($(2)_DIR)/.stamp_uninstalled $(2)_TARGET_CLEAN = $$($(2)_DIR)/.stamp_cleaned $(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned +# default extract command +$(2)_EXTRACT_CMDS ?= $(if $($(2)_SOURCE),$(INFLATE$(suffix $($(2)_SOURCE))) $(DL_DIR)/$($(2)_SOURCE) | \ + $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -) + # post-steps hooks $(2)_POST_EXTRACT_HOOKS ?= $(2)_POST_PATCH_HOOKS ?=
Signature · 1 line
1.7.3.4
PATCH 1/1 Makefile.package.in: Makes it possible to override the default extract commands
Hello Allan,
Quoted 1 line · On Tue, 10 May 2011 13:34:14 +0200 "Allan W. Nielsen" <[email protected]> wrote:
--- PACKAGE BEGIN ---
Please don't use --- at the beginning of a line in your commit message. Git believes that the rest of the message shouldn't be included in the commit message when applying your patch.
package/Makefile.package.in $(2)_TARGET_UNINSTALL = $$($(2)_DIR)/.stamp_uninstalled · line 429
Quoted 3 lines
package/Makefile.package.in +3
-0+# default extract command +$(2)_EXTRACT_CMDS ?= $(if $($(2)_SOURCE),$(INFLATE$(suffix $($(2)_SOURCE))) $(DL_DIR)/$($(2)_SOURCE) | \ + $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)
Hm, this is not some nice. I'm currently testing your patch, I'll see if I find a better way of writing this.
Thanks!
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/1 Makefile.package.in: Makes it possible to override the default extract commands
Hello Allan,
Quoted 8 lines · On Tue, 10 May 2011 20:43:32 +0200 Thomas Petazzoni…
Quoted 5 lines
+# default extract command
+$(2)_EXTRACT_CMDS ?= $(if $($(2)_SOURCE),$(INFLATE$(suffix $($(2)_SOURCE))) $(DL_DIR)/$($(2)_SOURCE) | \(quoted diff) +1
-0+ $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR)$(TAR_OPTIONS) -)
Hm, this is not some nice. I'm currently testing your patch, I'll see if I find a better way of writing this.
I haven't really searched a better way of writing this, but I've used your patch and found some problem with it. It does not quote sufficiently the variables, so things break with host packages.
I have been able to get things working with:
package/Makefile.package.in +2 -1
@@ -425,7 +425,8 @@ $(2)_TARGET_CLEAN = $$($(2)_DIR)/.stamp_cleaned $(2)_TARGET_DIRCLEAN = $$($(2)_DIR)/.stamp_dircleaned # default extract command -$(2)_EXTRACT_CMDS ?= $(if $($(2)_SOURCE),$(INFLATE$(suffix $($(2)_SOURCE))) $(DL_DIR)/$($(2)_SOURCE) | \ +$(2)_EXTRACT_CMDS ?= \ + $$(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $(DL_DIR)/$$($(2)_SOURCE) | \ $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)
On top of what you did.
Regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/1 Makefile.package.in: Makes it possible to override the default extract commands
Hi Thomas
Sorry for not replaying the last couple of days, but I have been busy with some other concerns.
However, when I did a rebuild I did also realize the problems with the solution I suggested. Since then I changed the extract_cmd statement to also the same as you have suggested:
430 $(2)_EXTRACT_CMDS ?= $(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $(DL_DIR)/$$($(2)_SOURCE) | \
431 ????????$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)
This solution has been working fine for me, (and it should make no difference if I changes it to your suggestion).
Anyways, I would like to know where you stand on this, do you think this solution to be included in buildroot or would you prefer to wait for a better suggestion?
Regards
Quoted 49 lines · Thomas Petazzoni
Hello Allan,
Quoted 8 lines · On Tue, 10 May 2011 20:43:32 +0200 Thomas Petazzoni…
Quoted 5 lines
+# default extract command
+$(2)_EXTRACT_CMDS ?= $(if $($(2)_SOURCE),$(INFLATE$(suffix $($(2)_SOURCE))) $(DL_DIR)/$($(2)_SOURCE) | \
+ ? $(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)Hm, this is not some nice. I'm currently testing your patch, I'll see if I find a better way of writing this.
I haven't really searched a better way of writing this, but I've used your patch and found some problem with it. It does not quote sufficiently the variables, so things break with host packages.
I have been able to get things working with:
package/Makefile.package.in +0
-0@@ -425,7 +425,8 @@ $(2)_TARGET_CLEAN = ? ? ? ? $$($(2)_DIR)/.stamp_cleaned?$(2)_TARGET_DIRCLEAN = ? ? ? ? $$($(2)_DIR)/.stamp_dircleaned
?# default extract command
-$(2)_EXTRACT_CMDS ?= $(if $($(2)_SOURCE),$(INFLATE$(suffix $($(2)_SOURCE))) $(DL_DIR)/$($(2)_SOURCE) | \
+$(2)_EXTRACT_CMDS ?= \
+ ? ? ? $$(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $(DL_DIR)/$$($(2)_SOURCE) | \
? ? ? ?$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS)
? ? ? ?-)On top of what you did.
Regards,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
PATCH 1/1 Makefile.package.in: Makes it possible to override the default extract commands
Hello,
Quoted 9 lines · On Wed, 18 May 2011 16:39:42 +0200 Allan Nielsen <[email protected]> wrote:
Hi Thomas
Sorry for not replaying the last couple of days, but I have been busy with some other concerns.
However, when I did a rebuild I did also realize the problems with the solution I suggested. Since then I changed the
extract_cmdstatement to also the same as you have suggested:
Quoted 7 lines
430 $(2)_EXTRACT_CMDS ?= $(if $$($(2)_SOURCE),$$(INFLATE$$(suffix $$($(2)_SOURCE))) $(DL_DIR)/$$($(2)_SOURCE) | \
431 ????????$(TAR) $(TAR_STRIP_COMPONENTS)=1 -C $$($(2)_DIR) $(TAR_OPTIONS) -)This solution has been working fine for me, (and it should make no difference if I changes it to your suggestion).
Ok.
Quoted 3 lines
Anyways, I would like to know where you stand on this, do you think this solution to be included in buildroot or would you prefer to wait for a better suggestion?
I'm fine with your existing proposal. Could you repost a proper patch with the quoting fixes, so that I can give it a test, and send my Acked-by ?
Note however that we are pretty close to the 2011.05 release, so it is quite likely that Peter will delay such infrastructure changes until after the release. But that doesn't prevent us from making progress on it, getting my Acked-by, and therefore be on track to merge it post-2011.05.
Regards,
Thomas
Signature · 4 lines
Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com
PATCH 1/1 Makefile.package.in: Makes it possible to override the default extract commands
Hi
Quoted 3 lines
I'm fine with your existing proposal. Could you repost a proper patch with the quoting fixes, so that I can give it a test, and send my Acked-by ?
Sure
Quoted 5 lines
Note however that we are pretty close to the 2011.05 release, so it is quite likely that Peter will delay such infrastructure changes until after the release. But that doesn't prevent us from making progress on it, getting my Acked-by, and therefore be on track to merge it post-2011.05.
No problem
--
Allan W. Nielsen