Fix pyScss incompatibility w/ latest setuptools

pyScss, which is a build dependency for horizon, currently relies on
the depcrecated Feature class of setuptools. The latest update to
setuptools removed the class entirely, breaking pyScss.

For now, we point to a fork of pyScss 1.3.4, which removes the
reference to the Feature class. In the near future, the upstream
OpenStack project will probably release a better fix; this gets us
unblocked for now.

We point to our custom pyScss by downloading and patching the stein
upper-constraints in our patch app. This is nicer than keeping a local
version of the file in our repo, as we'll automatically get updates,
and our patch will become a no-op when it is no longer needed.

Change-Id: I664ce6402f69d24fa9730c99315cbf65859b0aa3
Closes-bug: 1867360
This commit is contained in:
Pete Vander Giessen 2020-03-18 11:37:06 +00:00
parent 7ab27c6d09
commit 2a0f9c609a
2 changed files with 12 additions and 575 deletions

View File

@ -1,573 +0,0 @@
ntlm-auth===1.2.0
voluptuous===0.11.5
chardet===3.0.4
rsa===4.0
restructuredtext-lint===1.2.2
netmiko===2.3.0
instack-undercloud===9.4.0
PasteDeploy===2.0.1
typing===3.6.6
python-saharaclient===2.2.1
python-hnvclient===0.1.0
Routes===2.4.1
rtslib-fb===2.1.66
XStatic-Angular-Bootstrap===2.2.0.0
paunch===4.5.2
WebOb===1.8.5
sphinxcontrib-actdiag===0.8.5
docopt===0.6.2
pecan===1.3.2
ryu===4.30
os-api-ref===1.6.0
python-ldap===3.1.0
oslo.concurrency===3.29.1
websocket-client===0.55.0
osprofiler===2.6.1
os-resource-classes===0.3.0
python-ironic-inspector-client===3.5.0
lxml===4.3.2
python-kingbirdclient===0.2.1
setproctitle===1.1.10
pytest===4.3.0
python-etcd===0.4.5
raven===6.10.0
cursive===0.2.2
oslo.service===1.38.1
django-appconf===1.0.3
pykerberos===1.2.1
certifi===2018.11.29
sphinxcontrib-nwdiag===0.9.5
requests-aws===0.1.8
alabaster===0.7.12
pbr===5.1.3
munch===2.3.2
attrs===19.1.0
microversion-parse===0.2.1
Pint===0.9
oslo.i18n===3.23.1
jsonpath-rw-ext===1.2.0
python-mistralclient===3.8.1
oslo.context===2.22.1
python-senlinclient===1.10.1
rcssmin===1.0.6
pycadf===2.9.0
grpcio===1.15.0
skydive-client===0.5.0
pysendfile===2.0.1
fixtures===3.0.0
neutron-lib===1.25.1
XStatic-FileSaver===1.3.2.0
pystache===0.5.4
XStatic-Font-Awesome===4.7.0.0
nose===1.3.7
nosehtmloutput===0.0.5
waitress===1.2.1
os-refresh-config===10.2.2
pysnmp===4.4.9
sphinxcontrib-websupport===1.1.0
Mako===1.0.7
XStatic-angular-ui-router===0.3.1.2
pyScss===1.3.4
XStatic-jQuery===1.12.4.1
jsonmodels===2.4
ddt===1.2.1
pyserial===3.4
ipaddress===1.0.22;python_version=='2.7'
python-freezerclient===2.1.0
os-xenapi===0.3.4
python-vitrageclient===2.7.0
nosexcover===1.0.11
krest===1.3.1
psycopg2===2.7.7
networkx===2.2
bashate===0.6.0
XStatic-Angular===1.5.8.0
pyngus===2.3.0
Pillow===5.4.1
zuul-sphinx===0.3.0
python-mimeparse===1.6.0
tripleo-common===10.8.2
Tempita===0.5.2
ply===3.11
requests-toolbelt===0.9.1
simplejson===3.16.0
suds-jurko===0.6
python-swiftclient===3.7.1
pyOpenSSL===19.0.0
monasca-common===2.13.0
scipy===1.2.1
mypy-extensions===0.4.1;python_version=='3.4'
mypy-extensions===0.4.1;python_version=='3.5'
mypy-extensions===0.4.1;python_version=='3.6'
rsd-lib===0.4.0
XStatic-Jasmine===2.4.1.2
python-glanceclient===2.16.0
pyinotify===0.9.6
debtcollector===1.21.0
requests-unixsocket===0.1.5
asn1crypto===0.24.0
croniter===0.3.29
octavia-lib===1.1.1
python-watcherclient===2.2.0
MarkupSafe===1.1.1
pypowervm===1.1.20
doc8===0.8.0
pymongo===3.7.2
soupsieve===1.8
sqlparse===0.2.4
oslotest===3.7.1
jsonpointer===2.0
defusedxml===0.5.0
relativetimebuilder===0.2.0
netaddr===0.7.19
pyghmi===1.2.16
sphinxcontrib-blockdiag===1.5.5
thrift===0.11.0
gnocchiclient===7.0.5
wcwidth===0.1.7
sphinxcontrib.datatemplates===0.1.0
jsonpath-rw===1.4.0
prettytable===0.7.2
vine===1.2.0
taskflow===3.5.0
traceback2===1.4.0
semantic-version===2.6.0
virtualbmc===1.4.0
deprecation===2.0.6
SQLAlchemy===1.2.18
pyroute2===0.5.4
google-auth===1.6.3
kazoo===2.6.1
XStatic-roboto-fontface===0.5.0.0
pyudev===0.21.0
eventlet===0.24.1
openstack-doc-tools===1.8.0
frozendict===1.2
oslo.messaging===9.5.1
jira===2.0.0
extras===1.0.0
PyJWT===1.7.1
zVMCloudConnector===1.4.0
paramiko===2.4.2
reno===2.11.2
unicodecsv===0.14.1;python_version=='2.7'
imagesize===1.1.0
pydot===1.4.1
pathlib===1.0.1;python_version=='2.7'
urllib3===1.24.1
graphviz===0.10.1
PyKMIP===0.8.0
whereto===0.4.0
python-subunit===1.3.0
tornado===4.5.3;python_version=='3.4'
tornado===4.5.3;python_version=='3.5'
tornado===4.5.3;python_version=='3.6'
tornado===4.5.3;python_version=='2.7'
pycparser===2.19
mock===2.0.0
PyYAML===3.13
beautifulsoup4===4.7.1
os-net-config===10.4.2
ovs===2.10.0
cryptography===2.6.1
adal===1.2.1
backports.ssl-match-hostname===3.7.0.1;python_version=='2.7'
openstack-release-test===1.4.2
pylxd===2.2.9
ruamel.ordereddict===0.4.13;python_version=='2.7'
pycryptodomex===3.7.3
anyjson===0.3.3
requests-mock===1.5.2
os-apply-config===10.3.0
prometheus-client===0.6.0
oslosphinx===4.18.0
mox3===0.27.0
gunicorn===19.9.0
textfsm===0.4.1
unittest2===1.1.0
django-compressor===2.2
libvirt-python===5.1.0
python-zunclient===3.3.0
asyncio===3.4.3;python_version=='3.4'
asyncio===3.4.3;python_version=='3.5'
asyncio===3.4.3;python_version=='3.6'
tzlocal===1.5.1
python-novaclient===13.0.2
bcrypt===3.1.6
fixtures-git===0.1.0
os-client-config===1.32.0
XStatic-Angular-Gettext===2.3.8.0
XStatic-Hogan===2.0.0.2
XStatic-objectpath===1.2.1.0
python-manilaclient===1.27.0
requests===2.21.0
snowballstemmer===1.2.1
Jinja2===2.10
XStatic-Bootstrap-SCSS===3.3.7.1
pyzabbix===0.7.5
ptyprocess===0.6.0
threadloop===1.0.2
amqp===2.4.2
ruamel.yaml===0.15.89
websockify===0.8.0
XStatic-JQuery.quicksearch===2.0.3.1
mpmath===1.1.0
django-debreach===1.5.2
sphinx-feature-classification===0.3.2
XStatic-JQuery-Migrate===1.2.1.1
appdirs===1.4.3
tinyrpc===0.9.4
google-auth-httplib2===0.0.3
Flask-SQLAlchemy===2.3.2
daiquiri===1.5.0
influxdb===5.1.0
funcparserlib===0.3.6
passlib===1.7.1
dib-utils===0.0.11
cliff===2.14.1
os-brick===2.8.3
ansible-runner===1.2.0
trollius===2.2;python_version=='2.7'
scp===0.13.0
python-zaqarclient===1.11.0
funcsigs===1.0.2;python_version=='2.7'
zhmcclient===0.22.0
lockfile===0.12.2
dnspython3===1.15.0;python_version=='3.4'
dnspython3===1.15.0;python_version=='3.5'
dnspython3===1.15.0;python_version=='3.6'
ldappool===2.4.1
termcolor===1.1.0
hiredis===1.0.0
google-api-python-client===1.7.8
castellan===1.2.2
oslo.versionedobjects===1.35.1
webcolors===1.8.1
aodhclient===1.2.0
autobahn===19.2.1
SQLAlchemy-Utils===0.33.11
pluggy===0.9.0
coverage===4.5.2
freezegun===0.3.11
python-pytun===2.3.0
pyperclip===1.7.0
cassandra-driver===3.17.0
mox===0.5.3
XStatic-Angular-Schema-Form===0.8.13.0
gabbi===1.45.0
nwdiag===1.0.4
XStatic-bootswatch===3.3.7.0
XStatic-JS-Yaml===3.8.1.0
XStatic-term.js===0.0.7.0
oslo.log===3.42.3
nodeenv===1.3.3
pylev===1.3.0
python-searchlightclient===1.5.1
oslo.middleware===3.37.1
XStatic-mdi===1.6.50.2
django-pyscss===2.0.2
uritemplate===3.0.0
django-babel===0.6.2
docutils===0.14
notifier===1.0.3
os-ken===0.3.1
pycrypto===2.6.1
ujson===1.35
selenium===3.141.0
python-glareclient===0.5.3
mypy===0.670;python_version=='3.4'
mypy===0.670;python_version=='3.5'
mypy===0.670;python_version=='3.6'
mistral-lib===1.1.1
Click===7.0
dogtag-pki===10.3.5.1
XStatic-Angular-UUID===0.0.4.0
sphinxcontrib-seqdiag===0.8.5
os-win===4.2.1
dictdiffer===0.7.2
retrying===1.3.3
shade===1.31.0
pathlib2===2.3.3
pydotplus===2.0.2
flask-oslolog===0.1
jeepney===0.4;python_version=='3.4'
jeepney===0.4;python_version=='3.5'
jeepney===0.4;python_version=='3.6'
stestr===2.2.0
singledispatch===3.4.0.3;python_version=='2.7'
oslo.serialization===2.28.2
warlock===1.3.0
exabgp===4.0.10
sphinxcontrib-httpdomain===1.7.0
metalsmith===0.11.1
thriftpy===0.3.9;python_version=='2.7'
text-unidecode===1.2
murano-pkg-check===0.3.0
oslo.vmware===2.32.2
sqlalchemy-migrate===0.12.0
python-monascaclient===1.15.0
ldap3===2.5.2
requests-ntlm===1.1.0
python-string-utils===0.6.0
automaton===1.16.0
os-service-types===1.6.0
keyring===18.0.0
testscenarios===0.5.0
sphinxcontrib-pecanwsme===0.9.0
sadisplay===0.4.9
enum34===1.1.6
packaging===19.0
flask-keystone===0.2
nose-exclude===0.5.0
psutil===5.6.0
py===1.8.0
txaio===18.8.1
python-qinlingclient===2.1.0
elasticsearch===2.4.1
django-nose===1.4.6
XStatic-JQuery.TableSorter===2.14.5.1
pifpaf===2.2.2
pysmi===0.3.3
blockdiag===1.5.4
testtools===2.3.0
Parsley===1.3
XStatic-tv4===1.2.7.0
XStatic-JSEncrypt===2.3.1.1
python-cinderclient===4.2.1
keystonemiddleware===6.0.0
django-formtools===2.1
python-ceilometerclient===2.9.0
XStatic-Spin===1.2.5.2
openshift===0.8.6
tap-as-a-service===3.0.0
os-traits===0.11.0
SecretStorage===2.3.1;python_version=='2.7'
SecretStorage===3.1.1;python_version=='3.4'
SecretStorage===3.1.1;python_version=='3.5'
SecretStorage===3.1.1;python_version=='3.6'
opentracing===1.3.0
XStatic-Rickshaw===1.5.0.0
iso8601===0.1.12
tooz===1.64.2
linecache2===1.0.0
oauth2client===4.1.3
idna===2.8
python-karborclient===1.2.0
weakrefmethod===1.0.3;python_version=='2.7'
PuLP===1.6.9
crc16===0.1.1
protobuf===3.7.0
os-dpm===1.1.0
sushy===1.8.2
python-neutronclient===6.12.1
pika===0.13.0
oslo.cache===1.33.3
WebTest===2.0.33
openstack.nose-plugin===0.11
os-collect-config===10.3.1
python-qpid-proton===0.27.0
python-octaviaclient===1.8.1
pysaml2===4.6.5
requests-oauthlib===1.2.0
oslo.reports===1.29.2
ceilometermiddleware===1.4.0
python-nss===1.0.1
testrepository===0.0.20
sympy===1.3
sphinxmark===0.1.19
PyNaCl===1.3.0
osc-lib===1.12.1
python-consul===1.1.0
Faker===1.0.2
more-itertools===5.0.0;python_version=='2.7'
more-itertools===6.0.0;python_version=='3.4'
more-itertools===6.0.0;python_version=='3.5'
more-itertools===6.0.0;python_version=='3.6'
seqdiag===0.9.6
numpy===1.16.2
msgpack===0.6.1
Sphinx===1.8.4
oslo.config===6.8.2
tempest===20.0.0
django-floppyforms===1.7.0
openstackdocstheme===1.29.2
osc-placement===1.5.0
zake===0.2.2
python-rsdclient===0.1.3
python-magic===0.4.15
python-solumclient===2.8.0
PyMySQL===0.9.3
kubernetes===8.0.1
httplib2===0.12.1
bottle===0.12.16
betamax===0.8.1
construct===2.8.22
pyparsing===2.3.1
dogpile.cache===0.7.1
python-barbicanclient===4.8.1
salt===2019.2.0
tricircleclient===0.5.0
WSME===0.9.3
proboscis===1.2.6.0
fortiosclient===0.0.3
oslo.upgradecheck===0.2.1
stevedore===1.30.1
botocore===1.12.108
xmltodict===0.12.0
pyasn1===0.4.5
oslo.rootwrap===5.15.3
Django===1.11.20;python_version=='2.7'
Django===2.0.13;python_version=='3.4'
Django===2.0.13;python_version=='3.5'
Django===2.0.13;python_version=='3.6'
pexpect===4.6.0
cmd2===0.8.9
redis===3.2.0
jmespath===0.9.4
atomicwrites===1.3.0
docker-pycreds===0.4.0
XStatic-smart-table===1.4.13.2
kuryr-lib===0.9.0
scrypt===0.8.13
jsonpatch===1.23
python-daemon===2.2.3
typed-ast===1.3.1;python_version=='3.4'
typed-ast===1.3.1;python_version=='3.5'
typed-ast===1.3.1;python_version=='3.6'
os-testr===1.0.0
cotyledon===1.7.3
stomp.py===4.1.21
xattr===0.9.6
systemd-python===234
python-memcached===1.59
openstacksdk===0.27.0
six===1.12.0
dulwich===0.19.11
kombu===4.4.0
distro===1.4.0
betamax-matchers===0.4.0
yaql===1.1.3
requestsexceptions===1.4.0
testresources===2.0.1
falcon===1.4.1
subprocess32===3.5.3;python_version=='2.7'
etcd3gw===0.2.4
Flask-RESTful===0.3.7
GitPython===2.1.11
python-ironicclient===2.7.3
XStatic===1.0.2
XStatic-Angular-FileUpload===12.0.4.0
python-openstackclient===3.18.1
pyzmq===18.0.1
oslo.db===4.45.0
simplegeneric===0.8.1
python-pcre===0.7
yappi===1.0
abclient===0.2.3
pymemcache===2.1.1
wrapt===1.11.1
oslo.privsep===1.32.2
sphinxcontrib-apidoc===0.3.0
oslo.policy===2.1.2
python-muranoclient===1.2.0
hvac===0.7.2
pyeclib===1.5.0
wsgi-intercept===1.8.0
ndg-httpsclient===0.5.1;python_version=='2.7'
repoze.lru===0.7
rfc3986===1.2.0
tenacity===5.0.3
python-designateclient===2.11.0
future===0.17.1
Paste===3.0.7
jaeger-client===3.13.0
XStatic-Json2yaml===0.1.1.0
boto===2.49.0
functools32===3.2.3.post2;python_version=='2.7'
os-vif===1.15.2
python-masakariclient===5.4.0
Werkzeug===0.14.1
backports.functools-lru-cache===1.5;python_version=='2.7'
pyasn1-modules===0.2.4
entrypoints===0.3
APScheduler===3.5.3
monotonic===1.5
python-smaugclient===0.0.8
python-troveclient===2.17.1
etcd3===0.8.1
XStatic-Bootstrap-Datepicker===1.3.1.0
CouchDB===1.2
netifaces===0.10.9
cachetools===3.1.0
ws4py===0.5.1
backports-abc===0.5;python_version=='2.7'
keystoneauth1===3.13.1
statsd===3.3.0
XenAPI===1.2
python-keystoneclient===3.19.0
ceilometer===12.0.0
demjson===2.2.4
diskimage-builder===2.30.0
heat-translator===1.3.1
python-magnumclient===2.12.0
docker===3.7.0
qpid-python===1.36.0.post1;python_version=='2.7'
contextlib2===0.5.5;python_version=='2.7'
XStatic-Angular-lrdragndrop===1.0.2.4
python-congressclient===1.12.0
ovsdbapp===0.15.0
aniso8601===5.1.0
rjsmin===1.0.12
icalendar===4.0.3
configparser===3.7.3;python_version=='2.7'
decorator===4.3.2
cffi===1.12.2
futurist===1.8.1
jsonschema===2.6.0
python-blazarclient===2.1.0
alembic===1.0.8
glance-store===0.28.0
sphinxcontrib-programoutput===0.13
sphinx-testing===1.0.0
dnspython===1.15.0;python_version=='3.4'
dnspython===1.15.0;python_version=='3.5'
dnspython===1.15.0;python_version=='3.6'
dnspython===1.16.0;python_version=='2.7'
oauthlib===3.0.1
Babel===2.6.0
logutils===0.3.5
scandir===1.9.0;python_version=='2.7'
sphinxcontrib-fulltoc===1.2.0
smmap2===2.0.5
greenlet===0.4.15
XStatic-Angular-Vis===4.16.0.0
confluent-kafka===0.11.6
xvfbwrapper===0.2.9
futures===3.2.0;python_version=='2.7'
tosca-parser===1.4.0
Flask===1.0.2
happybase===1.1.0;python_version=='2.7'
marathon===0.11.0
fasteners===0.14.1
sortedcontainers===2.1.0
python-tackerclient===0.15.0
python-heatclient===1.17.0
kafka-python===1.4.4
oslo.utils===3.40.5
python-editor===1.0.4
gitdb2===2.0.5
requests-kerberos===0.12.0
itsdangerous===1.1.0
XStatic-jquery-ui===1.12.1.1
monasca-statsd===1.11.0
python-dateutil===2.8.0
virtualenv===16.4.3
colorama===0.4.1
ironic-lib===2.16.4
pytz===2018.9
XStatic-D3===3.5.17.0
actdiag===0.5.4
sysv-ipc===1.0.0
scikit-learn===0.20.3
horizon===15.2.0
uwsgi===2.0.17.1

