From: Michael Tremer Date: Sun, 12 Sep 2010 21:15:03 +0000 (+0200) Subject: naoki: Add source download option. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b1eef4c58d256fa217bc460157c50da5582cf3ee;p=ipfire-3.x.git naoki: Add source download option. --- diff --git a/naoki/__init__.py b/naoki/__init__.py index a4180c9aa..a70a057bc 100644 --- a/naoki/__init__.py +++ b/naoki/__init__.py @@ -174,7 +174,7 @@ Release : %(release)s if not package.name in args.packages: continue - package.source_donwload() + package.source_download() def call_source_upload(self, args): pass # TODO diff --git a/naoki/build.py b/naoki/build.py index b705cd9ae..befab33ff 100644 --- a/naoki/build.py +++ b/naoki/build.py @@ -46,6 +46,9 @@ class Build(object): logging.info(" %s" % self.package.summary) logging.info("") + # Download the source tarballs + self.package.source_download() + # Resolve the dependencies try: self.dependency_set.resolve() diff --git a/naoki/constants.py b/naoki/constants.py index 1d3aa3df8..861c83c1b 100644 --- a/naoki/constants.py +++ b/naoki/constants.py @@ -20,10 +20,6 @@ PACKAGESDIR = os.path.join(BUILDDIR, "packages") REPOSDIR = os.path.join(BUILDDIR, "repositories") TOOLSDIR = os.path.join(BASEDIR, "tools") -TARBALLDIR = os.path.join(CACHEDIR, "tarballs") -TOOLCHAINSDIR = os.path.join(CACHEDIR, "toolchains") -PATCHESDIR = os.path.join(CACHEDIR, "patches") - ARCHES_DEFAULT = os.path.join(CONFIGDIR, "architectures.conf") CONFIGFILE = os.path.join(CONFIGDIR, "naoki.conf") diff --git a/naoki/packages.py b/naoki/packages.py index 9f9aeb5e8..3b09e900c 100644 --- a/naoki/packages.py +++ b/naoki/packages.py @@ -4,6 +4,9 @@ import logging import os import re +import urlgrabber +import urlgrabber.progress + import architectures import dependencies import environ @@ -12,6 +15,7 @@ import util from constants import * + class Package(object): def __repr__(self): return "<%s %s:%s>" % \ @@ -106,6 +110,27 @@ class SourcePackage(Package): return True + @property + def source_files(self): + return self._info.get("PKG_OBJECTS").split() + + def source_download(self): + g = urlgrabber.grabber.URLGrabber( + prefix = config["sources_download_url"], + progress_obj = urlgrabber.progress.TextMeter(), + quote=0, + ) + + for file in self.source_files: + file = os.path.join(CACHEDIR, file) + + if os.path.exists(file): + continue + + util.mkdir(CACHEDIR) + + g.urlgrab(os.path.basename(file), filename=file) + class BinaryPackage(Package): def __init__(self, filename): diff --git a/pkgs/Constants b/pkgs/Constants index b467a0718..c8142a14b 100644 --- a/pkgs/Constants +++ b/pkgs/Constants @@ -15,7 +15,7 @@ endif THISAPP = $(PKG_NAME)-$(PKG_VER) DIR_APP = $(DIR_SRC)/$(THISAPP) -DIR_DL = $(BASEDIR)/cache/tarballs +DIR_DL = $(BASEDIR)/cache DIR_PATCHES = $(DIR_SOURCE)/patches DIR_SRC = $(ROOT)/usr/src DIR_TMP = /tmp