Some changes to be more idiomatic and use stdenv building blocks more. I also added a `buildbot.withPlugins` instead of the current plugins mechanism, which forces an unnecessary rebuild of the package and reruns all the tests. This should be equivalent and more pleasant to use in practice.wip/yesman
parent
ebeb722e14
commit
49b20e5569
@ -1,76 +1,83 @@ |
||||
{ stdenv, lib, fetchurl, coreutils, openssh, buildbot-worker, makeWrapper, |
||||
pythonPackages, gnused, plugins ? [] }: |
||||
{ stdenv, lib, openssh, buildbot-worker, pythonPackages, runCommand, makeWrapper }: |
||||
|
||||
pythonPackages.buildPythonApplication (rec { |
||||
name = "${pname}-${version}"; |
||||
pname = "buildbot"; |
||||
version = "0.9.4"; |
||||
src = fetchurl { |
||||
url = "mirror://pypi/b/${pname}/${name}.tar.gz"; |
||||
sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086"; |
||||
}; |
||||
let |
||||
withPlugins = plugins: runCommand "wrapped-${package.name}" { |
||||
buildInputs = [ makeWrapper ]; |
||||
passthru.withPlugins = moarPlugins: withPlugins (moarPlugins ++ plugins); |
||||
} '' |
||||
makeWrapper ${package}/bin/buildbot $out/bin/buildbot \ |
||||
--prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" pythonPackages.python.sitePackages plugins} |
||||
''; |
||||
|
||||
buildInputs = with pythonPackages; [ |
||||
lz4 |
||||
txrequests |
||||
pyjade |
||||
boto3 |
||||
moto |
||||
txgithub |
||||
mock |
||||
setuptoolsTrial |
||||
isort |
||||
pylint |
||||
astroid |
||||
pyflakes |
||||
openssh |
||||
buildbot-worker |
||||
makeWrapper |
||||
treq |
||||
]; |
||||
package = pythonPackages.buildPythonApplication (rec { |
||||
name = "${pname}-${version}"; |
||||
pname = "buildbot"; |
||||
version = "0.9.4"; |
||||
|
||||
propagatedBuildInputs = with pythonPackages; [ |
||||
src = pythonPackages.fetchPypi { |
||||
inherit pname version; |
||||
sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086"; |
||||
}; |
||||
|
||||
# core |
||||
twisted |
||||
jinja2 |
||||
zope_interface |
||||
sqlalchemy |
||||
sqlalchemy_migrate |
||||
future |
||||
dateutil |
||||
txaio |
||||
autobahn |
||||
pyjwt |
||||
buildInputs = with pythonPackages; [ |
||||
lz4 |
||||
txrequests |
||||
pyjade |
||||
boto3 |
||||
moto |
||||
txgithub |
||||
mock |
||||
setuptoolsTrial |
||||
isort |
||||
pylint |
||||
astroid |
||||
pyflakes |
||||
openssh |
||||
buildbot-worker |
||||
treq |
||||
]; |
||||
|
||||
# tls |
||||
pyopenssl |
||||
service-identity |
||||
idna |
||||
propagatedBuildInputs = with pythonPackages; [ |
||||
|
||||
# docs |
||||
sphinx |
||||
sphinxcontrib-blockdiag |
||||
sphinxcontrib-spelling |
||||
pyenchant |
||||
docutils |
||||
ramlfications |
||||
sphinx-jinja |
||||
# core |
||||
twisted |
||||
jinja2 |
||||
zope_interface |
||||
sqlalchemy |
||||
sqlalchemy_migrate |
||||
future |
||||
dateutil |
||||
txaio |
||||
autobahn |
||||
pyjwt |
||||
|
||||
] ++ plugins; |
||||
# tls |
||||
pyopenssl |
||||
service-identity |
||||
idna |
||||
|
||||
postPatch = '' |
||||
${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot/scripts/logwatcher.py |
||||
''; |
||||
# docs |
||||
sphinx |
||||
sphinxcontrib-blockdiag |
||||
sphinxcontrib-spelling |
||||
pyenchant |
||||
docutils |
||||
ramlfications |
||||
sphinx-jinja |
||||
|
||||
postFixup = '' |
||||
makeWrapper $out/bin/.buildbot-wrapped $out/bin/buildbot --set PYTHONPATH "$PYTHONPATH" |
||||
''; |
||||
]; |
||||
|
||||
postPatch = '' |
||||
substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)" |
||||
''; |
||||
|
||||
passthru = { inherit withPlugins; }; |
||||
|
||||
meta = with stdenv.lib; { |
||||
homepage = http://buildbot.net/; |
||||
description = "Continuous integration system that automates the build/test cycle"; |
||||
maintainers = with maintainers; [ nand0p ryansydnor ]; |
||||
license = licenses.gpl2; |
||||
}; |
||||
}) |
||||
meta = with stdenv.lib; { |
||||
homepage = http://buildbot.net/; |
||||
description = "Continuous integration system that automates the build/test cycle"; |
||||
maintainers = with maintainers; [ nand0p ryansydnor ]; |
||||
license = licenses.gpl2; |
||||
}; |
||||
}); |
||||
in package |
||||
|
Loading…
Reference in new issue