View File

@ -419,7 +419,7 @@ parts:
- libvirt
- patches
constraints:
- https://raw.githubusercontent.com/openstack/requirements/stable/stein/upper-constraints.txt
- ${SNAPCRAFT_STAGE}/patches/upper-constraints.txt
source: http://tarballs.openstack.org/keystone/keystone-stable-stein.tar.gz
python-packages:
- libvirt-python
@ -561,6 +561,16 @@ parts:
- uca-sources
source: patches/
plugin: dump
override-build: |
# Create ${SNAPCRAFT_STAGE}/patches/upper-constraints
# Fetch upstream file
curl https://raw.githubusercontent.com/openstack/requirements/stable/stein/upper-constraints.txt --output ./upper-constraints.txt
# Fix https://bugs.launchpad.net/microstack/+bug/1867360
sed -e 's/pyScss===1.3.4/git+https:\/\/github.com\/petevg\/pyScss.git#egg=pyScss/' -i ./upper-constraints.txt
snapcraftctl build
organize:
'*' : patches/
prime:
@ -928,7 +938,7 @@ parts:
requirements:
- requirements.txt
constraints:
- https://raw.githubusercontent.com/openstack/requirements/stable/stein/upper-constraints.txt
- ${SNAPCRAFT_STAGE}/patches/upper-constraints.txt
source: tools/cluster
override-build: |
# Hack to avoid conflict between openstack-projects'