From patchwork Sat Jul 20 10:27:14 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rohan Fletcher X-Patchwork-Id: 260437 X-Patchwork-Delegate: thomas.petazzoni@free-electrons.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from hemlock.osuosl.org (hemlock.osuosl.org [140.211.166.133]) by ozlabs.org (Postfix) with ESMTP id 33DB32C009C for ; Sat, 20 Jul 2013 20:28:52 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id A8778937AC; Sat, 20 Jul 2013 10:28:56 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zW1gof78WFsd; Sat, 20 Jul 2013 10:28:54 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by hemlock.osuosl.org (Postfix) with ESMTP id 8E73F93702; Sat, 20 Jul 2013 10:28:54 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id 1C1761BF98F for ; Sat, 20 Jul 2013 10:28:55 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 468B48D638 for ; Sat, 20 Jul 2013 10:28:47 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bkyOfwki2IH1 for ; Sat, 20 Jul 2013 10:28:46 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-pa0-f66.google.com (mail-pa0-f66.google.com [209.85.220.66]) by whitealder.osuosl.org (Postfix) with ESMTPS id 8768A8D5C9 for ; Sat, 20 Jul 2013 10:28:46 +0000 (UTC) Received: by mail-pa0-f66.google.com with SMTP id kl14so3174923pab.5 for ; Sat, 20 Jul 2013 03:28:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer:in-reply-to:references; bh=yeobW5rrtgEME2YXfyY/QLSTkvazFUsk6NOoT4C7/7c=; b=q7M6FB9OXMrjRhGDcw0WaYYhezmYZfdXguQ76L/f9Cbx2LVaMMjHIwhF4C8gDRfwyL CDN5Wy9L3KNYUagcLBBfKQTzd+QEwpPpAdX+8+4ZOriu9FLah9ErQj/OxCG6mzGMoGkO 5GbxeAQ9COeFXFGkcUZv8B07YTLrIBxusl/cTOuHtiPyVXCW3Ra1tQh+YjoF+PZm5qRh ZhW1F+loNjiqy6O8xce5fdLbk27tCSyX7Qs3iQowg7dooWHvlKjyt/yZyJ4udRgyXC2J MJX6DIPprBC/qM4F7KM8SF32FQg4aTf+3/Xn7+2Q/iTbpqGtngRrtkaWtyNKhm/D8do5 Q7Mg== X-Received: by 10.66.156.132 with SMTP id we4mr22917681pab.28.1374316126302; Sat, 20 Jul 2013 03:28:46 -0700 (PDT) Received: from localhost.localdomain ([203.184.21.175]) by mx.google.com with ESMTPSA id ie3sm24491694pbc.13.2013.07.20.03.28.44 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 20 Jul 2013 03:28:45 -0700 (PDT) From: Rohan Fletcher To: buildroot@busybox.net Date: Sat, 20 Jul 2013 22:27:14 +1200 Message-Id: <1374316034-31973-3-git-send-email-rohfledev@gmail.com> X-Mailer: git-send-email 1.8.1.2 In-Reply-To: <1374316034-31973-1-git-send-email-rohfledev@gmail.com> References: <1374316034-31973-1-git-send-email-rohfledev@gmail.com> Cc: Rohan Fletcher Subject: [Buildroot] [PATCH 3/3] python-pip: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: buildroot-bounces@busybox.net Sender: buildroot-bounces@busybox.net pip is a package manager for python that downloads packages from https://pypi.python.org/ Signed-off-by: Rohan Fletcher --- package/Config.in | 1 + package/python-pip/Config.in | 22 ++++++++++++++++ package/python-pip/python-pip.mk | 54 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 package/python-pip/Config.in create mode 100644 package/python-pip/python-pip.mk diff --git a/package/Config.in b/package/Config.in index 286a605..9bc9823 100644 --- a/package/Config.in +++ b/package/Config.in @@ -360,6 +360,7 @@ source "package/python-pyparsing/Config.in" source "package/python-serial/Config.in" source "package/python-setuptools/Config.in" source "package/python-thrift/Config.in" +source "package/python-pip/Config.in" endmenu endif source "package/python3/Config.in" diff --git a/package/python-pip/Config.in b/package/python-pip/Config.in new file mode 100644 index 0000000..a238deb --- /dev/null +++ b/package/python-pip/Config.in @@ -0,0 +1,22 @@ +config BR2_PACKAGE_PYTHON_PIP + bool "python-pip" + select BR2_HOST_PYTHON_SSL_SUPPORT + help + A tool for installing and managing Python packages. + + http://www.pip-installer.org + +if BR2_PACKAGE_PYTHON_PIP + +config BR2_PACKAGE_PYTHON_PIP_MODULES_ADDITIONAL + string "Additional modules" + help + List of space-separated python modules to install via pip. + See 'pip help install' for available installation methods. + For repeatable builds, download and save tgz files or clone + git repos for the components you care about. + + Example: module-name module-name==1.3.4 /my/module/mymodule.tgz + git://github.com/someuser/somemodule.git#v1.2 + +endif diff --git a/package/python-pip/python-pip.mk b/package/python-pip/python-pip.mk new file mode 100644 index 0000000..6f25759 --- /dev/null +++ b/package/python-pip/python-pip.mk @@ -0,0 +1,54 @@ + +############################################################# +# +# python-pip +# +############################################################# + +PYTHON_PIP_VERSION = 1.3.1 +PYTHON_PIP_SOURCE = pip-$(PYTHON_PIP_VERSION).tar.gz +PYTHON_PIP_SITE = https://pypi.python.org/packages/source/p/pip +PYTHON_PIP_DEPENDENCIES = python python-setuptools host-python-setuptools host-python-pip +PYTHON_PIP_LICENSE = MIT + +# README.rst refers to the file "LICENSE" but it's not included + +define PYTHON_PIP_BUILD_CMDS + (cd $(@D); \ + PYTHONPATH="$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages" \ + $(HOST_DIR)/usr/bin/python setup.py build --executable=/usr/bin/python) +endef + +define HOST_PYTHON_PIP_INSTALL_CMDS + (cd $(@D); PYTHONPATH=$(HOST_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ + $(HOST_DIR)/usr/bin/python setup.py install --prefix=$(HOST_DIR)/usr) +endef + +PYTHON_PIP_MODULES_LIST=$(call qstrip, $(BR2_PACKAGE_PYTHON_PIP_MODULES_ADDITIONAL)) + +ifneq ($(PYTHON_PIP_MODULES_LIST),) +define PYTHON_PIP_INSTALL_MODULES + # Explanation of environment variables + # PIP_DOWNLOAD_CACHE: all downloads go into the buildroot download folder + # PIP_TARGET: this is where the packages end up + # PIP_BUILD: where the packages are built - a subdirectory of the pip folder + ($(TARGET_CONFIGURE_OPTS) \ + PIP_DOWNLOAD_CACHE=$(BR2_DL_DIR) \ + PIP_TARGET=$(TARGET_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages \ + PIP_BUILD=$(BUILD_DIR)/python-pip-$(PYTHON_PIP_VERSION)/packages \ + CC="$(TARGET_CC)" \ + CFLAGS="$(TARGET_CFLAGS)" \ + LDSHARED="$(TARGET_CC) -shared" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + $(HOST_DIR)/usr/bin/pip install \ + $(PYTHON_PIP_MODULES_LIST)); +endef +endif + +define PYTHON_PIP_INSTALL_TARGET_CMDS + $(PYTHON_PIP_INSTALL_MODULES) +endef + +$(eval $(generic-package)) +$(eval $(host-generic-package)) +