Giter Club home page Giter Club logo

cirrus's People

Contributors

appeltel avatar dmannarino avatar evansde77 avatar jcounts avatar jordansamuels avatar ksnavely avatar pengale avatar perilousapricot avatar shudgston avatar skscharr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cirrus's Issues

Document the installer's expectations

It expects you to have virtualenv and pip etc...standard python helpers.

This is likely on a user's machine but perhaps not on config-management controlled infra. We can test for these dependencies and exit 1 with logging if they are missing, as well as expand the install guide.

Better handle unknown commands

When you are too dumb to type the right commands, the distributor should probably tell you instead of puking:

13:45:21 carburetor git cirrus new feature dynamite-error-handling
Traceback (most recent call last):
File "/Users/david/.cirrus/cirrus/venv/bin/cirrus", line 9, in
load_entry_point('cirrus==0.0.7', 'console_scripts', 'cirrus')()
File "/Users/david/.cirrus/cirrus/src/cirrus/delegate.py", line 86, in main
exit_code = run_command([command_path, ] + args[1:])
File "/Users/david/.cirrus/cirrus/src/cirrus/delegate.py", line 38, in run_command
return subprocess.call(cmd, shell=False)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 524, in call
return Popen(_popenargs, *_kwargs).wait()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 711, in init
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1308, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

docker-image build --test to build test images

Currently docker-image build builds an image tagged with the current software version found in cirrus.conf/__init__.py. Sometimes we need to fiddle with the Dockerfile and build a new version when the software version does not change. To handle this we can just create a new release (containing only Dockerfile changes) and build a new Docker image tagged with the release number as usual.

It would be helpful to build an experimental image 0.0.1 and push it to a registry without it overwriting 0.0.1 on the registry, which may be a production ready version.

An option such as docker-image build --test could produce an image tagged as repo:0.0.1_test or repo:0.0.1_test_<timestamp>. When the image is pushed to a registry it will be unlikely that we are clobbering anything important.

Still undecided if this is a cirrus issue or a general workflow issue, but just capturing my thoughts for now.

Installer.sh and gitconfig

  • The installer.sh script follows a path that depends on gitconfig as a dependency, but gitconfig has been removed from requirements.txt.
  • bootstrap.py is still importing gitconfig

Noticed this after a clean reinstall (removed ~/.cirrus).

[seanhudgston@duffman ~]$ bash installer.sh
Installation directory [/Users/seanhudgston/.cirrus]:
Installing cirrus in /Users/seanhudgston/.cirrus...
Cloning into 'cirrus'...
remote: Counting objects: 2447, done.
remote: Compressing objects: 100% (98/98), done.
remote: Total 2447 (delta 55), reused 0 (delta 0), pack-reused 2338
Receiving objects: 100% (2447/2447), 3.26 MiB | 4.68 MiB/s, done.
Resolving deltas: 100% (1347/1347), done.
Checking connectivity... done.
New python executable in /Users/seanhudgston/.cirrus/cirrus/venv/bin/python
Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "bootstrap.py", line 12, in <module>
    import gitconfig
ImportError: No module named gitconfig

Is installer2.sh meant to take installer.sh's place soon?

cirrus package bootstrap command

Need a command to run in a new repo to add the cirrus basics to it. Eg:

git cirrus package-init

This will:

  • add the standard cirrus setup.py (backing up any existing file)
  • generates a skeleton cirrus.conf
  • adds a MANIFEST.in file including requirements and cirrus.conf (modifying/saving existing file)
  • sets up sentinel for history updates if present (--history-file option)
  • verifies that init.py contains version and syncs cirrus.conf with it. (--initial-version option? or read it from file?)
  • May need to add/modify/switch branches around for gitflow (--develop-branch, --master-branch options)
    --initialise-gitflow option could make new branch, checkout, track, push etc.

Gravy:

  • add a template sublime project config (--sublime-project option)
  • pylint config in the package? pyflakes?

cc @appeltel

Make cirrus commands find cirrus.conf within repo

The cirrus.conf can be found using the top level of the current git repo, which saves having to be in the top level dir when using some commands such as cirrus feature.

git rev-parse --show-toplevel

with conda, some packages don't install (even using extra-requirements)

E.g. holoviews will not install properly. If requirements.txt or test-requirements.txt has holoviews in it, this error occurs:

2017-07-17;INFO;local(/Users/jsamuels/cirrus-stuff/venv/bin/pip install -r requirements.txt)
Requirement already satisfied: requests in ./venv/lib/python3.6/site-packages (from -r requirements.txt (line 1))
Collecting holoviews (from -r requirements.txt (line 2))
  Using cached holoviews-1.8.1.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/ss/_jdjdck95_b6zg275525fytwsw2824/T/pip-build-icxlhaew/holoviews/setup.py", line 131, in <module>
        package_assets(example_path)
      File "/private/var/folders/ss/_jdjdck95_b6zg275525fytwsw2824/T/pip-build-icxlhaew/holoviews/setup.py", line 117, in package_assets
        import holoviews
      File "/private/var/folders/ss/_jdjdck95_b6zg275525fytwsw2824/T/pip-build-icxlhaew/holoviews/holoviews/__init__.py", line 5, in <module>
        import numpy as np # noqa (API import)
    ModuleNotFoundError: No module named 'numpy'

The workaround is to leave omit adding holoviews to requirements.txt and manually install as directed by the holoviews website, which uses conda instead of pip, e.g. conda install -c ioam holoviews. I've tried it without the -c ioam and it seems to work fine as well, it just gets an earlier version.

This is a generic problem - there are many libraries which either cannot be installed via pip, or shouldn't be (if they have performance enhancements only available in conda).

External command "docker tag IMAGE" failure

To reproduce, run git cirrus docker-image build with cirrus 0.1.4.

...
2016-08-05;INFO;Image ID: 91c51ae856d6
2016-08-05;INFO;Executing docker tag 91c51ae856d6 some/repo:0.0.1
Error response from daemon: Conflict: Tag some/repo:0.0.1 is already set to image 91c51ae856d6, if you want to replace it, please use -f option

This failure happens because we no longer support the docker tag -f option. Because the image is already tagged in the build step (docker build -t) the subsequent tag command tries to apply the same tag to an image. In this case it is the same image we already tagged, but docker does not seem to care. You would see the same failure if you tried to tag a different image with an existing repo:tag combination.

A first step to fix this problem is to remove the -t option from the docker build -t step. This solution will work as long as each new docker build is also accompanied by a new release, which is what we use as the image tag.

Add test command suite

Test Commands

Run all the available tests
git cirrus test

git cirrus test --suite=unit

This will look at the cirrus config to find the settings for a block of tests called [test-unit]
And then use these to run the unit test suite with nose.

Similarly, we will want to support integ and other suites, so I would make the configuration lookup dynamic,
Eg: --suite=womp means look for [test-womp] in the config.
The config args should be passed to nosetests when it gets run.

