[OpenWrt-Devel] couple questions about downloading for a new build

Robert P. J. Day rpjday at crashcourse.ca
Thu Sep 11 09:12:03 EDT 2014


On Thu, 11 Sep 2014, Yousong Zhou wrote:

> On 11 September 2014 20:30, Robert P. J. Day <rpjday at crashcourse.ca> wrote:
> >
> >   first, i created a local mirror with all the tarballs i
> > downloaded during an earlier build, and configured a new build to
> > use that, and i noticed that the download operation *copied* over
> > the tarballs into the dl/ directory. is there any reason that
> > symlinks aren't used, rather than doing actual copies? wouldn't
> > symlinks work just as well?
>
> I take mirrors as places where the build system will try to fetch
> those tarballs, into CONFIG_DOWNLOAD_FOLDER which defaults to
> $(TOPDIR)/dl/ which in my local tree is a symbolic link to the
> actually directory holding those tarballs.  It works quite well.

  i realize that's *one* way to do it, and it's how i did it
originally, but i chose instead to set up a single local mirror
directory that each build can "fetch" from into their personal dl/
directory, whereupon i noticed that fetching from that local mirror
really is doing a full copy, whereas it *seems* that just doing a
symlink would work just as well and not use up all that disk space.

  i'm just wondering why symlinks aren't used.

> >   also, i wondered if building the host tools would take advantage
> > of already-installed host tools that match the exact version that
> > openwrt needs. in my new build, the version of "patch" required is
> > ostensibly 2.7.1, which is precisely the version already installed
> > on my host, but it appears the patch-2.7.1.tar.xz tarball was
> > still copied (from the local mirror, admittedly) into the dl/
> > directory.
>
> IMHO, for a build system complex like OpenWrt, it's better to be
> self-contained and do things in a more predictable/controlled way.

  i agree, it was just the way i was reading the comment below that i
think confused me.

> >   i haven't followed the Makefile structures far enough yet to see
> > what should happen, but a comment in tools/Makefile reads:
> >
> > # in case there is no patch tool on the host we need to make patch
> > # tool a dependency for tools which have patches directory
> >
> > which *seems* to suggest that the build will look for patch already
> > installed on the host and take advantage of it if it's there.
>
> No, it tries to handle the case that some host tools needs to be
> patched (having patches/ directory) before getting compiled in which
> case those tools/XXX/compile needs to have a dependence on
> tools/patch/install.

  ok, i think i see what that comment means ... if any tool needs
patching, then patch is registered as a necessary host tool and it
*will* be downloaded and built, even if it already exists on the host,
correct?

  however, assuming i understand that, there are now two new things
that puzzle me. first, i selected CONFIG_CCACHE and, as i read it,
that would normally mean i would need the ccache utility to be
downloaded and built as a host tool (even if it's already installed,
yes?). but it's not. even though:

CONFIG_CCACHE=y

i see no ccache tarball in my dl/ direectory. ccache is, in fact,
installed on my build host, but i thought we just agreed that that
shouldn't make a difference. so what would force ccache to be
downloaded and built?

  finally, mtd-utils -- the recipe specifies both a version number and
git info in the Makefile:

PKG_NAME:=mtd-utils
PKG_VERSION:=1.4.5

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=git://git.infradead.org/mtd-utils.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=5319b84974fcb71504aed2d1b8285e9c0a4a4bb8
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_CAT:=zcat

  now, the first time i downloaded all the tools, git cloned the
mtd-utils repository, and created the tarball mtd-utils-1.4.5.tar.gz.
however, even though i added that to my local mirror directory, the
download uses a "git clone" every time. should it not look in my local
mirror, and notice that the tarball is there? or does that not apply
to source that is cloned from a git repo?

rday

-- 

========================================================================
Robert P. J. Day                                 Ottawa, Ontario, CANADA
                        http://crashcourse.ca

Twitter:                                       http://twitter.com/rpjday
LinkedIn:                               http://ca.linkedin.com/in/rpjday
========================================================================
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list