From patchwork Thu Dec 31 16:02:56 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrea Cappelli X-Patchwork-Id: 561902 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by ozlabs.org (Postfix) with ESMTP id 1ED89140BA8 for ; Fri, 1 Jan 2016 03:03:36 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=JpSrSxrC; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 297C792547; Thu, 31 Dec 2015 16:03:35 +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 466yf6HY+YOH; Thu, 31 Dec 2015 16:03:32 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by whitealder.osuosl.org (Postfix) with ESMTP id BBDDE9252D; Thu, 31 Dec 2015 16:03:32 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 562F91BFD74 for ; Thu, 31 Dec 2015 16:03:31 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 520E99585B for ; Thu, 31 Dec 2015 16:03:31 +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 vauiRQgWIGVu for ; Thu, 31 Dec 2015 16:03:30 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) by hemlock.osuosl.org (Postfix) with ESMTPS id B0F2C95803 for ; Thu, 31 Dec 2015 16:03:29 +0000 (UTC) Received: by mail-wm0-f42.google.com with SMTP id u188so69661925wmu.1 for ; Thu, 31 Dec 2015 08:03:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=/lW4s+tVEc/RArPlhM8HoI5sNXrBK2ywxrVnY9Gpg14=; b=JpSrSxrCXa88m1BU7L/FXWSDhrv78yJOoLnxlvdrl9GjkZrbUddtkCGUNaBHNxoz84 GA0Da/Je+dvF7yjQt/FEVK02ZI0D20siYZlfGD8AsI5mNY39GxEvsNUVBbHcE8UY0aWb sl8x2z0SqA3BC1pKyU32r1XuCMl5eFXhzIwQH9gwntu5y2vEOXPXxqOu67neEQd56K59 jL/fQh28dAsX+iI/DZe1/EScIWl94gGzR3hDd+nGQ2DSRkyxIm7qYOiPo1cCv+yWSU4r 6966YFkOrulAapGhLWf/+qH4C5MdgW1b2fnvV0FKWZknh0AC49n7BAOJDKESmdISmnr1 k09Q== X-Received: by 10.194.89.170 with SMTP id bp10mr77939190wjb.7.1451577807897; Thu, 31 Dec 2015 08:03:27 -0800 (PST) Received: from localhost.localdomain ([151.40.68.156]) by smtp.gmail.com with ESMTPSA id q6sm70216885wjx.28.2015.12.31.08.03.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 Dec 2015 08:03:26 -0800 (PST) From: Andrea Cappelli To: buildroot@buildroot.org Date: Thu, 31 Dec 2015 17:02:56 +0100 Message-Id: <1451577776-29708-1-git-send-email-a.cappelli@gmail.com> X-Mailer: git-send-email 1.7.9.5 Cc: Andrea Cappelli Subject: [Buildroot] [PATCH 1/1] New package: uwsgi X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 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" Signed-off-by: Andrea Cappelli Signed-off-by: ... --- package/Config.in | 1 + ...-environment-variables-for-config-scripts.patch | 85 ++++++++++++++++++++ package/uwsgi/Config.in | 6 ++ package/uwsgi/uwsgi.mk | 36 +++++++++ 4 files changed, 128 insertions(+) create mode 100644 package/uwsgi/0001-Added-environment-variables-for-config-scripts.patch create mode 100644 package/uwsgi/Config.in create mode 100644 package/uwsgi/uwsgi.mk diff --git a/package/Config.in b/package/Config.in index 9145d15..e018355 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1457,6 +1457,7 @@ endif source "package/ulogd/Config.in" source "package/ushare/Config.in" source "package/ussp-push/Config.in" + source "package/uwsgi/Config.in" source "package/vde2/Config.in" source "package/vnstat/Config.in" source "package/vpnc/Config.in" diff --git a/package/uwsgi/0001-Added-environment-variables-for-config-scripts.patch b/package/uwsgi/0001-Added-environment-variables-for-config-scripts.patch new file mode 100644 index 0000000..a5c79a5 --- /dev/null +++ b/package/uwsgi/0001-Added-environment-variables-for-config-scripts.patch @@ -0,0 +1,85 @@ +Added environment variables to choose right -config script during cross compilation (suggested by Thomas) + +diff --git a/uwsgiconfig.py b/uwsgiconfig.py +index 542d9e7..2695893 100644 +--- a/uwsgiconfig.py ++++ b/uwsgiconfig.py +@@ -31,6 +31,9 @@ GCC = os.environ.get('CC', sysconfig.get_config_var('CC')) + if not GCC: + GCC = 'gcc' + ++PCRE_CONFIG = os.environ.get('PCRE_CONFIG', 'pcre-config') ++XML2_CONFIG = os.environ.get('XML2_CONFIG', 'xml2-config') ++ + def get_preprocessor(): + if 'clang' in GCC: + return 'clang -xc core/clang_fake.c' +@@ -546,6 +549,11 @@ def build_uwsgi(uc, print_only=False, gcll=None): + t.join() + + print("*** uWSGI linking ***") ++ try: ++ if os.environ['LDFLAGS'] == '': ++ ldflags = [] ++ except: ++ pass + ldline = "%s -o %s %s %s %s" % (GCC, bin_name, ' '.join(uniq_warnings(ldflags)), + ' '.join(map(add_o, gcc_list)), ' '.join(uniq_warnings(libs))) + print(ldline) +@@ -1017,23 +1025,23 @@ class uConf(object): + # re-enable after pcre fix + if self.get('pcre'): + if self.get('pcre') == 'auto': +- pcreconf = spcall('pcre-config --libs') ++ pcreconf = spcall('%s --libs' % PCRE_CONFIG) + if pcreconf: + self.libs.append(pcreconf) +- pcreconf = spcall("pcre-config --cflags") ++ pcreconf = spcall("%s --cflags" % PCRE_CONFIG) + self.cflags.append(pcreconf) + self.gcc_list.append('core/regexp') + self.cflags.append("-DUWSGI_PCRE") + has_pcre = True + + else: +- pcreconf = spcall('pcre-config --libs') ++ pcreconf = spcall('%s --libs' % PCRE_CONFIG) + if pcreconf is None: + print("*** libpcre headers unavailable. uWSGI build is interrupted. You have to install pcre development package or disable pcre") + sys.exit(1) + else: + self.libs.append(pcreconf) +- pcreconf = spcall("pcre-config --cflags") ++ pcreconf = spcall("%s --cflags" % PCRE_CONFIG) + self.cflags.append(pcreconf) + self.gcc_list.append('core/regexp') + self.cflags.append("-DUWSGI_PCRE") +@@ -1248,10 +1256,10 @@ class uConf(object): + + if self.get('xml'): + if self.get('xml') == 'auto': +- xmlconf = spcall('xml2-config --libs') ++ xmlconf = spcall('%s --libs' % XML2_CONFIG) + if xmlconf: + self.libs.append(xmlconf) +- xmlconf = spcall("xml2-config --cflags") ++ xmlconf = spcall("%s --cflags" % XML2_CONFIG) + self.cflags.append(xmlconf) + self.cflags.append("-DUWSGI_XML -DUWSGI_XML_LIBXML2") + self.gcc_list.append('core/xmlconf') +@@ -1262,13 +1270,13 @@ class uConf(object): + self.gcc_list.append('core/xmlconf') + report['xml'] = 'expat' + elif self.get('xml') == 'libxml2': +- xmlconf = spcall('xml2-config --libs') ++ xmlconf = spcall('%s --libs' % XML2_CONFIG) + if xmlconf is None: + print("*** libxml2 headers unavailable. uWSGI build is interrupted. You have to install libxml2 development package or use libexpat or disable XML") + sys.exit(1) + else: + self.libs.append(xmlconf) +- xmlconf = spcall("xml2-config --cflags") ++ xmlconf = spcall("%s --cflags" % XML2_CONFIG) + if xmlconf is None: + print("*** libxml2 headers unavailable. uWSGI build is interrupted. You have to install libxml2 development package or use libexpat or disable XML") + sys.exit(1) diff --git a/package/uwsgi/Config.in b/package/uwsgi/Config.in new file mode 100644 index 0000000..6537d1a --- /dev/null +++ b/package/uwsgi/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_UWSGI + bool "uwsgi" + select BR2_PACKAGE_LIBXML2 + help + The uWSGI project aims at developing a full stack for building hosting services. + https://uwsgi-docs.readthedocs.org/en/latest/ \ No newline at end of file diff --git a/package/uwsgi/uwsgi.mk b/package/uwsgi/uwsgi.mk new file mode 100644 index 0000000..2d1f11a --- /dev/null +++ b/package/uwsgi/uwsgi.mk @@ -0,0 +1,36 @@ +################################################################################ +# +# uwsgi +# +################################################################################ + +UWSGI_VERSION = 2.0.12 +UWSGI_SOURCE = uwsgi-$(UWSGI_VERSION).tar.gz +UWSGI_SITE = https://pypi.python.org/packages/source/u/uWSGI +UWSGI_LICENSE = GPLv2 +UWSGI_LICENSE_FILES = LICENSE + +UWSGI_DEPENDENCIES = libxml2 host-python + +UWSGI_ENV = \ + PATH=$(BR_PATH) \ + CC="$(TARGET_CC)" \ + CFLAGS="$(TARGET_CFLAGS)" \ + LDFLAGS="$(TARGET_LDFLAGS)" \ + LDSHARED="$(TARGET_CROSS)gcc -shared" \ + PYTHONPATH="$(if $(BR2_PACKAGE_PYTHON3),$(PYTHON3_PATH),$(PYTHON_PATH))" \ + _python_sysroot=$(STAGING_DIR) \ + _python_prefix=/usr \ + _python_exec_prefix=/usr \ + PCRE_CONFIG="$(STAGING_DIR)/usr/bin/pcre-config" \ + XML2_CONFIG="$(STAGING_DIR)/usr/bin/xml2-config" + +define UWSGI_BUILD_CMDS + $(MAKE) $(UWSGI_ENV) -C $(@D) +endef + +define UWSGI_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 755 $(@D)/uwsgi $(TARGET_DIR)/usr/bin/uwsgi +endef + +$(eval $(generic-package))