Integ tests against cirrus_test repo

Set up integ tests against the cirrus_test repo to do:

selfsetup
build
test
qc
release
docs
selfupdate (no-op)

And make a script so that travis runs that for each release branch in cirrus.

git cirrus release status command

Add a git cirrus release status command that shows the state of a release branch with respect to merge into develop and master.

Use case is to help debug a failed merge due to conflicts and also make it easy to see wether a new release has been merged remotely by CI using something like:
git branch -a --contains

where the commit SHA is from the release branch

selfupdate not working

When running selfupdate I get the following error:

$ git cirrus selfupdate
2016-07-18;INFO;Retrieved latest tag: 0.1.2
2016-07-18;INFO;running pip upgrade...
[localhost] local:  . ./venv/bin/activate && pip install --upgrade cirrus==0.1.2
Collecting cirrus==0.1.2
  Could not find a version that satisfies the requirement cirrus==0.1.2 (from versions: 0.1.linux-x86_64, 0.2.linux-x86_64, 0.1, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10)
No matching distribution found for cirrus==0.1.2

Fatal error: local() encountered an error (return code 1) while executing ' . ./venv/bin/activate && pip install --upgrade cirrus==0.1.2'

Aborting.

This error was also encountered by another person on a previous version and this current version.

Blowing away my cirrus install and using the following did work:

curl -O https://raw.githubusercontent.com/evansde77/cirrus/develop/installer.sh
bash install.sh

Add qc command suite

Quality control
This will be a wrapper for pylint, pep8 and pyflakes and needs to run those commands and produce a score for CI to validate.

Runs all the qc tests, reads thresholds from the [qc] settings and raises if the scores are greater than that
git cirrus qc

Run only pylint
git cirrus qc --pylint

Run only pylint and pep8
git cirrus qc --pylint --pep8

Run on a particular file:
git cirrus qc src/cirrus/somefile.py

Tricky part here will be grabbing the output of the commands from pylint and extracting the score as it is very verbose.
Config section should also include pointer to the rc files for the various checkers, if required.

Make installer scripts repo configurable

If people fork a copy of cirrus, make the installers accept args to select the repo it comes from.

Should include installer.sh and robot-installer.sh
Probably initially just specifying installer.sh as CLI args would work for now.

Specifying `conda-environment=<file>` in cirrus.conf does not work

Even if you specify e.g.

[build]
builder = CondaEnv
conda-environment = environment.yml

in cirrus.conf, you still get:

RuntimeError: No conda environment yaml specified in cirrus.conf [build] section or via --environment option

when you run conda build . The workaround is to specify on command line conda build --environment=environment.yml .

The reason this appears to be happening is that in conda_env.py, this code

        self.plugin_parser.add_argument(
            '--environment',
            help='conda environment file to process',
            default=None
        )

causes the lookup here

        environment = kwargs.get(
            'environment',
            self.build_config.get('conda-environment', None)
        )

to fail, because the kwargs['environment'] = None so the build_config.get is never invoked.

Incompatibility with Travis-CI

Found a venv related incompatibility using cirrus commands i.e. git cirrus build, git cirrus test from within a Travis-CI build.

The problem is that Travis-CI already uses a venv linked to a non-system runtime - for example python 2.7.9 if you specify "2.7" in your .travis.yml. Cirrus creates a new venv which links to the default (system) python runtime, which in the standard build system is 2.7.3. I haven't tested, but expect the same problem to occur with a python3 project.

Now that many python packages are starting to distribute manylinux wheels, binary incompatibilities such as the _PyTrash_thread_deposit_object symbol added in python 2.7.4 can break tests at runtime when using the older system python.

One possible strategy to make cirrus compatible with Travis-CI would be to have a --no-virtualenv option of some sort, as the virtualenv is superfluous within a Travis-CI build setting.

Fix release plugin error handling for missing pypi info

Missing config in cirrus.conf needs to be checked and verified, and CLI opts that are specific to the plugin itself need to be handled.

Cause is missing pypi section in the package config for private pypi servers with the fabric upload.

11:35:26 cirrus git cirrus release upload --plugin=fabric --pypi-url=https://pypi.cloudant.com/
2016-03-30;INFO;Uploading release...
2016-03-30;INFO;Uploading artifact: /Users/evansde77/Documents/cirrus/dist/cirrus-cli-0.0.45.tar.gz
2016-03-30;INFO;Loading plugin fabric
Traceback (most recent call last):
File "/Users/evansde77/.cirrus/cirrus/venv/bin/release", line 9, in
load_entry_point('cirrus', 'console_scripts', 'release')()
File "/Users/evansde77/.cirrus/cirrus/src/cirrus/release.py", line 765, in main
upload_release(opts)
File "/Users/evansde77/.cirrus/cirrus/src/cirrus/release.py", line 554, in upload_release
plugin.upload(opts, build_artifact)
File "/Users/evansde77/.cirrus/cirrus/src/cirrus/plugins/uploaders/fabric_put.py", line 37, in upload
package_dir = pypi_conf['pypi_upload_path']
KeyError: 'pypi_upload_path'

Parametrize/Plugin building virtualenvs/conda envs

Flip to using a plugin for creating/activating venvs that can be customised to handle specifics like venv vs conda (or maybe pipenv in the future)

Expose these as options in git cirrus build so that you can use different envs to the one that cirrus gets installed with

Add git cirrus home command

Enable viewing, setting and tweaking the cirrus home location which presently assumes the top level dir of a git repo.
Enabling a command like
git cirrus home set # makes cirrus home pwd
git cirrus home set -p /path/to/package # makes cirrus home the provided path
git cirrus home show # shows current cirrus package location and details eg:
CIRRUS_HOME: /home/evansde77/cirrus
Cirrus package name: cirrus

This will help support cases like multiple packages in a single git repo and also maybe pave the way for supporting other VCS in the future. The alternative is some sort of path walk to find the first cirrus.conf which could be ropey, so this would make it easy for the user to simply state "work on this package"

Handle None values in commit data from github

While making a release I encountered the following:

Traceback (most recent call last):
  File "/Users/Kyle/.cirrus/cirrus/venv/bin/release", line 9, in <module>
    load_entry_point('cirrus==0.0.7', 'console_scripts', 'release')()
  File "/Users/Kyle/.cirrus/cirrus/src/cirrus/release.py", line 325, in main
    new_release(opts)
  File "/Users/Kyle/.cirrus/cirrus/src/cirrus/release.py", line 210, in new_release
    config.release_notes_format()
  File "/Users/Kyle/.cirrus/cirrus/src/cirrus/github_tools.py", line 232, in build_release_notes
    msgs = get_commit_msgs(org, repo, sha)
  File "/Users/Kyle/.cirrus/cirrus/src/cirrus/github_tools.py", line 147, in get_commit_msgs
    "committer" : commit['committer']['login'],
