>> I have never used the version part of this file actually, I use it 
>> solely to set the source path to a local tree.  
Same here. We actually used it to interface OpenWrt with SCM which are not 
supported natively by OpenWrt like P4.

> Right, that is a valid usecase, but package-version-override.mk is a very 
> poor and hackish way of doing that. I have just made a commit that adds back 
> support for overriding the package source directory, but in a different way:
> make package/<name>/prepare USE_SOURCE_DIR=/path/to/source/dir
> That way you won't have to add the package-version-override hack to any 
> package you want to use this on. You also don't need to make changes to make 
> menuconfig anymore.
> What I don't like about the build directory override approach is the lack of 
> proper 'clean' handling. I have a different workflow that supports cleaning 
> packages just fine, described below:
Agreed. It's actually better. Thanks for the pointer.

> What I'm doing is this: I set CONFIG_SRC_TREE_OVERRIDE=y, and in the package 
> directory create a symlink git-src, pointing at the .git subdirectory of a 
> git clone of the package.
> The build system creates a new build directory in the standard location, 
> creates the .git symlink and runs git checkout .
> That way I can work on the same tree for multiple targets in multiple build 
> dirs and commit locally (just need to run git checkout . in the other 
> checkouts after I made some changes).
Even better :)

-----Original Message-----
From: openwrt-devel [mailto:openwrt-devel-boun...@lists.openwrt.org] On Behalf 
Of Felix Fietkau
Sent: Friday, April 18, 2014 8:02 AM
To: Karl P; openwrt-devel@lists.openwrt.org
Subject: Re: [OpenWrt-Devel] [PATCH 1/4] include: Restore 
package-version-override.mk

On 2014-04-18 15:59, Karl P wrote:
> 
> 
> On 04/18/2014 12:04 PM, Felix Fietkau wrote:
>> On 2014-04-17 21:12, Mathieu Olivari wrote:
>>> This feature is actually quite useful. Obviously it's an opt-in 
>>> approach from a package standpoint, but it's pretty useful to swap 
>>> package versions as well as pulling components TOT. In that case, 
>>> working directly on the GIT tree by enabling that option is 
>>> sometimes seen as a more flexible way than having to modify the 
>>> Makefile to point to the git tree location.
>> How is it more flexible? Also, since this applies only to packages 
>> that include this file directly, it would be much better if the 
>> package would simply allow selection between a number of *supported* 
>> versions, rather than just letting the user put in arbitrary values.
>>
>> I considered the addition of this file a mistake from the very 
>> beginning, we only left it in for SDK collaboration with Lantiq 
>> (which has dried out).
> 
> I have never used the version part of this file actually, I use it 
> solely to set the source path to a local tree.  I use this for 
> packages that I develop both the application, and the packaging, as I 
> find it significantly simpler to do a "make menuconfig" step in my 
> primary build root, and enter a path, rather than making sure I have a 
> src-link in my feed to the package, and then modify the (revision 
> controlled) package makefile as well.  Mostly because modifying a 
> package makefile to not download from version control but to build 
> from some local existing source requires multiple edits to the package 
> makefile, which I then need to make sure that I don't commit, even if I had 
> _other_ parts of the package makefile I did want to commit.
Right, that is a valid usecase, but package-version-override.mk is a very poor 
and hackish way of doing that. I have just made a commit that adds back support 
for overriding the package source directory, but in a different way:

make package/<name>/prepare USE_SOURCE_DIR=/path/to/source/dir

That way you won't have to add the package-version-override hack to any package 
you want to use this on. You also don't need to make changes to make menuconfig 
anymore.

What I don't like about the build directory override approach is the lack of 
proper 'clean' handling. I have a different workflow that supports cleaning 
packages just fine, described below:

> As earlier, if someone can outline an alternative streamlined method 
> of working on application source directly, I'm happy to hear it, 
> especially if it's actually documented anywhere.  However, failing 
> that, I felt that the removal of this as "lantiq only" was extremely 
> arbitrary, as it's now rather obviously getting used by other people too.
What I'm doing is this: I set CONFIG_SRC_TREE_OVERRIDE=y, and in the package 
directory create a symlink git-src, pointing at the .git subdirectory of a git 
clone of the package.

The build system creates a new build directory in the standard location, 
creates the .git symlink and runs git checkout .
That way I can work on the same tree for multiple targets in multiple build 
dirs and commit locally (just need to run git checkout . in the other checkouts 
after I made some changes).

- Felix
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to