Message ID | 20241220112613.22647-10-stefan.herbrechtsmeier-oss@weidmueller.com |
---|---|
State | New |
Headers | show |
Series | Concept for tightly coupled package manager (Node.js, Go, Rust) | expand |
On Fri, 2024-12-20 at 12:26 +0100, Stefan Herbrechtsmeier via lists.openembedded.org wrote: > From: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> > > Add a `destdir` variable to the `FetchData` class to record destination > directory of unpack method. Users of the `FetchData` class can use the > directory to unpack additional content into the directory. The git > fetcher class already records the destination directory in `destdir` > class variable of `FetchData`. > > Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> > --- > > lib/bb/fetch2/__init__.py | 3 +++ > 1 file changed, 3 insertions(+) Where/how is this being used/needed? unpackdir is only used during the do_unpack task and we've deliberately kept this out of FetchFata since in general it is meant to be independent of the target location. Cheers, Richard
Am 23.12.2024 um 10:56 schrieb Richard Purdie: > On Fri, 2024-12-20 at 12:26 +0100, Stefan Herbrechtsmeier via lists.openembedded.org wrote: >> From: Stefan Herbrechtsmeier<stefan.herbrechtsmeier@weidmueller.com> >> >> Add a `destdir` variable to the `FetchData` class to record destination >> directory of unpack method. Users of the `FetchData` class can use the >> directory to unpack additional content into the directory. The git >> fetcher class already records the destination directory in `destdir` >> class variable of `FetchData`. >> >> Signed-off-by: Stefan Herbrechtsmeier<stefan.herbrechtsmeier@weidmueller.com> >> --- >> >> lib/bb/fetch2/__init__.py | 3 +++ >> 1 file changed, 3 insertions(+) > Where/how is this being used/needed? The git fetcher already set the variable. The variable is useful to know the destination directory including subdir and destsuffix parameter. Otherwise the user of unpack must handle the parameters manual (see S variable). The dependency mixin unpack the main source to process the dependency specification file and need to know the destination folder of the content. > unpackdir is only used during the do_unpack task and we've deliberately > kept this out of FetchFata since in general it is meant to be > independent of the target location. The unpackdir depends on the subdir and destsuffix parameter of the FetchData and thereby the target location isn't independent of the FetchData. Only the unpackdir root is independent of the FetchData. Would it be acceptable to save the relative destination directory inside the FetchData or to add a function to determine it? The function could be used to eliminate code duplication inside generic and git specific unpack.
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index 0c2d6d73e..3a7030bf3 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -1314,6 +1314,7 @@ class FetchData(object): if not self.pswd and "pswd" in self.parm: self.pswd = self.parm["pswd"] self.setup = False + self.destdir = None def configure_checksum(checksum_id): checksum_plain_name = "%ssum" % checksum_id @@ -1609,6 +1610,8 @@ class FetchMethod(object): else: unpackdir = rootdir + urldata.destdir = unpackdir + if not unpack or not cmd: urldata.unpack_tracer.unpack("file-copy", unpackdir) # If file == dest, then avoid any copies, as we already put the file into dest!