TypeError: 'NoneType' object is not subscriptable

This turned out to be because an employee had specified a different email address than normal (a short alias v. long full addy) and the commit ended up not being attached to the committer.

This looks like this in pdb:

> /Users/Kyle/.cirrus/cirrus/src/cirrus/github_tools.py(146)get_commit_msgs()
-> result.append({
(Pdb) pp commit
{u'author': None,
 u'comments_url': u'https://api.github.com/repos/cloudant/carburetor/commits/9ceed9da8f6de577c91a9399cfac245d1d98ef96/comments',
 u'commit': {u'author': {u'date': u'2014-10-21T20:10:09Z',
                         u'email': u'...',
                         u'name': u'...'},
             u'comment_count': 0,
             u'committer': {u'date': u'2014-10-21T20:10:09Z',
                            u'email': u'...',
                            u'name': u'...'},
             u'message': u"Secret FooBar.",
             u'tree': {u'sha': u'1f9d1e66dad927393410b88c6be6a8a353f549a4',
                       u'url': u'https://api.github.com/repos/cloudant/carburetor/git/trees/1f9d1e66dad927393410b88c6be6a8a353f549a4'},
             u'url': u'https://api.github.com/repos/cloudant/carburetor/git/commits/9ceed9da8f6de577c91a9399cfac245d1d98ef96'},
 u'committer': None,
 u'html_url': u'https://github.com/cloudant/carburetor/commit/9ceed9da8f6de577c91a9399cfac245d1d98ef96',
 u'parents': [{u'html_url': u'https://github.com/cloudant/carburetor/commit/983002253dc091a08eb29e07b712c41842e8ffda',
               u'sha': u'983002253dc091a08eb29e07b712c41842e8ffda',
               u'url': u'https://api.github.com/repos/cloudant/carburetor/commits/983002253dc091a08eb29e07b712c41842e8ffda'}],
 u'sha': u'9ceed9da8f6de577c91a9399cfac245d1d98ef96',
 u'url': u'https://api.github.com/repos/cloudant/carburetor/commits/9ceed9da8f6de577c91a9399cfac245d1d98ef96'}

The None values cause the raise.

support extras_require for environment markers

There are a few glitches when using environment markers in requirements files to select libs based on python version, which manifest when you build a package and then add it as a dependency. The workaround for this is to use environment markers in extras_require instead of requirements.txt, so this may be something where we could parse out requirements lines with these or support it in cirrus conf. Hopefully this gets fixed in the underlying pip/setuptools/wheel stuff, but opening this to keep track of it.

setup_args['extras_require']={
':python_version<"3.0"':['avro==1.8.1'],
':python_version>"3.0"':['avro-python3==1.8.1']
}

with conda, cirrus build -c fails after first time

Steps to repro:

% git init
% git cirrus package init --bootstrap -p testme -v 0.0.0 -s src -o imc -d "testme" --pypi-package-name=testme --python python3 --no-remote
% git cirrus build -c # succeeds
% git cirrus build -c
2017-07-17;INFO;Removing existing virtualenv: /Users/jsamuels/cirrus-stuff/venv
2017-07-17;INFO;local(/Users/jsamuels/.cirrus/venv/bin/conda remove --all -y /Users/jsamuels/cirrus-stuff/venv)

CondaEnvironmentError: cannot remove current environment. deactivate and run conda remove again

2017-07-17;ERROR;Error running command:
Encountered a bad command exit code!

Support test-requirements or other reqs files in git cirrus build

Separating test deps out of requirements.txt into test-requirements.txt should be supported by git cirrus build command to set up the venv.

Some options are

  • Add an --additional-requirements option to build command
  • Add config to [build] section including extra requirements files
    • enable/disable via CLI switch?

Support for installing cirrus in conda environments

Given a lot of people use conda, should look into supporting installing via conda.

Initial tests look promising:

Tests using container:

docker pull continuumio/anaconda
docker run -ti continuumio/anaconda:latest 

on the container:

conda create -n venv
source activate venv
pip install cirrus-cli
git config --global cirrus.github-username evansde77
git config --global alias.cirrus  "! /opt/conda/bin/cirrus"     

Unfortunately the git alias doesnt seem to work:

git cirrus hello
...
fatal: While expanding alias 'cirrus': ' /opt/conda/bin/cirrus': No such file or directory

So need to figure out whats going on there. Seems pretty close though.
Tried messing with the alias a bit to no avail, also verified executablity.

Support Python3

Because, you know, the future and stuff. Looks like biggest challenge will be dependency on fabric since thats still 2 only.

docker-image release command

Add a sub command to the docker-image command that does:

  1. creates a new release/* or image/* branch
  2. renders the dockerstache templates
  3. commits the outputs
  4. pushes the branch and allows automated dockerhub builds to pick up the rendered files and build the image

Multiline git alias prevents installation

I have a .gitconfig from a dotfiles repo, that appears to cause an issue when installing cirrus:
.gitconfig file: https://github.com/bewing/dotfiles/blob/master/.gitconfig

install.log:

$ cat ~/.cirrus/install.log
Installing cirrus to LOCATION=/home/bewing/.cirrus
Downloading/unpacking cirrus-cli
  Running setup.py egg_info for package cirrus-cli

Downloading/unpacking argparse==1.2.1 (from cirrus-cli)
  Running setup.py egg_info for package argparse

    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    warning: no previously-included files matching '*.pyo' found anywhere in distribution
    warning: no previously-included files matching '*.orig' found anywhere in distribution
    warning: no previously-included files matching '*.rej' found anywhere in distribution
    no previously-included directories found matching 'doc/_build'
    no previously-included directories found matching 'env24'
    no previously-included directories found matching 'env25'
    no previously-included directories found matching 'env26'
    no previously-included directories found matching 'env27'
Downloading/unpacking arrow==0.4.2 (from cirrus-cli)
  Downloading arrow-0.4.2.tar.gz
  Running setup.py egg_info for package arrow

Downloading/unpacking Fabric==1.11.1 (from cirrus-cli)
  Running setup.py egg_info for package Fabric

    warning: no previously-included files matching '*' found under directory 'sites/docs/_build'
    warning: no previously-included files matching '*' found under directory 'sites/www/_build'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
    warning: no previously-included files matching '*.pyo' found under directory 'tests'
Downloading/unpacking GitPython==0.3.5 (from cirrus-cli)
  Running setup.py egg_info for package GitPython
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'test_requirements'
      warnings.warn(msg)

    warning: no files found matching 'README'
Downloading/unpacking mock==1.0.1 (from cirrus-cli)
  Running setup.py egg_info for package mock

    warning: no files found matching '*.png' under directory 'docs'
    warning: no files found matching '*.css' under directory 'docs'
    warning: no files found matching '*.html' under directory 'docs'
    warning: no files found matching '*.js' under directory 'docs'
Downloading/unpacking nose==1.3.0 (from cirrus-cli)
  Running setup.py egg_info for package nose

    no previously-included directories found matching 'doc/.build'
Downloading/unpacking pep8==1.5.7 (from cirrus-cli)
  Running setup.py egg_info for package pep8

    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
    warning: no previously-included files matching '*.pyc' found under directory 'testsuite'
    warning: no previously-included files matching '*.pyo' found under directory 'testsuite'
    no previously-included directories found matching 'docs/_build'
Downloading/unpacking pylint==1.3.0 (from cirrus-cli)
  Running setup.py egg_info for package pylint

    warning: no files found matching '*.html' under directory 'doc'
Downloading/unpacking requests==2.3.0 (from cirrus-cli)
  Running setup.py egg_info for package requests

Downloading/unpacking PyChef==0.2.3 (from cirrus-cli)
  Downloading PyChef-0.2.3.tar.gz
  Running setup.py egg_info for package PyChef

Downloading/unpacking keyring==8.5.1 (from cirrus-cli)
  Downloading keyring-8.5.1.tar.gz
  Running setup.py egg_info for package keyring
    your setuptools is too old (<12)
    setuptools_scm functionality is degraded

Downloading/unpacking virtualenv (from cirrus-cli)
  Running setup.py egg_info for package virtualenv

    warning: no previously-included files matching '*' found under directory 'docs/_templates'
    warning: no previously-included files matching '*' found under directory 'docs/_build'
Downloading/unpacking pluggage (from cirrus-cli)
  Downloading pluggage-0.0.4.tar.gz
  Running setup.py egg_info for package pluggage

    warning: no previously-included files matching '*' found under directory 'tests'
Downloading/unpacking dockerstache>=0.0.9 (from cirrus-cli)
  Downloading dockerstache-0.0.9.tar.gz
  Running setup.py egg_info for package dockerstache

    warning: no previously-included files matching '*' found under directory 'test'
Downloading/unpacking requests-toolbelt==0.6.2 (from cirrus-cli)
  Running setup.py egg_info for package requests-toolbelt

    no previously-included directories found matching 'docs/_build'
    warning: no previously-included files matching '*.py[cdo]' found anywhere in distribution
    warning: no previously-included files matching '__pycache__' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
    warning: no previously-included files matching '*.pyd' found anywhere in distribution
Downloading/unpacking tox (from cirrus-cli)
  Running setup.py egg_info for package tox

Downloading/unpacking python-dateutil (from arrow==0.4.2->cirrus-cli)
  Running setup.py egg_info for package python-dateutil

    warning: no previously-included files matching '__pycache__' found anywhere in distribution
    warning: no previously-included files matching '*.py[co]' found anywhere in distribution
Downloading/unpacking paramiko>=1.10,<2.0 (from Fabric==1.11.1->cirrus-cli)
  Running setup.py egg_info for package paramiko

Downloading/unpacking gitdb>=0.6.4 (from GitPython==0.3.5->cirrus-cli)
  Running setup.py egg_info for package gitdb

Downloading/unpacking logilab-common>=0.53.0 (from pylint==1.3.0->cirrus-cli)
  Running setup.py egg_info for package logilab-common

    warning: no files found matching '*.py' under directory 'test/input'
    warning: no files found matching '*' under directory 'doc/html'
Downloading/unpacking astroid>=1.1 (from pylint==1.3.0->cirrus-cli)
  Running setup.py egg_info for package astroid

    warning: no files found matching 'README'
Downloading/unpacking pystache==0.5.4 (from dockerstache>=0.0.9->cirrus-cli)
  Running setup.py egg_info for package pystache
    pystache: using: version '0.9.8' of <module 'setuptools' from '/home/bewing/.cirrus/venv/lib/python2.7/site-packages/setuptools/__init__.pyc'>

Downloading/unpacking six==1.10.0 (from dockerstache>=0.0.9->cirrus-cli)
  Downloading six-1.10.0.tar.gz
  Running setup.py egg_info for package six

    no previously-included directories found matching 'documentation/_build'
Downloading/unpacking py>=1.4.17 (from tox->cirrus-cli)
  Running setup.py egg_info for package py

    warning: no previously-included files matching '*.pyc' found anywhere in distribution
Downloading/unpacking pluggy>=0.3.0,<1.0 (from tox->cirrus-cli)
  Downloading pluggy-0.4.0.zip
  Running setup.py egg_info for package pluggy

    warning: no previously-included files matching '*.pyc' found under directory '*'
    warning: no previously-included files matching '*.pyo' found under directory '*'
Downloading/unpacking pycrypto>=2.1,!=2.4,<3.0 (from paramiko>=1.10,<2.0->Fabric==1.11.1->cirrus-cli)
  Running setup.py egg_info for package pycrypto

Downloading/unpacking ecdsa>=0.11,<2.0 (from paramiko>=1.10,<2.0->Fabric==1.11.1->cirrus-cli)
  Running setup.py egg_info for package ecdsa

Downloading/unpacking smmap>=0.8.5 (from gitdb>=0.6.4->GitPython==0.3.5->cirrus-cli)
  Downloading smmap-0.9.0.tar.gz
  Running setup.py egg_info for package smmap

Requirement already satisfied (use --upgrade to upgrade): setuptools in ./venv/lib/python2.7/site-packages (from logilab-common>=0.53.0->pylint==1.3.0->cirrus-cli)
Downloading/unpacking lazy-object-proxy (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Could not fetch URL https://bitbucket.org/pypa/setuptools/downloads/ssl-1.16-py2.5-win32.egg#md5=85ad1cda806d639743121c0bbcb5f39b: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://bitbucket.org/pypa/setuptools/downloads/ssl-1.16-py2.5-win32.egg#md5=85ad1cda806d639743121c0bbcb5f39b when looking for download links for lazy-object-proxy (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Could not fetch URL https://bitbucket.org/pypa/setuptools/downloads/ssl-1.16-py2.4-win32.egg#md5=3cfa2c526dc66e318e8520b6f1aadce5: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://bitbucket.org/pypa/setuptools/downloads/ssl-1.16-py2.4-win32.egg#md5=3cfa2c526dc66e318e8520b6f1aadce5 when looking for download links for lazy-object-proxy (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Could not fetch URL https://bitbucket.org/pypa/setuptools/downloads/ctypes-1.0.2.win32-py2.4.exe#md5=9092a0ad5a3d79fa2d980f1ddc5e9dbc: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://bitbucket.org/pypa/setuptools/downloads/ctypes-1.0.2.win32-py2.4.exe#md5=9092a0ad5a3d79fa2d980f1ddc5e9dbc when looking for download links for lazy-object-proxy (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Downloading lazy-object-proxy-1.3.1.tar.gz
  Running setup.py egg_info for package lazy-object-proxy

    warning: no files found matching '.isort.cfg'
    warning: no previously-included files matching '*.py[cod]' found anywhere in distribution
    warning: no previously-included files matching '__pycache__' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
    warning: no previously-included files matching '*.dylib' found anywhere in distribution
Downloading/unpacking wrapt (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Could not fetch URL https://bitbucket.org/pypa/setuptools/downloads/ssl-1.16-py2.4-win32.egg#md5=3cfa2c526dc66e318e8520b6f1aadce5: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://bitbucket.org/pypa/setuptools/downloads/ssl-1.16-py2.4-win32.egg#md5=3cfa2c526dc66e318e8520b6f1aadce5 when looking for download links for wrapt (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Could not fetch URL https://bitbucket.org/pypa/setuptools/downloads/ctypes-1.0.2.win32-py2.4.exe#md5=9092a0ad5a3d79fa2d980f1ddc5e9dbc: There was a problem confirming the ssl certificate: <urlopen error [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed>
  Will skip URL https://bitbucket.org/pypa/setuptools/downloads/ctypes-1.0.2.win32-py2.4.exe#md5=9092a0ad5a3d79fa2d980f1ddc5e9dbc when looking for download links for wrapt (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Downloading wrapt-1.10.10.tar.gz
  Running setup.py egg_info for package wrapt

Downloading/unpacking enum34 (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Running setup.py egg_info for package enum34

Downloading/unpacking singledispatch (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Downloading singledispatch-3.4.0.3.tar.gz
  Running setup.py egg_info for package singledispatch

Downloading/unpacking backports.functools-lru-cache (from astroid>=1.1->pylint==1.3.0->cirrus-cli)
  Downloading backports.functools_lru_cache-1.4.tar.gz
  Running setup.py egg_info for package backports.functools-lru-cache
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
      warnings.warn(msg)
    your setuptools is too old (<12)
    setuptools_scm functionality is degraded

Installing collected packages: cirrus-cli, argparse, arrow, Fabric, GitPython, mock, nose, pep8, pylint, requests, PyChef, keyring, virtualenv, pluggage, dockerstache, requests-toolbelt, tox, python-dateutil, paramiko, gitdb, logilab-common, astroid, pystache, six, py, pluggy, pycrypto, ecdsa, smmap, lazy-object-proxy, wrapt, enum34, singledispatch, backports.functools-lru-cache
  Running setup.py install for cirrus-cli

    Installing package script to /home/bewing/.cirrus/venv/bin
    Installing docs script to /home/bewing/.cirrus/venv/bin
    Installing review script to /home/bewing/.cirrus/venv/bin
    Installing selfupdate script to /home/bewing/.cirrus/venv/bin
    Installing feature script to /home/bewing/.cirrus/venv/bin
    Installing release script to /home/bewing/.cirrus/venv/bin
    Installing qc script to /home/bewing/.cirrus/venv/bin
    Installing prestage script to /home/bewing/.cirrus/venv/bin
    Installing selfsetup script to /home/bewing/.cirrus/venv/bin
    Installing build script to /home/bewing/.cirrus/venv/bin
    Installing deploy script to /home/bewing/.cirrus/venv/bin
    Installing test script to /home/bewing/.cirrus/venv/bin
    Installing plusone script to /home/bewing/.cirrus/venv/bin
    Installing docker-image script to /home/bewing/.cirrus/venv/bin
    Installing hello script to /home/bewing/.cirrus/venv/bin
    Installing cirrus script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for argparse

    warning: no previously-included files matching '*.pyc' found anywhere in distribution
    warning: no previously-included files matching '*.pyo' found anywhere in distribution
    warning: no previously-included files matching '*.orig' found anywhere in distribution
    warning: no previously-included files matching '*.rej' found anywhere in distribution
    no previously-included directories found matching 'doc/_build'
    no previously-included directories found matching 'env24'
    no previously-included directories found matching 'env25'
    no previously-included directories found matching 'env26'
    no previously-included directories found matching 'env27'
  Running setup.py install for arrow

  Running setup.py install for Fabric

    warning: no previously-included files matching '*' found under directory 'sites/docs/_build'
    warning: no previously-included files matching '*' found under directory 'sites/www/_build'
    warning: no previously-included files matching '*.pyc' found under directory 'tests'
    warning: no previously-included files matching '*.pyo' found under directory 'tests'
    Installing fab script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for GitPython
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'test_requirements'
      warnings.warn(msg)

    warning: no files found matching 'README'
  Running setup.py install for mock

    warning: no files found matching '*.png' under directory 'docs'
    warning: no files found matching '*.css' under directory 'docs'
    warning: no files found matching '*.html' under directory 'docs'
    warning: no files found matching '*.js' under directory 'docs'
  Running setup.py install for nose

    no previously-included directories found matching 'doc/.build'
    Installing nosetests script to /home/bewing/.cirrus/venv/bin
    Installing nosetests-2.7 script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for pep8

    warning: no previously-included files matching '*.pyc' found under directory 'docs'
    warning: no previously-included files matching '*.pyo' found under directory 'docs'
    warning: no previously-included files matching '*.pyc' found under directory 'testsuite'
    warning: no previously-included files matching '*.pyo' found under directory 'testsuite'
    no previously-included directories found matching 'docs/_build'
    Installing pep8 script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for pylint
    changing mode of build/scripts-2.7/pylint from 664 to 775
    changing mode of build/scripts-2.7/pylint-gui from 664 to 775
    changing mode of build/scripts-2.7/symilar from 664 to 775
    changing mode of build/scripts-2.7/epylint from 664 to 775
    changing mode of build/scripts-2.7/pyreverse from 664 to 775

    warning: no files found matching '*.html' under directory 'doc'
    changing mode of /home/bewing/.cirrus/venv/bin/pylint to 775
    changing mode of /home/bewing/.cirrus/venv/bin/pylint-gui to 775
    changing mode of /home/bewing/.cirrus/venv/bin/symilar to 775
    changing mode of /home/bewing/.cirrus/venv/bin/pyreverse to 775
    changing mode of /home/bewing/.cirrus/venv/bin/epylint to 775
    Installing pylint script to /home/bewing/.cirrus/venv/bin
    Installing epylint script to /home/bewing/.cirrus/venv/bin
    Installing pyreverse script to /home/bewing/.cirrus/venv/bin
    Installing pylint-gui script to /home/bewing/.cirrus/venv/bin
    Installing symilar script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for requests

  Running setup.py install for PyChef

  Running setup.py install for keyring
    your setuptools is too old (<12)
    setuptools_scm functionality is degraded

    Installing keyring script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for virtualenv

    warning: no previously-included files matching '*' found under directory 'docs/_templates'
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    Installing virtualenv script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for pluggage

    warning: no previously-included files matching '*' found under directory 'tests'
  Running setup.py install for dockerstache

    warning: no previously-included files matching '*' found under directory 'test'
    Installing dockerstache script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for requests-toolbelt

    no previously-included directories found matching 'docs/_build'
    warning: no previously-included files matching '*.py[cdo]' found anywhere in distribution
    warning: no previously-included files matching '__pycache__' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
    warning: no previously-included files matching '*.pyd' found anywhere in distribution
  Running setup.py install for tox

    Installing tox script to /home/bewing/.cirrus/venv/bin
    Installing tox-quickstart script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for python-dateutil

    warning: no previously-included files matching '__pycache__' found anywhere in distribution
    warning: no previously-included files matching '*.py[co]' found anywhere in distribution
  Running setup.py install for paramiko

  Running setup.py install for gitdb
    building 'gitdb._perf' extension
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Igitdb -I/usr/include/python2.7 -c gitdb/_fun.c -o build/temp.linux-x86_64-2.7/gitdb/_fun.o
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Igitdb -I/usr/include/python2.7 -c gitdb/_delta_apply.c -o build/temp.linux-x86_64-2.7/gitdb/_delta_apply.o
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/gitdb/_fun.o build/temp.linux-x86_64-2.7/gitdb/_delta_apply.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/gitdb/_perf.so

  Running setup.py install for logilab-common
    changing mode of build/scripts-2.7/logilab-pytest from 664 to 775
    Skipping installation of /home/bewing/.cirrus/venv/lib/python2.7/site-packages/logilab/__init__.py (namespace package)

    warning: no files found matching '*.py' under directory 'test/input'
    warning: no files found matching '*' under directory 'doc/html'
    Installing /home/bewing/.cirrus/venv/lib/python2.7/site-packages/logilab_common-1.4.0-py2.7-nspkg.pth
    changing mode of /home/bewing/.cirrus/venv/bin/logilab-pytest to 775
  Running setup.py install for astroid

    warning: no files found matching 'README'
  Running setup.py install for pystache
    pystache: using: version '0.9.8' of <module 'setuptools' from '/home/bewing/.cirrus/venv/lib/python2.7/site-packages/setuptools/__init__.pyc'>

    Installing pystache script to /home/bewing/.cirrus/venv/bin
    Installing pystache-test script to /home/bewing/.cirrus/venv/bin
  Running setup.py install for six

    no previously-included directories found matching 'documentation/_build'
  Running setup.py install for py

    warning: no previously-included files matching '*.pyc' found anywhere in distribution
  Running setup.py install for pluggy

    warning: no previously-included files matching '*.pyc' found under directory '*'
    warning: no previously-included files matching '*.pyo' found under directory '*'
  Running setup.py install for pycrypto
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking for __gmpz_init in -lgmp... no
    checking for __gmpz_init in -lmpir... no
    checking whether mpz_powm is declared... no
    checking whether mpz_powm_sec is declared... no
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for inttypes.h... (cached) yes
    checking limits.h usability... yes
    checking limits.h presence... yes
    checking for limits.h... yes
    checking stddef.h usability... yes
    checking stddef.h presence... yes
    checking for stddef.h... yes
    checking for stdint.h... (cached) yes
    checking for stdlib.h... (cached) yes
    checking for string.h... (cached) yes
    checking wchar.h usability... yes
    checking wchar.h presence... yes
    checking for wchar.h... yes
    checking for inline... inline
    checking for int16_t... yes
    checking for int32_t... yes
    checking for int64_t... yes
    checking for int8_t... yes
    checking for size_t... yes
    checking for uint16_t... yes
    checking for uint32_t... yes
    checking for uint64_t... yes
    checking for uint8_t... yes
    checking for stdlib.h... (cached) yes
    checking for GNU libc compatible malloc... yes
    checking for memmove... yes
    checking for memset... yes
    configure: creating ./config.status
    config.status: creating src/config.h
    warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
    building 'Crypto.Hash._MD2' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/MD2.c -o build/temp.linux-x86_64-2.7/src/MD2.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/MD2.c:31:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/string.h:25:0,
                     from src/MD2.c:30:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/MD2.c:31:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/string.h:25:0,
                     from src/MD2.c:30:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/MD2.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Hash/_MD2.so
    building 'Crypto.Hash._MD4' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/MD4.c -o build/temp.linux-x86_64-2.7/src/MD4.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/MD4.c:31:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/string.h:25:0,
                     from src/MD4.c:30:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/MD4.c:31:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/string.h:25:0,
                     from src/MD4.c:30:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/MD4.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Hash/_MD4.so
    building 'Crypto.Hash._SHA256' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/SHA256.c -o build/temp.linux-x86_64-2.7/src/SHA256.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/hash_SHA2_template.c:33,
                     from src/SHA256.c:72:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/hash_SHA2.h:72,
                     from src/SHA256.c:35:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/hash_SHA2_template.c:33,
                     from src/SHA256.c:72:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/hash_SHA2.h:72,
                     from src/SHA256.c:35:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/SHA256.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Hash/_SHA256.so
    building 'Crypto.Hash._SHA224' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/SHA224.c -o build/temp.linux-x86_64-2.7/src/SHA224.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/hash_SHA2_template.c:33,
                     from src/SHA224.c:73:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/hash_SHA2.h:72,
                     from src/SHA224.c:36:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/hash_SHA2_template.c:33,
                     from src/SHA224.c:73:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/hash_SHA2.h:72,
                     from src/SHA224.c:36:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/SHA224.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Hash/_SHA224.so
    building 'Crypto.Hash._SHA384' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/SHA384.c -o build/temp.linux-x86_64-2.7/src/SHA384.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/hash_SHA2_template.c:33,
                     from src/SHA384.c:80:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/hash_SHA2.h:72,
                     from src/SHA384.c:36:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/hash_SHA2_template.c:33,
                     from src/SHA384.c:80:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/hash_SHA2.h:72,
                     from src/SHA384.c:36:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/SHA384.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Hash/_SHA384.so
    building 'Crypto.Hash._SHA512' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/SHA512.c -o build/temp.linux-x86_64-2.7/src/SHA512.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/hash_SHA2_template.c:33,
                     from src/SHA512.c:80:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/hash_SHA2.h:72,
                     from src/SHA512.c:36:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/hash_SHA2_template.c:33,
                     from src/SHA512.c:80:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/hash_SHA2.h:72,
                     from src/SHA512.c:36:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/SHA512.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Hash/_SHA512.so
    building 'Crypto.Hash._RIPEMD160' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -DPCT_LITTLE_ENDIAN=1 -Isrc/ -I/usr/include/python2.7 -c src/RIPEMD160.c -o build/temp.linux-x86_64-2.7/src/RIPEMD160.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/RIPEMD160.c:57:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/RIPEMD160.c:48:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/RIPEMD160.c:57:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/RIPEMD160.c:48:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/RIPEMD160.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Hash/_RIPEMD160.so
    building 'Crypto.Cipher._AES' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/AES.c -o build/temp.linux-x86_64-2.7/src/AES.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/AES.c:29:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/assert.h:35:0,
                     from src/AES.c:27:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/AES.c:29:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/assert.h:35:0,
                     from src/AES.c:27:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/AES.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Cipher/_AES.so
    building 'Crypto.Cipher._ARC2' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/ARC2.c -o build/temp.linux-x86_64-2.7/src/ARC2.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/ARC2.c:45:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/string.h:25:0,
                     from src/ARC2.c:44:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/ARC2.c:45:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/string.h:25:0,
                     from src/ARC2.c:44:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/ARC2.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Cipher/_ARC2.so
    building 'Crypto.Cipher._Blowfish' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/Blowfish.c -o build/temp.linux-x86_64-2.7/src/Blowfish.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/Blowfish.c:39:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/Blowfish.c:31:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/Blowfish.c:39:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/stdint.h:25:0,
                     from /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/stdint.h:9,
                     from src/Blowfish.c:31:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/Blowfish.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Cipher/_Blowfish.so
    building 'Crypto.Cipher._CAST' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/CAST.c -o build/temp.linux-x86_64-2.7/src/CAST.o
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/CAST.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Cipher/_CAST.so
    building 'Crypto.Cipher._DES' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -Isrc/libtom/ -I/usr/include/python2.7 -c src/DES.c -o build/temp.linux-x86_64-2.7/src/DES.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/DES.c:37:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/assert.h:35:0,
                     from src/libtom/tomcrypt.h:3,
                     from src/libtom/tomcrypt_des.c:11,
                     from src/DES.c:32:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/DES.c:37:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/assert.h:35:0,
                     from src/libtom/tomcrypt.h:3,
                     from src/libtom/tomcrypt_des.c:11,
                     from src/DES.c:32:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/DES.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Cipher/_DES.so
    building 'Crypto.Cipher._DES3' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -Isrc/libtom/ -I/usr/include/python2.7 -c src/DES3.c -o build/temp.linux-x86_64-2.7/src/DES3.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/DES.c:37,
                     from src/DES3.c:26:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/assert.h:35:0,
                     from src/libtom/tomcrypt.h:3,
                     from src/libtom/tomcrypt_des.c:11,
                     from src/DES.c:32,
                     from src/DES3.c:26:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/DES.c:37,
                     from src/DES3.c:26:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/assert.h:35:0,
                     from src/libtom/tomcrypt.h:3,
                     from src/libtom/tomcrypt_des.c:11,
                     from src/DES.c:32,
                     from src/DES3.c:26:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/DES3.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Cipher/_DES3.so
    building 'Crypto.Cipher._ARC4' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/ARC4.c -o build/temp.linux-x86_64-2.7/src/ARC4.o
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/ARC4.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Cipher/_ARC4.so
    building 'Crypto.Cipher._XOR' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/XOR.c -o build/temp.linux-x86_64-2.7/src/XOR.o
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/XOR.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Cipher/_XOR.so
    building 'Crypto.Util.strxor' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/strxor.c -o build/temp.linux-x86_64-2.7/src/strxor.o
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/strxor.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Util/strxor.so
    building 'Crypto.Util._counter' extension
    gcc -pthread -fno-strict-aliasing -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/_counter.c -o build/temp.linux-x86_64-2.7/src/_counter.o
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/_counter.c:28:
    /usr/include/python2.7/pyconfig-64.h:1182:0: warning: "_POSIX_C_SOURCE" redefined [enabled by default]
     #define _POSIX_C_SOURCE 200112L
     ^
    In file included from /usr/include/assert.h:35:0,
                     from src/_counter.c:25:
    /usr/include/features.h:165:0: note: this is the location of the previous definition
     # define _POSIX_C_SOURCE 200809L
     ^
    In file included from /usr/include/python2.7/pyconfig.h:6:0,
                     from /usr/include/python2.7/Python.h:8,
                     from src/_counter.c:28:
    /usr/include/python2.7/pyconfig-64.h:1204:0: warning: "_XOPEN_SOURCE" redefined [enabled by default]
     #define _XOPEN_SOURCE 600
     ^
    In file included from /usr/include/assert.h:35:0,
                     from src/_counter.c:25:
    /usr/include/features.h:167:0: note: this is the location of the previous definition
     # define _XOPEN_SOURCE 700
     ^
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/_counter.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/Crypto/Util/_counter.so

  Running setup.py install for ecdsa
    got version from file /home/bewing/.cirrus/venv/build/ecdsa/ecdsa/_version.py {'version': '0.13', 'full': '5a6fc047222cf21ad89f6cbf8782d0f1e3ddacda'}
    UPDATING build/lib/ecdsa/_version.py

  Running setup.py install for smmap

  Running setup.py install for lazy-object-proxy

    warning: no files found matching '.isort.cfg'
    warning: no previously-included files matching '*.py[cod]' found anywhere in distribution
    warning: no previously-included files matching '__pycache__' found anywhere in distribution
    warning: no previously-included files matching '*.so' found anywhere in distribution
    warning: no previously-included files matching '*.dylib' found anywhere in distribution
    building 'lazy_object_proxy.cext' extension
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -Isrc/lazy_object_proxy -I/usr/include/python2.7 -c src/lazy_object_proxy/cext.c -o build/temp.linux-x86_64-2.7/src/lazy_object_proxy/cext.o
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/lazy_object_proxy/cext.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/lazy_object_proxy/cext.so
  Running setup.py install for wrapt
    building 'wrapt._wrappers' extension
    gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.7 -c src/wrapt/_wrappers.c -o build/temp.linux-x86_64-2.7/src/wrapt/_wrappers.o
    gcc -pthread -shared -Wl,-z,relro build/temp.linux-x86_64-2.7/src/wrapt/_wrappers.o -L/usr/lib64 -lpython2.7 -o build/lib.linux-x86_64-2.7/wrapt/_wrappers.so

  Running setup.py install for enum34

  Running setup.py install for singledispatch

  Running setup.py install for backports.functools-lru-cache
    /usr/lib64/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'python_requires'
      warnings.warn(msg)
    your setuptools is too old (<12)
    setuptools_scm functionality is degraded

Successfully installed cirrus-cli argparse arrow Fabric GitPython mock nose pep8 pylint requests PyChef keyring virtualenv pluggage dockerstache requests-toolbelt tox python-dateutil paramiko gitdb logilab-common astroid pystache six py pluggy pycrypto ecdsa smmap lazy-object-proxy wrapt enum34 singledispatch backports.functools-lru-cache
Cleaning up...

Traceback:

Traceback (most recent call last):
  File "/home/bewing/.cirrus/venv/bin/selfsetup", line 9, in <module>
    load_entry_point('cirrus-cli==0.1.18', 'console_scripts', 'selfsetup')()
  File "/home/bewing/.cirrus/venv/lib/python2.7/site-packages/cirrus/cirrus_setup.py", line 370, in main
    config = load_setup_configuration()
  File "/home/bewing/.cirrus/venv/lib/python2.7/site-packages/cirrus/configuration.py", line 283, in load_setup_configuration
    config_instance.setup_load()
  File "/home/bewing/.cirrus/venv/lib/python2.7/site-packages/cirrus/configuration.py", line 72, in setup_load
    self.gitconfig = load_gitconfig(self.gitconfig_file)
  File "/home/bewing/.cirrus/venv/lib/python2.7/site-packages/cirrus/gitconfig.py", line 23, in load_gitconfig
    c.parse()
  File "/home/bewing/.cirrus/venv/lib/python2.7/site-packages/cirrus/gitconfig.py", line 103, in parse
    section, param_val = line.split('.', 1)
ValueError: need more than 1 value to unpack

docker-image command support repos and setup commands

Add support for specifying a registry in the config and use this as part of the tag to make uploading to private repos easier.

eg:
docker tag e5471bd2ec7f docker-registry:8080/ORG/PACKAGE0.0.7
docker push docker-registry:8080/ORG/PACKAGE:0.0.7

Also add support for running commands pre build or pre upload

Support pypirc config access/lookup in build

Load ~/.pypirc and use it to select creds if the custom pypi server is configured for use in build rather than the global option.

Would also be nice if --extra-index was supported in build

Interesting issue when creating feature branch

09:23:02 cirrus git cirrus feature new pull-request-warning
Traceback (most recent call last):
File "/Users/jordancounts/.cirrus/cirrus/venv/bin/feature", line 9, in
load_entry_point('cirrus==0.0.7', 'console_scripts', 'feature')()
File "/Users/jordancounts/.cirrus/cirrus/src/cirrus/feature.py", line 107, in main
new_feature_branch(opts)
File "/Users/jordancounts/.cirrus/cirrus/src/cirrus/feature.py", line 62, in new_feature_branch
config.gitflow_branch_name())
File "/Users/jordancounts/.cirrus/cirrus/src/cirrus/git_tools.py", line 34, in checkout_and_pull
return repo.remotes.origin.pull(ref)
File "/Users/jordancounts/.cirrus/cirrus/venv/lib/python2.7/site-packages/git/remote.py", line 605, in pull
return self._get_fetch_info_from_stderr(proc, progress or RemoteProgress())
File "/Users/jordancounts/.cirrus/cirrus/venv/lib/python2.7/site-packages/git/remote.py", line 539, in _get_fetch_info_from_stderr
assert len(fetch_info_lines) == len(fetch_head_info), "len(%s) != len(%s)" % (fetch_head_info, fetch_info_lines)
AssertionError: len(["f810acc83daea86f9410a8b9f8a4762cd10654ba\t\tbranch 'develop' of https://github.com/evansde77/cirrus\n"]) != len(['POST git-upload-pack (976 bytes)', 'POST git-upload-pack (gzip 1426 to 791 bytes)', ' 8582a75..f810acc develop -> origin/develop'])

Ran the same line again and it worked however.

Fail if specifying non-existing test-suite

If the user does something like git cirrus test --suite=non_existent then we can get errors that look like:

Fatal error: local() encountered an error (return code 1) while executing '. ./venv/bin/activate && nosetests -w None '

A more user-friendly error-message like non-existent test suite: non_existent would help.

remove fabric dependency

Looks like fabric isnt python3 compatible, and its dependencies cause repeated problems.
For the fairly simple operations we use it for in cirrus, we should be able to replace it:

  • Several uses of local() to execute shell commands - replace these with subprocess calls
  • Remote file copies in plugins
    • Option1: dynamic import of fabric in the plugin - ugh
    • Option2: refactor to run an scp command via subprocess
    • Option3: refactor to use paramiko
  • deploy command
    • Dont think anyone is using this, but it can be easily dropped to a dynamic import in a first pass

@appeltel @shudgston any potential issues with this?

Installer script failing

The installer script is currently failing with the following traceback:

Traceback (most recent call last):
  File "/Users/jordancounts/.cirrus/venv/bin/selfsetup", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/Users/jordancounts/.cirrus/venv/lib/python2.7/site-packages/pkg_resources.py", line 2749, in <module>
    working_set = WorkingSet._build_master()
  File "/Users/jordancounts/.cirrus/venv/lib/python2.7/site-packages/pkg_resources.py", line 444, in _build_master
    ws.require(__requires__)
  File "/Users/jordancounts/.cirrus/venv/lib/python2.7/site-packages/pkg_resources.py", line 725, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/Users/jordancounts/.cirrus/venv/lib/python2.7/site-packages/pkg_resources.py", line 628, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: lazy-object-proxy

I've tried upgrading pip and installing lazy-object-proxy but still receive the same error. I had cirrus installed before but had removed it because selfupdate was not upgrading to latest release. I'm running OS X 10.11.5.

cirrus deploy command

Add dep on PyChef

Needs to take a chef role/environment on command line.
Needs to take list of nodes on command line.

override_attrs from config
certs from config for chef

  • Take the current version, set the attr for it in the role/env via PyChef
  • Use fabric to run chef-client on the node list.

Missing `import os` in plugins/publishers/jenkins.py

Error when trying to run git cirrus docs publish

$ git cirrus docs publish
2016-07-21;INFO;Preparing to upload documentation...
Traceback (most recent call last):
  File "/Users/samscharr/.cirrus/venv/bin/docs", line 11, in <module>
    sys.exit(main())
  File "/Users/samscharr/.cirrus/venv/lib/python2.7/site-packages/cirrus/docs.py", line 58, in main
    publish_documentation(opts)
  File "/Users/samscharr/.cirrus/venv/lib/python2.7/site-packages/cirrus/documentation_utils.py", line 161, in publish_documentation
    plugin.publish(opts, doc_artifact)
  File "/Users/samscharr/.cirrus/venv/lib/python2.7/site-packages/cirrus/plugins/publishers/jenkins.py", line 73, in publish
    filename = os.path.basename(doc_artifact)
NameError: global name 'os' is not defined

https://github.com/evansde77/cirrus/blob/develop/src/cirrus/plugins/publishers/jenkins.py

Switch robot-installer.sh to use pypi

@ksnavely @petevg

The installer script (installer2.sh) now installs cirrus from pip and sets everything up using the selfsetup command which is pretty interactive. Need to do some refactoring of the robot installer script to do something similar, but need to make sure this doesnt explode what you guys are doing in jenkins etc.
Will add a robot-installer2.sh script when I get a chance but will probably need you guys to verify it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.