* [PATCH 0/5] Package docker + docker-registry
@ 2015-02-27 21:40 Amy Fong
2015-02-27 21:40 ` [PATCH 1/5] Add golang-cross Amy Fong
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Amy Fong @ 2015-02-27 21:40 UTC (permalink / raw)
To: meta-virtualization
This set of patches adds the packages docker, docker-registry
and required dependencies/rdependencies.
The following were added to my BBLAYERS on top
of a basic yocto/poky build to compile these packages:
meta-virtualization \
meta-cloud-services/meta-openstack \
meta-openembedded/meta-oe \
meta-openembedded/meta-networking \
meta-openembedded/meta-python \
meta-openembedded/meta-filesystems \
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/5] Add golang-cross
2015-02-27 21:40 [PATCH 0/5] Package docker + docker-registry Amy Fong
@ 2015-02-27 21:40 ` Amy Fong
2015-02-27 21:41 ` [PATCH 3/5] Package docker-registry Amy Fong
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Amy Fong @ 2015-02-27 21:40 UTC (permalink / raw)
To: meta-virtualization
From a3a4b6a7595215b69f6e7f30cd010ab19b1ab54c Mon Sep 17 00:00:00 2001
From: Amy Fong <amy.fong@windriver.com>
Date: Fri, 27 Feb 2015 15:58:44 -0500
Subject: [PATCH 1/5] Add golang-cross
This package is derived from meta-golang:
https://github.com/digitallumens/meta-golang.git
commit 3fa6c8af6b4762de2f4e6740e327a5a71c29e6e1
In the meta-golang version, golang depends on a gcc-cross that causes
conflicts with our toolchain. So the golang-cross recipe was extracted
and then the following changes were made to work in wrlinux:
- our TARGET_ARCH is x86-64, golang-cross wants amd64
- in the former recipe, compile fails because it can't find header files
and libraries because --sysroot is dropped. So I redefined the target
cc and target cxx as cc and cxx at the start of the compile rule since
cc gets redefined in there somewhere.
Signed-off-by: Amy Fong <amy.fong@windriver.com>
---
recipes-devtools/go/golang-1.3.inc | 4 +++
recipes-devtools/go/golang-cross.inc | 56 +++++++++++++++++++++++++++++++++
recipes-devtools/go/golang-cross_1.3.bb | 3 ++
3 files changed, 63 insertions(+)
create mode 100644 recipes-devtools/go/golang-1.3.inc
create mode 100644 recipes-devtools/go/golang-cross.inc
create mode 100644 recipes-devtools/go/golang-cross_1.3.bb
diff --git a/recipes-devtools/go/golang-1.3.inc b/recipes-devtools/go/golang-1.3.inc
new file mode 100644
index 0000000..5c507b4
--- /dev/null
+++ b/recipes-devtools/go/golang-1.3.inc
@@ -0,0 +1,4 @@
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=591778525c869cdde0ab5a1bf283cd81"
+SRC_URI[md5sum] = "4b66d7249554181c314f139ea78920b1"
+SRC_URI[sha256sum] = "eb983e6c5b2b9838f482c5442b1ac1856f610f2b21f3c123b3fedb48ffc35382"
diff --git a/recipes-devtools/go/golang-cross.inc b/recipes-devtools/go/golang-cross.inc
new file mode 100644
index 0000000..9330572
--- /dev/null
+++ b/recipes-devtools/go/golang-cross.inc
@@ -0,0 +1,56 @@
+DESCRIPTION = "Go Programming Language Cross Compiler."
+HOMEPAGE = "golang.org"
+# DEPENDS = "virtual/${TARGET_PREFIX}gcc libgcc"
+DEPENDS = "libgcc"
+PROVIDES = "virtual/${TARGET_PREFIX}golang"
+SRC_URI = "http://golang.org/dl/go${PV}.src.tar.gz"
+S="${WORKDIR}/go"
+
+do_compile () {
+ export CC_FOR_TARGET="${CC}"
+ export CXX_FOR_TARGET="${CXX}"
+ # the above should set the right sysroot option, else...:
+ # export CGO_CFLAGS="--sysroot=${STAGING_DIR_HOST}"
+ # export CGO_LDFLAGS="--sysroot=${STAGING_DIR_HOST}"
+
+ export CC="${BUILD_CC}"
+ export GOROOT_FINAL="${libdir}/go"
+ export GOARCH="${TARGET_ARCH}"
+
+ # supported amd64, 386, arm
+ if [ "${TARGET_ARCH}" = "x86_64" ]; then
+ export GOARCH="amd64"
+ fi
+
+ if [ "${TARGET_ARCH}" = "arm" ]
+ then
+ if [ `echo ${TUNE_PKGARCH} | cut -c 1-7` = "cortexa" ]
+ then
+ echo GOARM 7
+ export GOARM="7"
+ fi
+ fi
+ export GOOS="linux"
+ export GO_GCFLAGS=""
+ export GO_LDFLAGS=""
+ export GO_CCFLAGS=""
+ export CGO_ENABLED="1"
+ #export CC_FOR_TARGET="${TARGET_SYS}-gcc"
+ #export CXX_FOR_TARGET="${TARGET_SYS}-g++"
+ echo GOARCH ${GOARCH}
+ echo CC_FOR_TARGET ${CC_FOR_TARGET}
+
+ cd src
+ sh -x ./make.bash
+}
+
+do_install () {
+ # Install the executables into build system
+ mkdir -p ${D}${bindir}
+ cp -a bin/go ${D}${bindir}/
+ mkdir -p ${D}${libdir}/go
+ cp -a pkg ${D}${libdir}/go/
+ cp -a include ${D}${libdir}/go/
+ cp -a api ${D}${libdir}/go/
+ cp -a src ${D}${libdir}/go/
+}
diff --git a/recipes-devtools/go/golang-cross_1.3.bb b/recipes-devtools/go/golang-cross_1.3.bb
new file mode 100644
index 0000000..8813298
--- /dev/null
+++ b/recipes-devtools/go/golang-cross_1.3.bb
@@ -0,0 +1,3 @@
+inherit cross
+require golang-cross.inc
+require golang-${PV}.inc
--
2.1.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/5] Package docker-registry
2015-02-27 21:40 [PATCH 0/5] Package docker + docker-registry Amy Fong
2015-02-27 21:40 ` [PATCH 1/5] Add golang-cross Amy Fong
@ 2015-02-27 21:41 ` Amy Fong
2015-02-27 21:41 ` [PATCH 4/5] Add cgroup-lite Amy Fong
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Amy Fong @ 2015-02-27 21:41 UTC (permalink / raw)
To: meta-virtualization
From 8af720cf20eb69d0f70908923cb2a81a9a65e5a4 Mon Sep 17 00:00:00 2001
From: Amy Fong <amy.fong@windriver.com>
Date: Fri, 27 Feb 2015 15:59:25 -0500
Subject: [PATCH 3/5] Package docker-registry
Provides repositories of docker images
Signed-off-by: Amy Fong <amy.fong@windriver.com>
---
.../docker-registry/docker-registry_git.bb | 92 +++++++++
.../files/change_sqlalchemy_rqt.patch | 13 ++
.../docker-registry/files/config.yml | 228 +++++++++++++++++++++
.../docker-registry/files/docker-registry.conf | 19 ++
.../docker-registry/files/docker-registry.service | 15 ++
5 files changed, 367 insertions(+)
create mode 100644 recipes-containers/docker-registry/docker-registry_git.bb
create mode 100644 recipes-containers/docker-registry/files/change_sqlalchemy_rqt.patch
create mode 100644 recipes-containers/docker-registry/files/config.yml
create mode 100644 recipes-containers/docker-registry/files/docker-registry.conf
create mode 100644 recipes-containers/docker-registry/files/docker-registry.service
diff --git a/recipes-containers/docker-registry/docker-registry_git.bb b/recipes-containers/docker-registry/docker-registry_git.bb
new file mode 100644
index 0000000..8b42d79
--- /dev/null
+++ b/recipes-containers/docker-registry/docker-registry_git.bb
@@ -0,0 +1,92 @@
+HOMEPAGE = "https://github.com/docker/docker-registry"
+SUMMARY = "Registry server for Docker"
+DESCRIPTION = "\
+ This is the classic python docker-registry. \
+ . \
+ hosting/delivering of repositories and images \
+ "
+
+SRCREV = "fd8c0c114985547b69088e0f1526e58bfe2ff914"
+SRC_URI = "\
+ git://github.com/docker/docker-registry.git \
+ file://docker-registry.conf \
+ file://docker-registry.service \
+ file://config.yml \
+ file://change_sqlalchemy_rqt.patch \
+ "
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=35e8e5305c1b7b4a5761f9de5d44e5f4"
+
+S = "${WORKDIR}/git"
+
+PV = "0.9.1+git${SRCREV}"
+
+RDEPENDS_${PN} += "\
+ docker \
+ gunicorn (= 19.1.1) \
+ python-pip \
+ python-distribute \
+ python-m2crypto (= 0.22.3) \
+ python-pyyaml (= 3.11) \
+ python-flask (= 0.10.1) \
+ python-gevent (= 1.0.1) \
+ python-requests (= 2.3.0) \
+ python-sqlalchemy (>= 0.9.4) \
+ python-blinker (= 1.3) \
+ python-backports-lzma (= 0.0.3) \
+ python-flask-cors (= 1.10.3) \
+ python-bugsnag (= 2.0.2) \
+ python-docker-registry-core (= 2.0.3) \
+ python-newrelic (= 2.22.0.19) \
+ python-itsdangerous (>= 0.21) \
+ python-jinja2 (>= 2.4) \
+ python-werkzeug (>= 0.7) \
+ python-simplejson (= 3.6.2) \
+ python-redis (= 2.10.3) \
+ python-boto (= 2.34.0) \
+ python-webob \
+ "
+# OFFICIAL REQ:
+# docker-registry-core>=2,<3
+# blinker==1.3
+# backports.lzma==0.0.3,!=0.0.4
+
+# Flask==0.10.1
+# gevent==1.0.1
+# gunicorn==19.1.1
+# PyYAML==3.11
+# requests==2.3.0
+# M2Crypto==0.22.3
+# sqlalchemy==0.9.4
+# setuptools==5.8
+#
+# [bugsnag]
+# bugsnag>=2.0,<2.1
+#
+# [cors]
+# Flask-cors>=1.8,<2.0
+#
+# [newrelic]
+# newrelic>=2.22,<2.23
+
+
+inherit setuptools systemd
+
+SYSTEMD_PACKAGES = "${@base_contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
+SYSTEMD_SERVICE_${PN} = "${@base_contains('DISTRO_FEATURES','systemd','docker-registry.service','',d)}"
+
+do_install_append() {
+ mkdir -p ${D}/etc/default/
+ cp ${WORKDIR}/docker-registry.conf ${D}/etc/default/docker-registry
+
+ if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/docker-registry.service ${D}/${systemd_unitdir}/system
+ fi
+ # based on config_mirror.yml - uses /var/docker-registry instead of /tmp for files
+ install ${WORKDIR}/config.yml ${D}/etc/docker-registry.yml
+ mkdir -p ${D}/var/docker-registry
+}
+
+FILES_${PN} += "/etc/default /var/docker-registry /etc/ /etc/default/volatiles"
diff --git a/recipes-containers/docker-registry/files/change_sqlalchemy_rqt.patch b/recipes-containers/docker-registry/files/change_sqlalchemy_rqt.patch
new file mode 100644
index 0000000..75cbd6d
--- /dev/null
+++ b/recipes-containers/docker-registry/files/change_sqlalchemy_rqt.patch
@@ -0,0 +1,13 @@
+---
+ requirements/main.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/requirements/main.txt
++++ b/requirements/main.txt
+@@ -5,5 +5,5 @@
+ PyYAML==3.11
+ requests==2.3.0
+ M2Crypto==0.22.3
+-sqlalchemy==0.9.4
++sqlalchemy>=0.9.4
+ setuptools==5.8
diff --git a/recipes-containers/docker-registry/files/config.yml b/recipes-containers/docker-registry/files/config.yml
new file mode 100644
index 0000000..8b33766
--- /dev/null
+++ b/recipes-containers/docker-registry/files/config.yml
@@ -0,0 +1,228 @@
+# All other flavors inherit the `common' config snippet
+common: &common
+ issue: '"docker-registry server"'
+ # Default log level is info
+ loglevel: _env:LOGLEVEL:info
+ # Enable debugging (additional informations in the output of the _ping endpoint)
+ debug: _env:DEBUG:false
+ # By default, the registry acts standalone (eg: doesn't query the index)
+ standalone: _env:STANDALONE:true
+ # The default endpoint to use (if NOT standalone) is index.docker.io
+ index_endpoint: _env:INDEX_ENDPOINT:https://index.docker.io
+ # Storage redirect is disabled
+ storage_redirect: _env:STORAGE_REDIRECT
+ # Token auth is enabled (if NOT standalone)
+ disable_token_auth: _env:DISABLE_TOKEN_AUTH
+ # No priv key
+ privileged_key: _env:PRIVILEGED_KEY
+ # No search backend
+ search_backend: _env:SEARCH_BACKEND
+ # SQLite search backend
+ sqlalchemy_index_database: _env:SQLALCHEMY_INDEX_DATABASE:sqlite:////var/docker-registry/docker-registry.db
+
+ # Mirroring is not enabled
+ mirroring:
+ source: _env:MIRROR_SOURCE # https://registry-1.docker.io
+ source_index: _env:MIRROR_SOURCE_INDEX # https://index.docker.io
+ tags_cache_ttl: _env:MIRROR_TAGS_CACHE_TTL:172800 # seconds
+
+ cache:
+ host: _env:CACHE_REDIS_HOST
+ port: _env:CACHE_REDIS_PORT
+ db: _env:CACHE_REDIS_DB:0
+ password: _env:CACHE_REDIS_PASSWORD
+
+ # Enabling LRU cache for small files
+ # This speeds up read/write on small files
+ # when using a remote storage backend (like S3).
+ cache_lru:
+ host: _env:CACHE_LRU_REDIS_HOST
+ port: _env:CACHE_LRU_REDIS_PORT
+ db: _env:CACHE_LRU_REDIS_DB:0
+ password: _env:CACHE_LRU_REDIS_PASSWORD
+
+ # Enabling these options makes the Registry send an email on each code Exception
+ email_exceptions:
+ smtp_host: _env:SMTP_HOST
+ smtp_port: _env:SMTP_PORT:25
+ smtp_login: _env:SMTP_LOGIN
+ smtp_password: _env:SMTP_PASSWORD
+ smtp_secure: _env:SMTP_SECURE:false
+ from_addr: _env:SMTP_FROM_ADDR:docker-registry@localdomain.local
+ to_addr: _env:SMTP_TO_ADDR:noise+dockerregistry@localdomain.local
+
+ # Enable bugsnag (set the API key)
+ bugsnag: _env:BUGSNAG
+
+ # CORS support is not enabled by default
+ cors:
+ origins: _env:CORS_ORIGINS
+ methods: _env:CORS_METHODS
+ headers: _env:CORS_HEADERS:[Content-Type]
+ expose_headers: _env:CORS_EXPOSE_HEADERS
+ supports_credentials: _env:CORS_SUPPORTS_CREDENTIALS
+ max_age: _env:CORS_MAX_AGE
+ send_wildcard: _env:CORS_SEND_WILDCARD
+ always_send: _env:CORS_ALWAYS_SEND
+ automatic_options: _env:CORS_AUTOMATIC_OPTIONS
+ vary_header: _env:CORS_VARY_HEADER
+ resources: _env:CORS_RESOURCES
+
+local: &local
+ <<: *common
+ storage: local
+ storage_path: _env:STORAGE_PATH:/var/docker-registry
+
+
+s3: &s3
+ <<: *common
+ storage: s3
+ s3_region: _env:AWS_REGION
+ s3_bucket: _env:AWS_BUCKET
+ boto_bucket: _env:AWS_BUCKET
+ storage_path: _env:STORAGE_PATH:/registry
+ s3_encrypt: _env:AWS_ENCRYPT:true
+ s3_secure: _env:AWS_SECURE:true
+ s3_access_key: _env:AWS_KEY
+ s3_secret_key: _env:AWS_SECRET
+ s3_use_sigv4: _env:AWS_USE_SIGV4
+ boto_host: _env:AWS_HOST
+ boto_port: _env:AWS_PORT
+ boto_calling_format: _env:AWS_CALLING_FORMAT
+
+cloudfronts3: &cloudfronts3
+ <<: *s3
+ cloudfront:
+ base: _env:CF_BASE_URL
+ keyid: _env:CF_KEYID
+ keysecret: _env:CF_KEYSECRET
+
+azureblob: &azureblob
+ <<: *common
+ storage: azureblob
+ azure_storage_account_name: _env:AZURE_STORAGE_ACCOUNT_NAME
+ azure_storage_account_key: _env:AZURE_STORAGE_ACCOUNT_KEY
+ azure_storage_container: _env:AZURE_STORAGE_CONTAINER:registry
+ azure_use_https: _env:AZURE_USE_HTTPS:true
+
+# Ceph Object Gateway Configuration
+# See http://ceph.com/docs/master/radosgw/ for details on installing this service.
+ceph-s3: &ceph-s3
+ <<: *common
+ storage: s3
+ s3_region: ~
+ s3_bucket: _env:AWS_BUCKET
+ s3_encrypt: _env:AWS_ENCRYPT:false
+ s3_secure: _env:AWS_SECURE:false
+ storage_path: _env:STORAGE_PATH:/registry
+ s3_access_key: _env:AWS_KEY
+ s3_secret_key: _env:AWS_SECRET
+ boto_bucket: _env:AWS_BUCKET
+ boto_host: _env:AWS_HOST
+ boto_port: _env:AWS_PORT
+ boto_debug: _env:AWS_DEBUG:0
+ boto_calling_format: _env:AWS_CALLING_FORMAT
+
+# Google Cloud Storage Configuration
+# See:
+# https://developers.google.com/storage/docs/reference/v1/getting-startedv1#keys
+# for details on access and secret keys.
+gcs:
+ <<: *common
+ storage: gcs
+ boto_bucket: _env:GCS_BUCKET
+ storage_path: _env:STORAGE_PATH:/registry
+ gs_secure: _env:GCS_SECURE:true
+ gs_access_key: _env:GCS_KEY
+ gs_secret_key: _env:GCS_SECRET
+ # OAuth 2.0 authentication with the storage.
+ # oauth2 can be set to true or false. If it is set to true, gs_access_key,
+ # gs_secret_key and gs_secure are not needed.
+ # Client ID and Client Secret must be set into OAUTH2_CLIENT_ID and
+ # OAUTH2_CLIENT_SECRET environment variables.
+ # See: https://developers.google.com/accounts/docs/OAuth2.
+ oauth2: _env:GCS_OAUTH2:false
+
+# This flavor is for storing images in Openstack Swift
+swift: &swift
+ <<: *common
+ storage: swift
+ storage_path: _env:STORAGE_PATH:/registry
+ # keystone authorization
+ swift_authurl: _env:OS_AUTH_URL
+ swift_container: _env:OS_CONTAINER
+ swift_user: _env:OS_USERNAME
+ swift_password: _env:OS_PASSWORD
+ swift_tenant_name: _env:OS_TENANT_NAME
+ swift_region_name: _env:OS_REGION_NAME
+
+# This flavor stores the images in Glance (to integrate with openstack)
+# See also: https://github.com/docker/openstack-docker
+glance: &glance
+ <<: *common
+ storage: glance
+ storage_alternate: _env:GLANCE_STORAGE_ALTERNATE:file
+ storage_path: _env:STORAGE_PATH:/var/docker-registry
+
+openstack:
+ <<: *glance
+
+# This flavor stores the images in Glance (to integrate with openstack)
+# and tags in Swift.
+glance-swift: &glance-swift
+ <<: *swift
+ storage: glance
+ storage_alternate: swift
+
+openstack-swift:
+ <<: *glance-swift
+
+elliptics:
+ <<: *common
+ storage: elliptics
+ elliptics_nodes: _env:ELLIPTICS_NODES
+ elliptics_wait_timeout: _env:ELLIPTICS_WAIT_TIMEOUT:60
+ elliptics_check_timeout: _env:ELLIPTICS_CHECK_TIMEOUT:60
+ elliptics_io_thread_num: _env:ELLIPTICS_IO_THREAD_NUM:2
+ elliptics_net_thread_num: _env:ELLIPTICS_NET_THREAD_NUM:2
+ elliptics_nonblocking_io_thread_num: _env:ELLIPTICS_NONBLOCKING_IO_THREAD_NUM:2
+ elliptics_groups: _env:ELLIPTICS_GROUPS
+ elliptics_verbosity: _env:ELLIPTICS_VERBOSITY:4
+ elliptics_logfile: _env:ELLIPTICS_LOGFILE:/dev/stderr
+ elliptics_addr_family: _env:ELLIPTICS_ADDR_FAMILY:2
+
+# This flavor stores the images in Aliyun OSS
+# See:
+# https://i.aliyun.com/access_key/
+# for details on access and secret keys.
+oss: &oss
+ <<: *common
+ storage: oss
+ storage_path: _env:STORAGE_PATH:/registry/
+ oss_host: _env:OSS_HOST
+ oss_bucket: _env:OSS_BUCKET
+ oss_accessid: _env:OSS_KEY
+ oss_accesskey: _env:OSS_SECRET
+
+
+
+# This is the default configuration when no flavor is specified
+dev: &dev
+ <<: *local
+ loglevel: _env:LOGLEVEL:debug
+ debug: _env:DEBUG:true
+ search_backend: _env:SEARCH_BACKEND:sqlalchemy
+
+# This flavor is used by unit tests
+test:
+ <<: *dev
+ index_endpoint: https://registry-stage.hub.docker.com
+ standalone: true
+ storage_path: _env:STORAGE_PATH:./tmp/test
+
+# To specify another flavor, set the environment variable SETTINGS_FLAVOR
+# $ export SETTINGS_FLAVOR=prod
+prod:
+ <<: *s3
+ storage_path: _env:STORAGE_PATH:/prod
+
diff --git a/recipes-containers/docker-registry/files/docker-registry.conf b/recipes-containers/docker-registry/files/docker-registry.conf
new file mode 100644
index 0000000..940ece1
--- /dev/null
+++ b/recipes-containers/docker-registry/files/docker-registry.conf
@@ -0,0 +1,19 @@
+# The Docker registry configuration file
+DOCKER_REGISTRY_CONFIG=/etc/docker-registry.yml
+
+# The configuration to use from DOCKER_REGISTRY_CONFIG file
+SETTINGS_FLAVOR=local
+
+# Address to bind the registry to
+REGISTRY_ADDRESS=0.0.0.0
+
+# Port to bind the registry to
+REGISTRY_PORT=5000
+
+# Number of workers to handle the connections
+GUNICORN_WORKERS=4
+
+STANDALONE=true
+
+MIRROR_SOURCE=https://registry-1.docker.io
+MIRROR_SOURCE_INDEX=https://index.docker.io
diff --git a/recipes-containers/docker-registry/files/docker-registry.service b/recipes-containers/docker-registry/files/docker-registry.service
new file mode 100644
index 0000000..4f4cfe7
--- /dev/null
+++ b/recipes-containers/docker-registry/files/docker-registry.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Registry server for Docker
+After=docker.service
+Requires=docker.service
+
+[Service]
+Type=simple
+Environment=DOCKER_REGISTRY_CONFIG=/etc/docker-registry.yml
+EnvironmentFile=-/etc/default/docker-registry
+WorkingDirectory=#WORKDIR#
+ExecStart=/usr/bin/gunicorn --access-logfile /var/log/docker-registry-access.log --error-logfile /var/log/docker-registry-error.log --debug --max-requests 100 --graceful-timeout 3600 -t 3600 -k gevent -b ${REGISTRY_ADDRESS}:${REGISTRY_PORT} -w ${GUNICORN_WORKERS} docker_registry.wsgi:application
+Restart=on-failure
+
+[Install]
+WantedBy=multi-user.target
--
2.1.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/5] Add cgroup-lite
2015-02-27 21:40 [PATCH 0/5] Package docker + docker-registry Amy Fong
2015-02-27 21:40 ` [PATCH 1/5] Add golang-cross Amy Fong
2015-02-27 21:41 ` [PATCH 3/5] Package docker-registry Amy Fong
@ 2015-02-27 21:41 ` Amy Fong
2015-02-27 21:41 ` [PATCH 5/5] Add python packages needed for docker-registry Amy Fong
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Amy Fong @ 2015-02-27 21:41 UTC (permalink / raw)
To: meta-virtualization
From a2c06f9bae2e0eb6095b376adaa24f2d56870bd6 Mon Sep 17 00:00:00 2001
From: Amy Fong <amy.fong@windriver.com>
Date: Fri, 27 Feb 2015 16:00:20 -0500
Subject: [PATCH 4/5] Add cgroup-lite
Light-weight package to set up cgroups at system boot
Signed-off-by: Amy Fong <amy.fong@windriver.com>
---
recipes-containers/cgroup-lite/cgroup-lite_1.1.bb | 22 ++++++++++++++++++
recipes-containers/cgroup-lite/files/cgroups-init | 27 +++++++++++++++++++++++
2 files changed, 49 insertions(+)
create mode 100644 recipes-containers/cgroup-lite/cgroup-lite_1.1.bb
create mode 100755 recipes-containers/cgroup-lite/files/cgroups-init
diff --git a/recipes-containers/cgroup-lite/cgroup-lite_1.1.bb b/recipes-containers/cgroup-lite/cgroup-lite_1.1.bb
new file mode 100644
index 0000000..3ca5238
--- /dev/null
+++ b/recipes-containers/cgroup-lite/cgroup-lite_1.1.bb
@@ -0,0 +1,22 @@
+SECTION = "devel"
+SUMMARY = "Light-weight package to set up cgroups at system boot."
+DESCRIPTION = "Light-weight package to set up cgroups at system boot."
+HOMEPAGE = "http://packages.ubuntu.com/source/precise/cgroup-lite"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=5d5da4e0867cf06014f87102154d0102"
+SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/c/cgroup-lite/cgroup-lite_1.1.tar.gz"
+SRC_URI += "file://cgroups-init"
+SRC_URI[md5sum] = "041a0d8ad2b192271a2e5507fdb6809f"
+SRC_URI[sha256sum] = "e7f9992b90b5b4634f3b8fb42580ff28ff31093edb297ab872c37f61a94586bc"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "cgroups-init"
+INITSCRIPT_PARAMS = "start 8 2 3 4 5 . stop 20 0 1 6 ."
+do_install() {
+ install -d ${D}/bin
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/scripts/cgroups-mount ${D}/bin
+ install -m 0755 ${S}/scripts/cgroups-umount ${D}/bin
+ install -m 0755 ${WORKDIR}/cgroups-init ${D}${sysconfdir}/init.d/cgroups-init
+}
diff --git a/recipes-containers/cgroup-lite/files/cgroups-init b/recipes-containers/cgroup-lite/files/cgroups-init
new file mode 100755
index 0000000..e504024
--- /dev/null
+++ b/recipes-containers/cgroup-lite/files/cgroups-init
@@ -0,0 +1,27 @@
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: cgroups mount
+# Required-Start: $network $remote_fs
+# Required-Stop: $network $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: mount/unmount cgroups
+### END INIT INFO
+
+# must start before libvirtd is run
+case "$1" in
+ start)
+ echo -n "Mounting cgroups..."
+ /bin/cgroups-mount
+ echo "Done"
+ ;;
+ stop)
+ echo -n "Unmounting cgroups..."
+ /bin/cgroups-umount
+ echo "Done"
+ ;;
+ *)
+ echo "Usage: /etc/init.d/cgroups-init {start|stop}"
+ exit 1
+ ;;
+esac
--
2.1.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 5/5] Add python packages needed for docker-registry
2015-02-27 21:40 [PATCH 0/5] Package docker + docker-registry Amy Fong
` (2 preceding siblings ...)
2015-02-27 21:41 ` [PATCH 4/5] Add cgroup-lite Amy Fong
@ 2015-02-27 21:41 ` Amy Fong
2015-03-01 4:36 ` [PATCH 2/5] Package docker Amy Fong
2015-03-02 20:40 ` [PATCH 0/5] Package docker + docker-registry Bruce Ashfield
5 siblings, 0 replies; 9+ messages in thread
From: Amy Fong @ 2015-02-27 21:41 UTC (permalink / raw)
To: meta-virtualization
From 3b4ff3a96aaaa673589bd13727d9500e79db880b Mon Sep 17 00:00:00 2001
From: Amy Fong <amy.fong@windriver.com>
Date: Fri, 27 Feb 2015 16:01:22 -0500
Subject: [PATCH 5/5] Add python packages needed for docker-registry
Signed-off-by: Amy Fong <amy.fong@windriver.com>
---
recipes-support/gunicorn/gunicorn_19.1.1.bb | 15 ++++++
.../python-backports-lzma/fix_paths.patch | 17 ++++++
.../python-backports-lzma_0.0.3.bb | 32 ++++++++++++
.../python-blinker/python-blinker_1.3.bb | 22 ++++++++
recipes-support/python-boto/python-boto_2.34.0.bb | 25 +++++++++
.../python-bugsnag/python-bugsnag_2.0.2.bb | 26 ++++++++++
.../python-docker-registry-core_2.0.3.bb | 29 +++++++++++
.../python-flask-cors/python-flask-cors_1.10.3.bb | 22 ++++++++
.../python-gevent/files/libev-conf.patch | 19 +++++++
.../python-gevent/python-gevent_1.0.1.bb | 24 +++++++++
.../python-m2crypto/python-m2crypto_0.22.3.bb | 60 ++++++++++++++++++++++
.../python-newrelic/python-newrelic_2.22.0.19.bb | 26 ++++++++++
.../python-pyyaml/python-pyyaml_3.11.bb | 30 +++++++++++
.../python-redis/python-redis_2.10.3.bb | 20 ++++++++
.../python-requests/python-requests_2.3.0.bb | 29 +++++++++++
.../python-simplejson/python-simplejson_3.6.2.bb | 31 +++++++++++
16 files changed, 427 insertions(+)
create mode 100644 recipes-support/gunicorn/gunicorn_19.1.1.bb
create mode 100644 recipes-support/python-backports-lzma/python-backports-lzma/fix_paths.patch
create mode 100644 recipes-support/python-backports-lzma/python-backports-lzma_0.0.3.bb
create mode 100644 recipes-support/python-blinker/python-blinker_1.3.bb
create mode 100644 recipes-support/python-boto/python-boto_2.34.0.bb
create mode 100644 recipes-support/python-bugsnag/python-bugsnag_2.0.2.bb
create mode 100644 recipes-support/python-docker-registry-core/python-docker-registry-core_2.0.3.bb
create mode 100644 recipes-support/python-flask-cors/python-flask-cors_1.10.3.bb
create mode 100644 recipes-support/python-gevent/files/libev-conf.patch
create mode 100644 recipes-support/python-gevent/python-gevent_1.0.1.bb
create mode 100644 recipes-support/python-m2crypto/python-m2crypto_0.22.3.bb
create mode 100644 recipes-support/python-newrelic/python-newrelic_2.22.0.19.bb
create mode 100644 recipes-support/python-pyyaml/python-pyyaml_3.11.bb
create mode 100644 recipes-support/python-redis/python-redis_2.10.3.bb
create mode 100644 recipes-support/python-requests/python-requests_2.3.0.bb
create mode 100644 recipes-support/python-simplejson/python-simplejson_3.6.2.bb
diff --git a/recipes-support/gunicorn/gunicorn_19.1.1.bb b/recipes-support/gunicorn/gunicorn_19.1.1.bb
new file mode 100644
index 0000000..bbe03ea
--- /dev/null
+++ b/recipes-support/gunicorn/gunicorn_19.1.1.bb
@@ -0,0 +1,15 @@
+SUMMARY = "WSGI HTTP Server for UNIX"
+DESCRIPTION = "\
+ Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP Server for UNIX. It’s \
+ a pre-fork worker model ported from Ruby’s Unicorn project. The \
+ Gunicorn server is broadly compatible with various web frameworks, \
+ simply implemented, light on server resource usage, and fairly speedy. \
+ "
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=19a2e253a273e390cd1b91d19b6ee236"
+
+SRC_URI = "https://pypi.python.org/packages/source/g/gunicorn/${PN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "eaa72bff5341c05169b76ce3dcbb8140"
+SRC_URI[sha256sum] = "82715511fb6246fad4ba66d812eb93416ae8371b464fa88bf3867c9c177daa14"
+
+inherit setuptools
diff --git a/recipes-support/python-backports-lzma/python-backports-lzma/fix_paths.patch b/recipes-support/python-backports-lzma/python-backports-lzma/fix_paths.patch
new file mode 100644
index 0000000..c2b374f
--- /dev/null
+++ b/recipes-support/python-backports-lzma/python-backports-lzma/fix_paths.patch
@@ -0,0 +1,17 @@
+---
+ setup.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/setup.py
++++ b/setup.py
+@@ -32,8 +32,8 @@
+ extens = [Extension('backports/lzma/_lzma',
+ ['backports/lzma/_lzmamodule.c'],
+ libraries = ['lzma'],
+- include_dirs = [os.path.join(home, 'include'), '/opt/local/include', '/usr/local/include'],
+- library_dirs = [os.path.join(home, 'lib'), '/opt/local/lib', '/usr/local/lib']
++ include_dirs = [],
++ library_dirs = []
+ )]
+
+ descr = "Backport of Python 3.3's 'lzma' module for XZ/LZMA compressed files."
diff --git a/recipes-support/python-backports-lzma/python-backports-lzma_0.0.3.bb b/recipes-support/python-backports-lzma/python-backports-lzma_0.0.3.bb
new file mode 100644
index 0000000..a3586c0
--- /dev/null
+++ b/recipes-support/python-backports-lzma/python-backports-lzma_0.0.3.bb
@@ -0,0 +1,32 @@
+HOMEPAGE = "https://github.com/peterjc/backports.lzma"
+SUMMARY = "\
+ Backport of Python 3.3's 'lzma' module for XZ/LZMA compressed files."
+DESCRIPTION = "\
+ This is a backport of the 'lzma' module included in Python 3.3 or later \
+ by Nadeem Vawda and Per Oyvind Karlsen, which provides a Python wrapper \
+ for XZ Utils (aka LZMA Utils v2) by Igor Pavlov. \
+ . \
+ In order to compile this, you will need to install XZ Utils from \
+ http://tukaani.org/xz/ \
+ "
+SECTION = "devel/python"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=db4345b3b9524aabc8fe8c65f235c6b2"
+
+SRC_URI[md5sum] = "c3d109746aefa86268e500c07d7e8e0f"
+SRC_URI[sha256sum] = "bac58aec8d39ac3d22250840fb24830d0e4a0ef05ad8f3f09172dc0cc80cdbca"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+DEPENDS += "xz"
+
+SRCNAME = "backports.lzma"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI = "\
+ https://pypi.python.org/packages/source/b/backports.lzma/${SRCNAME}-${PV}.tar.gz \
+ file://fix_paths.patch \
+ "
diff --git a/recipes-support/python-blinker/python-blinker_1.3.bb b/recipes-support/python-blinker/python-blinker_1.3.bb
new file mode 100644
index 0000000..24e19b5
--- /dev/null
+++ b/recipes-support/python-blinker/python-blinker_1.3.bb
@@ -0,0 +1,22 @@
+HOMEPAGE = "https://pypi.python.org/pypi/blinker"
+SUMMARY = "Fast, simple object-to-object and broadcast signaling"
+DESCRIPTION = " \
+ Blinker provides a fast dispatching system that allows any number of \
+ interested parties to subscribe to events, or “signals”. \
+ . \
+ Signal receivers can subscribe to specific senders or receive signals \
+ sent by any sender. \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8baf1d53a00de619f60052e4752a89af"
+
+SRCNAME = "blinker"
+SRC_URI = "https://pypi.python.org/packages/source/b/blinker/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "66e9688f2d287593a0e698cd8a5fbc57"
+SRC_URI[sha256sum] = "6811010809262261e41ab7b92f3f6d23f35cf816fbec2bc05077992eebec6e2f"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
diff --git a/recipes-support/python-boto/python-boto_2.34.0.bb b/recipes-support/python-boto/python-boto_2.34.0.bb
new file mode 100644
index 0000000..f94f324
--- /dev/null
+++ b/recipes-support/python-boto/python-boto_2.34.0.bb
@@ -0,0 +1,25 @@
+HOMEPAGE = "https://github.com/boto/boto"
+SUMMARY = "Amazon Web Services API"
+DESCRIPTION = "\
+ Boto is a Python package that provides interfaces to Amazon Web Services. \
+ Currently, all features work with Python 2.6 and 2.7. Work is under way to \
+ support Python 3.3+ in the same codebase. Modules are being ported one at \
+ a time with the help of the open source community, so please check below \
+ for compatibility with Python 3.3+. \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://setup.py;md5=182ef81236d3fac2c6ed8e8d3c988ec8"
+
+PR = "r0"
+SRCNAME = "boto"
+
+SRC_URI = "https://pypi.python.org/packages/source/b/boto/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "5556223d2d0cc4d06dd4829e671dcecd"
+SRC_URI[sha256sum] = "33baab022ecb803414ad0d6cf4041d010cfc2755ff8acc3bea7b32e77ba98be0"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
diff --git a/recipes-support/python-bugsnag/python-bugsnag_2.0.2.bb b/recipes-support/python-bugsnag/python-bugsnag_2.0.2.bb
new file mode 100644
index 0000000..edf880f
--- /dev/null
+++ b/recipes-support/python-bugsnag/python-bugsnag_2.0.2.bb
@@ -0,0 +1,26 @@
+HOMEPAGE = "https://bugsnag.com/"
+SUMMARY = "Automatic error monitoring for django, flask, etc."
+DESCRIPTION = "\
+ The official Python notifier for `Bugsnag <https://bugsnag.com/>`_. \
+ Provides support for automatically capturing and sending exceptions \
+ in your Django and other Python apps to Bugsnag, to help you find \
+ and solve your bugs as fast as possible. \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=f6df6ab9f1b615a140ebb2a48f61bddc"
+
+PR = "r0"
+SRCNAME = "bugsnag"
+
+SRC_URI = "https://pypi.python.org/packages/source/b/bugsnag/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "e16360d86979890892cd388635f213e7"
+SRC_URI[sha256sum] = "093934b3cd1d36ba2b89cfe1673b14ba59043417fe500a02dbf6de0df43ea962"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+DEPENDS += "python-webob python-flask python-blinker"
+
diff --git a/recipes-support/python-docker-registry-core/python-docker-registry-core_2.0.3.bb b/recipes-support/python-docker-registry-core/python-docker-registry-core_2.0.3.bb
new file mode 100644
index 0000000..7aa6825
--- /dev/null
+++ b/recipes-support/python-docker-registry-core/python-docker-registry-core_2.0.3.bb
@@ -0,0 +1,29 @@
+HOMEPAGE = "https://pypi.python.org/pypi/docker-registry-core"
+SUMMARY = "Docker registry core package"
+DESCRIPTION = "core package for docker-registry (drivers) developers"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRCNAME = "docker-registry-core"
+
+SRC_URI = "https://pypi.python.org/packages/source/d/docker-registry-core/${SRCNAME}-${PV}.tar.gz"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+SRC_URI[md5sum] = "610ef9395f2e9a2f91c68d13325fce7b"
+SRC_URI[sha256sum] = "347e804f1f35b28dbe27bf8d7a0b630fca29d684032139bf26e3940572360360"
+
+inherit setuptools
+
+DEPENDS += "\
+ python-distribute \
+ python-boto (= 2.34.0) \
+ python-redis (= 2.10.3) \
+ python-simplejson (= 3.6.2) \
+ "
+
+# boto 2.34.0
+# redis 2.10.3
+# simplejson 3.6.2
+# setuptools 5.8
diff --git a/recipes-support/python-flask-cors/python-flask-cors_1.10.3.bb b/recipes-support/python-flask-cors/python-flask-cors_1.10.3.bb
new file mode 100644
index 0000000..c39e9b2
--- /dev/null
+++ b/recipes-support/python-flask-cors/python-flask-cors_1.10.3.bb
@@ -0,0 +1,22 @@
+HOMEPAGE = "https://pypi.python.org/pypi/Flask-Cors/1.10.3"
+SUMMARY = "A Flask extension adding a decorator for CORS support"
+DESCRIPTION = "\
+ A Flask extension for handling Cross Origin Resource Sharing (CORS), making cross-origin AJAX possible \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4784781a5ee9fed9c50272e733e07685"
+
+DEPENDS += "python-six python-flask"
+
+PR = "r0"
+SRCNAME = "Flask-Cors"
+
+SRC_URI = "https://pypi.python.org/packages/source/F/Flask-Cors/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "4f3c75ace0f724d1de167bd73745c965"
+SRC_URI[sha256sum] = "9e6927aa0a46f314bca0ec63eb871cee898a162adfdd5b65224db7a008287423"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
diff --git a/recipes-support/python-gevent/files/libev-conf.patch b/recipes-support/python-gevent/files/libev-conf.patch
new file mode 100644
index 0000000..283705f
--- /dev/null
+++ b/recipes-support/python-gevent/files/libev-conf.patch
@@ -0,0 +1,19 @@
+Due to differences in library locations, the cross compile test can fail because it can't run
+the conftest binary (dynamically linked). Building it statically instead.
+
+Signed-off-by: Amy Fong <amy.fong@windriver.com>
+---
+ libev/configure | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/libev/configure
++++ b/libev/configure
+@@ -2730,7 +2730,7 @@
+ ac_ext=c
+ ac_cpp='$CPP $CPPFLAGS'
+ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_link='$CC -static -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
diff --git a/recipes-support/python-gevent/python-gevent_1.0.1.bb b/recipes-support/python-gevent/python-gevent_1.0.1.bb
new file mode 100644
index 0000000..9c559bc
--- /dev/null
+++ b/recipes-support/python-gevent/python-gevent_1.0.1.bb
@@ -0,0 +1,24 @@
+HOMEPAGE = "http://www.gevent.org"
+SUMMARY = "A coroutine-based Python networking library"
+DESCRIPTION = "\
+ gevent is a coroutine-based Python networking library that uses greenlet \
+ to provide a high-level synchronous API on top of the libevent event \
+ loop. \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2dbb33d00e1fd31c7041460a81ac0bd2"
+DEPENDS += "python-greenlet libevent"
+RDEPENDS_${PN} += "python-greenlet python-mime python-pprint python-re"
+
+SRCNAME = "gevent"
+
+SRC_URI = "http://pypi.python.org/packages/source/g/gevent/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "7b952591d1a0174d6eb6ac47bd975ab6"
+SRC_URI[sha256sum] = "4627e215d058f71d95e6b26d9e7be4c263788a4756bd2858a93775f6c072df43"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+SRC_URI += "file://libev-conf.patch"
diff --git a/recipes-support/python-m2crypto/python-m2crypto_0.22.3.bb b/recipes-support/python-m2crypto/python-m2crypto_0.22.3.bb
new file mode 100644
index 0000000..3325455
--- /dev/null
+++ b/recipes-support/python-m2crypto/python-m2crypto_0.22.3.bb
@@ -0,0 +1,60 @@
+HOMEPAGE = "http://chandlerproject.org/bin/view/Projects/MeTooCrypto"
+SUMMARY = "A Python crypto and SSL toolkit"
+DESCRIPTION = "\
+ M2Crypto is the most complete Python wrapper for OpenSSL featuring RSA, \
+ DSA, DH, EC, HMACs, message digests, symmetric ciphers (including \
+ AES); SSL functionality to implement clients and servers; HTTPS \
+ extensions to Python's httplib, urllib, and xmlrpclib; unforgeable \
+ HMAC'ing AuthCookies for web session management; FTP/TLS client and \
+ server; S/MIME; ZServerSSL: A HTTPS server for Zope and ZSmime: An \
+ S/MIME messenger for Zope. M2Crypto can also be used to provide SSL \
+ for Twisted. \
+ "
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=0ccca7097c1d29fa42e75e9c15c6ff2e"
+
+SRCNAME = "M2Crypto"
+SRC_URI = "http://pypi.python.org/packages/source/M/M2Crypto/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "573f21aaac7d5c9549798e72ffcefedd"
+SRC_URI[sha256sum] = "6071bfc817d94723e9b458a010d565365104f84aa73f7fe11919871f7562ff72"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+DEPENDS += "openssl swig-native"
+
+DISTUTILS_BUILD_ARGS += "build_ext -I${STAGING_INCDIR}"
+
+inherit setuptools
+
+SWIG_FEATURES_x86-64 = "-D__x86_64__"
+SWIG_FEATURES ?= ""
+export SWIG_FEATURES
+
+# Get around a problem with swig, but only if the
+# multilib header file exists.
+#
+do_compile_prepend() {
+ sed -i -e 's/self.add_multiarch_paths.*$/# &/;' ${S}/setup.py
+ sed -i -e 's/opensslIncludeDir = .*$/opensslIncludeDir = os.getenv("STAGING_INCDIR")/;' ${S}/setup.py
+ sed -i -e 's/opensslLibraryDir = .*$/opensslLibraryDir = os.getenv("STAGING_LIBDIR")/;' ${S}/setup.py
+
+ if [ "${SITEINFO_BITS}" = "64" ];then
+ bit="64"
+ else
+ bit="32"
+ fi
+
+ if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ]; then
+ for i in SWIG/_ec.i SWIG/_evp.i; do
+ sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i"
+ done
+ elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then
+ for i in SWIG/_ec.i SWIG/_evp.i; do
+ sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i"
+ done
+ fi
+}
+
diff --git a/recipes-support/python-newrelic/python-newrelic_2.22.0.19.bb b/recipes-support/python-newrelic/python-newrelic_2.22.0.19.bb
new file mode 100644
index 0000000..3891824
--- /dev/null
+++ b/recipes-support/python-newrelic/python-newrelic_2.22.0.19.bb
@@ -0,0 +1,26 @@
+HOMEPAGE = "http://www.newrelic.com"
+SUMMARY = "New Relic Python Agent"
+DESCRIPTION = "\
+ Python agent for the New Relic web application performance monitoring \
+ service. Check the release notes for what has changed in this version. \
+ "
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause & MIT & Python-2.0 & BSD-2-Clause & NewRelic"
+LIC_FILES_CHKSUM = "file://newrelic/LICENSE;md5=0f6cc160a8ed6759faa408a30b6ac978"
+
+PR = "r0"
+SRCNAME = "newrelic"
+
+SRC_URI = "https://pypi.python.org/packages/source/n/newrelic/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "f8c9bf996d040a11847d14682b290eff"
+SRC_URI[sha256sum] = "aa8869413c21aff441a77582df1e0fdc0f67342760eb7560d33ed3bbed7edf7b"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+FILES_${PN}-dbg += "\
+ ${PYTHON_SITEPACKAGES_DIR}/newrelic-${PV}/newrelic/*/.debug \
+ ${PYTHON_SITEPACKAGES_DIR}/newrelic-${PV}/newrelic/packages/*/.debug/ \
+ "
diff --git a/recipes-support/python-pyyaml/python-pyyaml_3.11.bb b/recipes-support/python-pyyaml/python-pyyaml_3.11.bb
new file mode 100644
index 0000000..cb1db8c
--- /dev/null
+++ b/recipes-support/python-pyyaml/python-pyyaml_3.11.bb
@@ -0,0 +1,30 @@
+HOMEPAGE = "http://www.pyyaml.org"
+SUMMARY = "Python support for YAML"
+DESCRIPTION = "\
+ YAML is a data serialization format designed for human readability \
+ and interaction with scripting languages. PyYAML is a YAML parser \
+ and emitter for Python. \
+ . \
+ PyYAML features a complete YAML 1.1 parser, Unicode support, pickle \
+ support, capable extension API, and sensible error messages. PyYAML \
+ supports standard YAML tags and provides Python-specific tags that \
+ allow to represent an arbitrary Python object. \
+ . \
+ PyYAML is applicable for a broad range of tasks from complex \
+ configuration files to object serialization and persistance. \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17"
+
+SRCNAME = "PyYAML"
+SRC_URI = "http://pyyaml.org/download/pyyaml/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "f50e08ef0fe55178479d3a618efe21db"
+SRC_URI[sha256sum] = "c36c938a872e5ff494938b33b14aaa156cb439ec67548fcab3535bb78b0846e8"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+DEPENDS += "libyaml python-cython-native"
diff --git a/recipes-support/python-redis/python-redis_2.10.3.bb b/recipes-support/python-redis/python-redis_2.10.3.bb
new file mode 100644
index 0000000..9eda8a5
--- /dev/null
+++ b/recipes-support/python-redis/python-redis_2.10.3.bb
@@ -0,0 +1,20 @@
+HOMEPAGE = "https://pypi.python.org/pypi/redis/"
+SUMMARY = "Python client for Redis key-value store"
+DESCRIPTION = "The Python interface to the Redis key-value store."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=51d9ad56299ab60ba7be65a621004f27"
+
+PR = "r0"
+SRCNAME = "redis"
+
+SRC_URI = "https://pypi.python.org/packages/source/r/redis/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "7619221ad0cbd124a5687458ea3f5289"
+SRC_URI[sha256sum] = "a4fb37b02860f6b1617f6469487471fd086dd2d38bbce640c2055862b9c4019c"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
+
+RDEPENDS_${PN} = "redis"
diff --git a/recipes-support/python-requests/python-requests_2.3.0.bb b/recipes-support/python-requests/python-requests_2.3.0.bb
new file mode 100644
index 0000000..6f38bf1
--- /dev/null
+++ b/recipes-support/python-requests/python-requests_2.3.0.bb
@@ -0,0 +1,29 @@
+HOMEPAGE = "http://python-requests.org"
+SUMMARY = "Python HTTP for Humans."
+DESCRIPTION = "\
+ Requests is an Apache2 Licensed HTTP library, written in Python, \
+ for human beings. \
+ . \
+ Most existing Python modules for sending HTTP requests are extremely \
+ verbose and cumbersome. Python's builtin urllib2 module provides most \
+ of the HTTP capabilities you should need, but the api is thoroughly \
+ broken. It requires an enormous amount of work (even method overrides) \
+ to perform the simplest of tasks. \
+ . \
+ Things shouldn't be this way. Not in Python \
+ "
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c7869e52c8275537186de35e3cd5f9ec"
+
+PR = "r0"
+SRCNAME = "requests"
+
+SRC_URI = "http://pypi.python.org/packages/source/r/requests/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "7449ffdc8ec9ac37bbcd286003c80f00"
+SRC_URI[sha256sum] = "1c1473875d846fe563d70868acf05b1953a4472f4695b7b3566d1d978957b8fc"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit setuptools
diff --git a/recipes-support/python-simplejson/python-simplejson_3.6.2.bb b/recipes-support/python-simplejson/python-simplejson_3.6.2.bb
new file mode 100644
index 0000000..f13f1f3
--- /dev/null
+++ b/recipes-support/python-simplejson/python-simplejson_3.6.2.bb
@@ -0,0 +1,31 @@
+HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson"
+SUMMARY = "Simple, fast, extensible JSON encoder/decoder for Python"
+DESCRIPTION = "\
+ JSON <http://json.org> encoder and decoder for Python 2.5+ \
+ and Python 3.3+. It is pure Python code with no dependencies, \
+ but includes an optional C extension for a serious speed boost \
+ "
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c6338d7abd321c0b50a2a547e441c52e"
+PR = "r0"
+
+SRCNAME = "simplejson"
+
+SRC_URI = "https://pypi.python.org/packages/source/s/simplejson/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "deca871b9bfa4b76ea360756b2a22710"
+SRC_URI[sha256sum] = "99c092209f88d411858f01b14a97a4fcf8c4f438a685e23d733a3d65de52a35d"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit distutils
+
+RDEPENDS_${PN} = "\
+ python-core \
+ python-re \
+ python-io \
+ python-netserver \
+ python-numbers \
+"
+
+
--
2.1.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/5] Package docker
2015-02-27 21:40 [PATCH 0/5] Package docker + docker-registry Amy Fong
` (3 preceding siblings ...)
2015-02-27 21:41 ` [PATCH 5/5] Add python packages needed for docker-registry Amy Fong
@ 2015-03-01 4:36 ` Amy Fong
2015-03-02 20:40 ` [PATCH 0/5] Package docker + docker-registry Bruce Ashfield
5 siblings, 0 replies; 9+ messages in thread
From: Amy Fong @ 2015-03-01 4:36 UTC (permalink / raw)
To: meta-virtualization
From 710262f1d13f6a81b77ced6b94c009ab4bd3f1d7 Mon Sep 17 00:00:00 2001
From: Amy Fong <amy.fong@windriver.com>
Date: Fri, 27 Feb 2015 15:59:10 -0500
Subject: [PATCH 2/5] Package docker
Adding docker (Linux container runtime)
Signed-off-by: Amy Fong <amy.fong@windriver.com>
---
recipes-containers/docker/docker_git.bb | 122 +++++++++++++++++++++++++
recipes-containers/docker/files/docker.service | 15 +++
recipes-containers/docker/files/hi.Dockerfile | 7 ++
3 files changed, 144 insertions(+)
create mode 100644 recipes-containers/docker/docker_git.bb
create mode 100644 recipes-containers/docker/files/docker.service
create mode 100644 recipes-containers/docker/files/hi.Dockerfile
diff --git a/recipes-containers/docker/docker_git.bb b/recipes-containers/docker/docker_git.bb
new file mode 100644
index 0000000..a1d6ff4
--- /dev/null
+++ b/recipes-containers/docker/docker_git.bb
@@ -0,0 +1,122 @@
+HOMEPAGE = "http://www.docker.com"
+SUMMARY = "Linux container runtime"
+DESCRIPTION = "Linux container runtime \
+ Docker complements kernel namespacing with a high-level API which \
+ operates at the process level. It runs unix processes with strong \
+ guarantees of isolation and repeatability across servers. \
+ . \
+ Docker is a great building block for automating distributed systems: \
+ large-scale web deployments, database clusters, continuous deployment \
+ systems, private PaaS, service-oriented architectures, etc. \
+ . \
+ This package contains the daemon and client. Using docker.io on non-amd64 \
+ hosts is not supported at this time. Please be careful when using it \
+ on anything besides amd64. \
+ . \
+ Also, note that kernel version 3.8 or above is required for proper \
+ operation of the daemon process, and that any lower versions may have \
+ subtle and/or glaring issues. \
+ "
+
+SRCREV = "2243e32cbbf1c9809c262a7376d34ca43a7a36dc"
+SRC_URI = "\
+ git://github.com/docker/docker.git \
+ file://docker.service \
+ file://hi.Dockerfile \
+ "
+
+# Apache-2.0 for docker
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1cc0497778922bfd6cb48721deb80dc7"
+
+S = "${WORKDIR}/git"
+
+DOCKER_VERSION = "1.5.0"
+PV = "${DOCKER_VERSION}+git${SRCREV}"
+
+DEPENDS = "golang-cross btrfs-tools sqlite3 "
+DEPENDS_append_class-target = "lvm2"
+RDEPENDS_${PN} = "curl aufs-util git cgroup-lite util-linux"
+RRECOMMENDS_${PN} = "lxc docker-registry rt-tests"
+
+do_compile() {
+ export GOARCH="${TARGET_ARCH}"
+ # supported amd64, 386, arm
+ if [ "${TARGET_ARCH}" = "x86_64" ]; then
+ export GOARCH="amd64"
+ fi
+
+ # setting AUTO_GOPATH to use the default vendor configuration
+ # as opposed to setting up GOPATH with all the explicit vendor
+ # directory structure...
+ #
+ # From docker's PACKAGERS.md:
+ # If you'd rather not be bothered with the hassles that setting up
+ # `GOPATH` appropriately can be, and prefer to just get a "build
+ # that works", you should add something similar to this to whatever
+ # script or process you're using to build Docker
+ export AUTO_GOPATH=1
+
+ # Pass the needed cflags/ldflags so that cgo
+ # can find the needed headers files and libraries
+ export CGO_CFLAGS="${BUILD_CFLAGS}"
+ export CGO_LDFLAGS="${BUILD_LDFLAGS}"
+
+ # this is the unsupported built structure
+ # that doesn't rely on an existing docker
+ # to build this:
+ DOCKER_GITCOMMIT="${SRCREV}" \
+ ./hack/make.sh dynbinary
+
+ export GOPATH=${S}/vendor
+
+ # make nsinit from libcontainer - installed in vendor/bin
+ ln -s ${S} ${S}/vendor/src/github.com/docker/docker
+ mkdir -p ${S}/vendor/src/github.com/codegangsta
+ (cd ${S}/vendor/src/github.com/codegangsta && git clone https://github.com/codegangsta/cli)
+ go install github.com/docker/libcontainer/nsinit/
+}
+
+inherit systemd
+
+SYSTEMD_PACKAGES = "${@base_contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
+SYSTEMD_SERVICE_${PN} = "${@base_contains('DISTRO_FEATURES','systemd','docker.service','',d)}"
+
+do_install() {
+ mkdir -p ${D}/${bindir}
+ cp ${S}/bundles/${DOCKER_VERSION}-dev/dynbinary/docker-${DOCKER_VERSION}-dev \
+ ${D}/${bindir}/docker
+ cp ${S}/bundles/${DOCKER_VERSION}-dev/dynbinary/dockerinit-${DOCKER_VERSION}-dev \
+ ${D}/${bindir}/dockerinit
+
+ if ${@base_contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${S}/contrib/init/systemd/docker.* ${D}/${systemd_unitdir}/system
+ # replaces one copied from above with one that uses the local registry for a mirror
+ install -m 644 ${WORKDIR}/docker.service ${D}/${systemd_unitdir}/system
+ fi
+
+ cp ${S}/vendor/bin/nsinit ${D}/${bindir}
+
+ mkdir -p ${D}/usr/share/docker/
+ cp ${WORKDIR}/hi.Dockerfile ${D}/usr/share/docker/
+}
+
+inherit useradd
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "-r docker"
+
+FILES_${PN} += "/lib/systemd/system/*"
+
+# DO NOT STRIP docker and dockerinit!!!
+#
+# Reason:
+# The "docker" package contains two binaries: "docker" and "dockerinit",
+# which are both written in Go. The "dockerinit" package is built first,
+# then its checksum is given to the build process compiling the "docker"
+# binary. Hence the checksum of the unstripped "dockerinit" binary is hard
+# coded into the "docker" binary. At runtime the "docker" binary invokes
+# the "dockerinit" binary, but before doing that it ensures the checksum
+# of "dockerinit" matches with the hard coded value.
+#
+INHIBIT_PACKAGE_STRIP = "1"
diff --git a/recipes-containers/docker/files/docker.service b/recipes-containers/docker/files/docker.service
new file mode 100644
index 0000000..6801031
--- /dev/null
+++ b/recipes-containers/docker/files/docker.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Docker Application Container Engine
+Documentation=http://docs.docker.com
+After=network.target docker.socket
+Requires=docker.socket
+
+[Service]
+ExecStart=/usr/bin/docker -d -H fd:// --registry-mirror=http://localhost:5000 --insecure-registry=http://localhost:5000
+MountFlags=slave
+LimitNOFILE=1048576
+LimitNPROC=1048576
+LimitCORE=infinity
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-containers/docker/files/hi.Dockerfile b/recipes-containers/docker/files/hi.Dockerfile
new file mode 100644
index 0000000..9af6805
--- /dev/null
+++ b/recipes-containers/docker/files/hi.Dockerfile
@@ -0,0 +1,7 @@
+FROM debian
+
+MAINTAINER amy.fong@windriver.com
+
+RUN apt-get update && apt-get install figlet
+
+ENTRYPOINT [ "/usr/bin/figlet", "hi" ]
--
2.1.4
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 0/5] Package docker + docker-registry
2015-02-27 21:40 [PATCH 0/5] Package docker + docker-registry Amy Fong
` (4 preceding siblings ...)
2015-03-01 4:36 ` [PATCH 2/5] Package docker Amy Fong
@ 2015-03-02 20:40 ` Bruce Ashfield
2015-03-09 18:33 ` Amy Fong
5 siblings, 1 reply; 9+ messages in thread
From: Bruce Ashfield @ 2015-03-02 20:40 UTC (permalink / raw)
To: Amy Fong; +Cc: meta-virtualization
On Fri, Feb 27, 2015 at 4:40 PM, Amy Fong <amy.fong@windriver.com> wrote:
> This set of patches adds the packages docker, docker-registry
> and required dependencies/rdependencies.
>
> The following were added to my BBLAYERS on top
> of a basic yocto/poky build to compile these packages:
>
> meta-virtualization \
> meta-cloud-services/meta-openstack \
This is creating a circular dependency. Which recipes in particular do we
need from meta-openstack ?
We need to pull those recipes from meta-openstack to meta-virt, and then
I can take the submission.
Cheers.
Bruce
> meta-openembedded/meta-oe \
> meta-openembedded/meta-networking \
> meta-openembedded/meta-python \
> meta-openembedded/meta-filesystems \
>
>
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
--
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/5] Package docker + docker-registry
2015-03-02 20:40 ` [PATCH 0/5] Package docker + docker-registry Bruce Ashfield
@ 2015-03-09 18:33 ` Amy Fong
2015-03-11 18:39 ` M. Asselstine
0 siblings, 1 reply; 9+ messages in thread
From: Amy Fong @ 2015-03-09 18:33 UTC (permalink / raw)
To: Bruce Ashfield; +Cc: meta-virtualization
On Mon, Mar 02, 2015 at 03:40:11PM -0500, Bruce Ashfield wrote:
> On Fri, Feb 27, 2015 at 4:40 PM, Amy Fong <amy.fong@windriver.com> wrote:
> > This set of patches adds the packages docker, docker-registry
> > and required dependencies/rdependencies.
> >
> > The following were added to my BBLAYERS on top
> > of a basic yocto/poky build to compile these packages:
> >
> > meta-virtualization \
> > meta-cloud-services/meta-openstack \
>
> This is creating a circular dependency. Which recipes in particular do we
> need from meta-openstack ?
>
> We need to pull those recipes from meta-openstack to meta-virt, and then
> I can take the submission.
>
> Cheers.
>
> Bruce
Sorry, mail got buried.
3 packages:
python-flask
python-webob
python-werkzeug
Amy
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 0/5] Package docker + docker-registry
2015-03-09 18:33 ` Amy Fong
@ 2015-03-11 18:39 ` M. Asselstine
0 siblings, 0 replies; 9+ messages in thread
From: M. Asselstine @ 2015-03-11 18:39 UTC (permalink / raw)
To: Amy Fong; +Cc: meta-virtualization
On Mon, Mar 9, 2015 at 2:33 PM, Amy Fong <amy.fong@windriver.com> wrote:
> On Mon, Mar 02, 2015 at 03:40:11PM -0500, Bruce Ashfield wrote:
>> On Fri, Feb 27, 2015 at 4:40 PM, Amy Fong <amy.fong@windriver.com> wrote:
>> > This set of patches adds the packages docker, docker-registry
>> > and required dependencies/rdependencies.
>> >
>> > The following were added to my BBLAYERS on top
>> > of a basic yocto/poky build to compile these packages:
>> >
>> > meta-virtualization \
>> > meta-cloud-services/meta-openstack \
>>
>> This is creating a circular dependency. Which recipes in particular do we
>> need from meta-openstack ?
>>
>> We need to pull those recipes from meta-openstack to meta-virt, and then
>> I can take the submission.
>>
>> Cheers.
>>
>> Bruce
>
> Sorry, mail got buried.
>
> 3 packages:
>
> python-flask
> python-webob
> python-werkzeug
The list turns out to be a bit larger than this as some of these had
their own dependencies. At any rate I have a patch I will send to Amy
which she can use as the base to her series to add these missing
dependencies (Bruce I will send you the matching commit for the
removals in meta-cloud-services)
Amy I have one small change you will want to squash in to your series
as well, again I will send this to you directly.
With this new series will be meta-cloud-services free.
I thought I noticed some python Eggs being downloaded during my build
so I am just doing another build test now with networking disabled so
we can catch these and add them as needed.
Mark
>
> Amy
> --
> _______________________________________________
> meta-virtualization mailing list
> meta-virtualization@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-virtualization
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-03-11 18:39 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-02-27 21:40 [PATCH 0/5] Package docker + docker-registry Amy Fong
2015-02-27 21:40 ` [PATCH 1/5] Add golang-cross Amy Fong
2015-02-27 21:41 ` [PATCH 3/5] Package docker-registry Amy Fong
2015-02-27 21:41 ` [PATCH 4/5] Add cgroup-lite Amy Fong
2015-02-27 21:41 ` [PATCH 5/5] Add python packages needed for docker-registry Amy Fong
2015-03-01 4:36 ` [PATCH 2/5] Package docker Amy Fong
2015-03-02 20:40 ` [PATCH 0/5] Package docker + docker-registry Bruce Ashfield
2015-03-09 18:33 ` Amy Fong
2015-03-11 18:39 ` M. Asselstine
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.