From Fedora Project Wiki

CentOS Cloud SIG ppc64le issues

The following is a list of open issues needed to get https://buildlogs.centos.org/centos/7/cloud/ppc64le/openstack-pike/ matching https://buildlogs.centos.org/centos/7/cloud/x86_64/openstack-pike/

Repositories: cloud images

Does the cloud repository https://cloud.centos.org/altarch/7/images/ need to be compiled for ppc64le?

There are currently builds on http://ftp.unicamp.br/pub/ppc64el/centos/7/images/

FINISHED: Merging ppc64le scratch build into existing build

All of the packages have been processed.

For history's sake, the following packages needed to have scratch builds for only ppc64le built and then merged into the existing build of that version (with breaks for repo regens):

cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 apiextractor-0.10.10-11.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-dulwich-0.16.1-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 fio-2.2.10-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 jsoncpp-0.10.5-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 librdkafka-0.9.2-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 openvswitch-2.7.1-1.1fc27.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 Cython-0.25.2-3.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-dulwich-0.16.1-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-lz4-0.9.0-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-psutil-5.2.2-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-tornado-4.4.2-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-gitdb-0.6.4-4.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 qpid-proton-0.14.0-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 sip-4.19-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 sparsehash-2.0.2-4.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 mozjs38-38.8.0-2.el7.src.rpm
---
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 coin-or-CoinUtils-2.10.13-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 generatorrunner-0.6.16-10.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 mongodb-3.2.8-3.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 libev-4.24-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 qpid-cpp-1.35.0-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-subprocess32-3.2.6-4.el7.src.rpm
---
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 glpk-4.52.1-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 PyQt4-4.12-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-cassandra-driver-3.7.1-4.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-gevent-1.1.2-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-matplotlib-2.0.0-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 shiboken-1.2.4-2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 cmake3-3.6.1-2.el7.src.rpm
---
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 coin-or-Osi-0.107.8-1.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-pandas-0.19.1-2.el7.2.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-pykafka-2.6.0-0.1.dev2.el7.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 python-pyside-1.2.2-6.el7.1.src.rpm
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 qpid-dispatch-0.6.1-4.el7.src.rpm
---
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 coin-or-Clp-1.16.10-1.el7.src.rpm
---
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 coin-or-Cgl-0.59.9-1.el7.src.rpm
---
cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 coin-or-Cbc-2.9.8-1.el7.src.rpm

Needs to move from cloud7-openstack-common-candidate to cloud7-openstack-common-release

How in general is this supposed to happen? Also, specifically, these packages need to show up in -release.

corosync-2.4.0-9.el7
https://cbs.centos.org/koji/buildinfo?buildID=17261
erlang-19.3.6.1-1.el7
https://cbs.centos.org/koji/buildinfo?buildID=17627
galera-25.3.16-3.el7
https://cbs.centos.org/koji/buildinfo?buildID=17566
libqb-1.0.1-3.el7
https://cbs.centos.org/koji/buildinfo?buildID=17248
librx-1.5-28.el7
https://cbs.centos.org/koji/buildinfo?buildID=16943
nagios-4.0.8-2.el7
https://cbs.centos.org/koji/buildinfo?buildID=11208
pacemaker-1.1.16-10.el7
https://cbs.centos.org/koji/buildinfo?buildID=17258
pcs-0.9.158-4.el7
https://cbs.centos.org/koji/buildinfo?buildID=17327
python-bcrypt-3.1.2-3.el7
https://cbs.centos.org/koji/buildinfo?buildID=17369
python-pillow-4.0.0-0.1.el7
https://cbs.centos.org/koji/buildinfo?buildID=16917
scipy
https://cbs.centos.org/koji/buildinfo?buildID=15956
python-sqlalchemy
https://cbs.centos.org/koji/buildinfo?buildID=17555
resource-agents
https://cbs.centos.org/koji/buildinfo?buildID=17263
subunit
https://cbs.centos.org/koji/buildinfo?buildID=17618

copying x86_64 noarch into ppc64le

Not sure how to get noarch from https://buildlogs.centos.org/centos/7/cloud/x86_64/openstack-pike/ into https://buildlogs.centos.org/centos/7/cloud/ppc64le/openstack-pike/. Needs to be retagged?

openstack-aodh
https://cbs.centos.org/koji/packageinfo?packageID=1949
openstack-macros
https://cbs.centos.org/koji/packageinfo?packageID=3792
puppet
https://cbs.centos.org/koji/buildinfo?buildID=15305
python-amqp
https://cbs.centos.org/koji/buildinfo?buildID=17360
python-cotyledon
https://cbs.centos.org/koji/buildinfo?buildID=15562
python-docker
https://cbs.centos.org/koji/buildinfo?buildID=17580
python-docker-pycreds
https://cbs.centos.org/koji/buildinfo?buildID=17042
python-eventlet
https://cbs.centos.org/koji/buildinfo?buildID=17356
python-funcsigs
https://cbs.centos.org/koji/buildinfo?buildID=11232
python-gabbi
https://cbs.centos.org/koji/buildinfo?buildID=17031
python-kombu
https://cbs.centos.org/koji/buildinfo?buildID=16783
python-mock
https://cbs.centos.org/koji/buildinfo?buildID=12100
python-murano-pkg-check
https://cbs.centos.org/koji/buildinfo?buildID=15689
python-openstackdocstheme
https://cbs.centos.org/koji/buildinfo?buildID=17538
python-paramiko
https://cbs.centos.org/koji/buildinfo?buildID=11376
python-pbr
https://cbs.centos.org/koji/buildinfo?buildID=17532
python-pecan
https://cbs.centos.org/koji/buildinfo?buildID=11604
python-positional
https://cbs.centos.org/koji/buildinfo?buildID=12116
python-PyMySQL
https://cbs.centos.org/koji/buildinfo?buildID=17298
pyOpenSSL
https://cbs.centos.org/koji/buildinfo?buildID=15812
python-pyroute2
https://cbs.centos.org/koji/buildinfo?buildID=17311
python-ryu
https://cbs.centos.org/koji/buildinfo?buildID=17279
python-sphinx
https://cbs.centos.org/koji/buildinfo?buildID=17541
python-sphinxcontrib-websupport
https://cbs.centos.org/koji/buildinfo?buildID=17539
python-tinyrpc
https://cbs.centos.org/koji/buildinfo?buildID=17259
python-tosca-parser
https://cbs.centos.org/koji/buildinfo?buildID=15326
python-vine
https://cbs.centos.org/koji/buildinfo?buildID=16741
python-XStatic-Angular
https://cbs.centos.org/koji/buildinfo?buildID=15445
python-XStatic-Angular-Bootstrap
https://cbs.centos.org/koji/buildinfo?buildID=15447
python-XStatic-Angular-Gettext
https://cbs.centos.org/koji/packageinfo?packageID=767
python-XStatic-bootswatch
https://cbs.centos.org/koji/buildinfo?buildID=15451
python-XStatic-D3
https://cbs.centos.org/koji/buildinfo?buildID=15452
python-XStatic-Font-Awesome
https://cbs.centos.org/koji/buildinfo?buildID=15536
python-XStatic-JSEncrypt
https://cbs.centos.org/koji/buildinfo?buildID=15448
python-XStatic-roboto-fontface
https://cbs.centos.org/koji/buildinfo?buildID=14533
python-cachetools
https://cbs.centos.org/koji/buildinfo?buildID=11994
python-django-compressor
https://cbs.centos.org/koji/buildinfo?buildID=11184
python-django-pyscss
https://cbs.centos.org/koji/buildinfo?buildID=3735
python-dogpile-cache
https://cbs.centos.org/koji/buildinfo?buildID=12119
python-idna
https://cbs.centos.org/koji/buildinfo?buildID=17243
python-kafka
https://cbs.centos.org/koji/buildinfo?buildID=15342
python-migrate
https://cbs.centos.org/koji/buildinfo?buildID=16842
python-pytest-cov
https://cbs.centos.org/koji/buildinfo?buildID=17374
python-requests-mock
https://cbs.centos.org/koji/buildinfo?buildID=13885
python-sphinx-locale
https://cbs.centos.org/koji/buildinfo?buildID=17541
python-sphinx_rtd_theme
https://cbs.centos.org/koji/buildinfo?buildID=17542
python-webob
https://cbs.centos.org/koji/buildinfo?buildID=17007

cloud7-openstack-pike-candidate is not built yet for ppc64le

The repository https://cbs.centos.org/repos/cloud7-openstack-pike-candidate/ is not currently built for ppc64 because it would break the x86_64 builds.

Other package errors

The following packages were found in the cloud7-openstack-common x86_64 repository but not currently in the ppc64le repository:

libunwind

libunwind-1.1-3.el7.src.rpm does not support ppc64le architecture

...
error: Architecture is not included: ppc64le
...

We need to tag libunwind-1.1-10.el7 into cloud7-openstack-common-release

mariadb-galera

Building mariadb-galera-5.5.40-3.el7.src.rpm fails with the following message:

Executing command: ['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target ppc64le --nodeps /builddir/build/SPECS/mariadb-galera.spec'] with env {'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;<mock-chroot>\x07<mock-chroot>"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False
error: Architecture is not included: ppc64le
Building target platforms: ppc64le
Building for target ppc64le
Child return code was: 1

In Koji, it was last built on 2015-06-17. Is this package in active development?

openstack-tripleo-ui-deps

Building openstack-tripleo-ui-deps-7-5.el7.src.rpm fails with the following message:

Executing command: ['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target ppc64le --nodeps /builddir/build/SPECS/openstack-tripleo-ui-deps.spec'] with env {'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;<mock-chroot>\x07<mock-chroot>"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False
error: Architecture is not included: ppc64le
Building target platforms: ppc64le
Building for target ppc64le

Altering the openstack-tripleo-ui-deps.spec file

[hamzy@pkvmci853 ~]$ diff -Nu ~/rpmbuild/SPECS/openstack-tripleo-ui-deps.spec.orig ~/rpmbuild/SPECS/openstack-tripleo-ui-deps.spec
--- /home/hamzy/rpmbuild/SPECS/openstack-tripleo-ui-deps.spec.orig      2017-05-30 19:15:56.000000000 -0400
+++ /home/hamzy/rpmbuild/SPECS/openstack-tripleo-ui-deps.spec   2017-07-22 18:51:05.471924860 -0400
@@ -20,7 +20,7 @@
 Source0:        tripleo-ui-deps-%{shortcommit}.tar.gz
 
 # Cannot build as noarch until nodejs is built from aarch64 in CBS
-ExclusiveArch: x86_64
+ExclusiveArch: x86_64 ppc64le 
 
 BuildRequires:  nodejs
 BuildRequires:  git

the build will succeed.

phantomjs

Building phantomjs-1.9.7-3.el7.src.rpm encounters the following error:

g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DHAVE_CONFIG_H -DHAVE_FCNTL_H -DHAVE_STDARG_H -DHAVE_STDINT_H -DHAVE_UNISTD_H -DUSE_UTF8 -DSTATIC_BUILD -DQCOMMANDLINE_STATIC -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -Iqt/mkspecs/linux-g++ -I. -Iqt/include/QtCore -Iqt/include/QtNetwork -Iqt/include/QtGui -Iqt/include/QtWebKit -Iqt/include -Igif -Imongoose -Ilinenoise/src -Iqcommandline -Ibreakpad/src -I. -o csconverter.o csconverter.cpp
In file included from breakpad/src/common/memory.h:44:0,
                 from breakpad/src/client/linux/minidump_writer/linux_dumper.h:49,
                 from breakpad/src/client/linux/minidump_writer/minidump_writer.h:39,
                 from breakpad/src/client/linux/handler/exception_handler.h:45,
                 from main.cpp:36:
breakpad/src/third_party/lss/linux_syscall_support.h: In function 'void* sys_mmap2(void*, size_t, int, int, int, off_t)':
breakpad/src/third_party/lss/linux_syscall_support.h:2429:18: error: '__NR_mmap2' was not declared in this scope
         __sc_0 = __NR_##name
                  ^
breakpad/src/third_party/lss/linux_syscall_support.h:2432:13: note: in expansion of macro 'LSS_LOADARGS_0'
             LSS_LOADARGS_0(name);                                             \
             ^
breakpad/src/third_party/lss/linux_syscall_support.h:2436:13: note: in expansion of macro 'LSS_LOADARGS_1'
             LSS_LOADARGS_1(name, arg1);                                       \
             ^
breakpad/src/third_party/lss/linux_syscall_support.h:2440:13: note: in expansion of macro 'LSS_LOADARGS_2'
             LSS_LOADARGS_2(name, arg1, arg2);                                 \
             ^
breakpad/src/third_party/lss/linux_syscall_support.h:2444:13: note: in expansion of macro 'LSS_LOADARGS_3'
             LSS_LOADARGS_3(name, arg1, arg2, arg3);                           \
             ^
breakpad/src/third_party/lss/linux_syscall_support.h:2448:13: note: in expansion of macro 'LSS_LOADARGS_4'
             LSS_LOADARGS_4(name, arg1, arg2, arg3, arg4);                     \
             ^
breakpad/src/third_party/lss/linux_syscall_support.h:2452:13: note: in expansion of macro 'LSS_LOADARGS_5'
             LSS_LOADARGS_5(name, arg1, arg2, arg3, arg4, arg5);               \
             ^
breakpad/src/third_party/lss/linux_syscall_support.h:2480:13: note: in expansion of macro 'LSS_LOADARGS_6'
             LSS_LOADARGS_##nr(name, args);                                    \
             ^
breakpad/src/third_party/lss/linux_syscall_support.h:2533:11: note: in expansion of macro 'LSS_BODY'
           LSS_BODY(6, type, name, arg1, arg2, arg3, arg4, arg5, arg6);        \
           ^
breakpad/src/third_party/lss/linux_syscall_support.h:3046:16: note: in expansion of macro '_syscall6'
     LSS_INLINE _syscall6(void*, mmap2,             void*, s,
                ^
In file included from main.cpp:36:0:
breakpad/src/client/linux/handler/exception_handler.h: At global scope:
breakpad/src/client/linux/handler/exception_handler.h:178:26: error: field 'float_state' has incomplete type
     struct _libc_fpstate float_state;
                          ^
make[1]: *** [main.o] Error 1

Some internet talk about it here: powerpc-linux not currently supported and Porting google-breakpad on ppc64le

I did more research here: phantomjs_ppc64le

Talking to Atul Sowani, I learned:

I see that you are trying to build PhantomJS 1.9.x on ppc64le. Unfortunately, it is not compatible with ppc64le - especially the breakpad component. Starting with PhantomJS 2.0, breakpad has been removed and as a result PhantomJS builds okay on ppc64le. The default test suite runs fine, however PhantomJS itself is infested with numerous bugs and that manifests in different ways on ppc64le.

There is a good pre-built PhantomJS binary available at ibmsoe site. Just in case you want to build it yourself, I strongly recommend that you use PhantomJS 2.1+.

Creating a phantomjs.spec file:

Name:           phantomjs
Version:        2.1.1
Release:        1%{?dist}
Summary:        Scriptable Headless WebKit

License:        BSD
URL:            http://phantomjs.org/
#
# NOTE: executing "find . -depth -name .git -exec rm -r {} \;" will cause the following error:
# ../src/corelib/global/qglobal.h:72:37: fatal error: QtCore/qsystemdetection.h: No such file or directory
#
# (VERSION="2.1.1"; cd /tmp/; git clone git://github.com/ariya/phantomjs.git; pushd phantomjs/; git checkout ${VERSION}; git submodule init; git submodule update; echo "not cleaning .git"; popd; mv phantomjs/ phantomjs-${VERSION}/; tar --create --gzip --file=phantomjs-${VERSION}.tar.gz phantomjs-${VERSION}/)
#
Source0:        phantomjs-2.1.1.tar.gz

#
# aarch64 error:
#
# /builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/bin/moc -DQT_NO_MTDEV -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_NO_GRAPHICSVIEW -DQT_NO_GRAPHICSEFFECT -DQT_NO_STYLESHEET -DQT_NO_STYLE_CDE -DQT_NO_STYLE_CLEANLOOKS -DQT_NO_STYLE_MOTIF -DQT_NO_STYLE_PLASTIQUE -DQT_NO_PRINTPREVIEWDIALOG -DQT_NO_USING_NAMESPACE -DQT_BUILD_GUI_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_USE_BUNDLED_LIBPNG -DPNG_ARM_NEON_OPT=0 -DQT_ENABLE_HARFBUZZ_NG -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/mkspecs/linux-g++ -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/src/gui -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/include -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/include/QtGui -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/include/QtGui/5.5.1 -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/include/QtGui/5.5.1/QtGui -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/src/3rdparty/libpng -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/src/3rdparty/zlib -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/src/3rdparty/libjpeg -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/src/3rdparty/harfbuzz-ng/include -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/src/3rdparty/zlib -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/include/QtCore/5.5.1 -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/include/QtCore/5.5.1/QtCore -I/builddir/build/BUILD/phantomjs-2.1.1/src/qt/qtbase/include/QtCore -I/usr/include/c++/4.8.5 -I/usr/include/c++/4.8.5/aarch64-redhat-linux -I/usr/include/c++/4.8.5/backward -I/usr/lib/gcc/aarch64-redhat-linux/4.8.5/include -I/usr/local/include -I/usr/include kernel/qkeymapper_p.h -o .moc/moc_qkeymapper_p.cpp
# {standard input}:7254: Error: invalid operands (*UND* and *UND* sections) for `*'
# {standard input}:8854: Error: invalid operands (*UND* and *UND* sections) for `*'
#
ExclusiveArch:  x86_64 ppc64le

BuildRequires:  python2-devel
BuildRequires:  chrpath
BuildRequires:  flex
BuildRequires:  bison
BuildRequires:  gperf
BuildRequires:  ruby
BuildRequires:  openssl-devel
BuildRequires:  freetype-devel
BuildRequires:  fontconfig-devel
BuildRequires:  libicu-devel
BuildRequires:  sqlite-devel
BuildRequires:  libpng-devel
BuildRequires:  libjpeg-devel

Requires:       sqlite

%description
PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and
native support for various web standards: DOM handling, CSS selector, JSON,
Canvas, and SVG.

%prep
%setup -q


%build
python ./build.py --confirm --skip-git --jobs=4 --qt-config=-system-sqlite


%install
mkdir -p %{buildroot}%{_bindir}
cp bin/phantomjs %{buildroot}%{_bindir}
chrpath -d %{buildroot}%{_bindir}/phantomjs


%files
%attr(755, root, root) %{_bindir}/phantomjs


%changelog
* Tue Jul 25 2017 Mark Hamzy <hamzy@us.ibm.com> 2.1.1-1
- Use version 2.1.1

* Fri Jul 31 2015 Lon Hohberger <lhh@redhat.com> 1.9.7-3
- Use system-sqlite instead of bundled sqlite

* Wed Jul 29 2015 Graeme Gillies <ggillies@redhat.com> - 1.9.7-1
- Initial Packaging

And it builds as a scratch build:

[hamzy@pkvmci853 ~]$ vi ~/rpmbuild/SPECS/phantomjs.spec
[hamzy@pkvmci853 ~]$ rpmbuild -bs --define "dist .el7" ~/rpmbuild/SPECS/phantomjs.spec
Wrote: /home/hamzy/rpmbuild/SRPMS/phantomjs-2.1.1-1.el7.src.rpm
[hamzy@pkvmci853 ~]$ cbs build --scratch cloud7-openstack-common-el7 ~/rpmbuild/SRPMS/phantomjs-2.1.1-1.el7.src.rpm
...
Created task: 193456
Task info: https://cbs.centos.org/koji/taskinfo?taskID=193456
...
193456 build (cloud7-openstack-common-el7, phantomjs-2.1.1-1.el7.src.rpm) completed successfully

python-cradox

python-cradox-1.3.2-1.el7.src.rpm is fixed. However, I do not know if the appropriate way was used. Basically, the Exclusive architecture statement was removed.

[hamzy@pkvmci853 ~]$ (TMP1=$(mktemp); TMP2=$(mktemp); wget --quiet -O - 'http://cbs.centos.org/kojifiles/packages/python-cradox/1.3.2/1.el7/src/python-cradox-1.3.2-1.el7.src.rpm' | rpm2cpio | cpio --extract --to-stdout python-cradox.spec > ${TMP1} 2>/dev/null; wget --quiet -O - 'http://cbs.centos.org/kojifiles/packages/python-cradox/1.3.2/1.el7.1/src/python-cradox-1.3.2-1.el7.1.src.rpm' | rpm2cpio | cpio --extract --to-stdout python-cradox.spec > ${TMP2} 2>/dev/null; diff -Nu ${TMP1} ${TMP2}; /bin/rm ${TMP1} ${TMP2})
--- /tmp/tmp.h5gKhhCQJj 2017-07-22 07:33:56.729566824 -0400
+++ /tmp/tmp.d7p7Qh4hqO 2017-07-22 07:33:56.829568094 -0400
@@ -6,12 +6,9 @@
 
 Name:           python-%{pypi_name}
 Version:        1.3.2
-Release:        1%{?dist}
+Release:        1%{?dist}.1
 Summary:        Python libraries for the Ceph librados library with use cython instead of ctypes
 
-# TODO(apevec) temp disable ppc64le, builder was not picking up the task after 1h
-ExclusiveArch: x86_64 aarch64
-
 License:        LGPLv2
 URL:            https://github.com/sileht/pycradox
 Source0:        https://files.pythonhosted.org/packages/source/c/%{pypi_name}/%{pypi_name}-%{version}.tar.gz

FINISHED: python-fastcache

Building python-fastcache-1.0.2-3.el7.src.rpm fails with the following message:

+ py.test-2.7 -v --ignore=fastcache/tests
============================= test session starts ==============================
platform linux2 -- Python 2.7.5, pytest-3.0.6, py-1.4.31, pluggy-0.4.0 -- /usr/bin/python2
cachedir: .cache
rootdir: /builddir/build/BUILD/python-fastcache-1.0.2/fastcache-1.0.2, inifile: 
collecting ... collected 0 items
========================= no tests ran in 0.01 seconds =========================
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.aoOVMr (%check)
    Bad exit status from /var/tmp/rpm-tmp.aoOVMr (%check)

This also fails for x86_64:

[hamzy@pkvmci853 ~]$  cbs build --scratch --arch-override=x86_64 cloud7-openstack-common-el7 python-fastcache-1.0.2-3.el7.src.rpm
Uploading srpm: python-fastcache-1.0.2-3.el7.src.rpm
...
Created task: 192617
Task info: https://cbs.centos.org/koji/taskinfo?taskID=192617
...

...
DEBUG util.py:417:   python2-pytest            noarch        3.0.6-2.el7         build        1.0 M
...

...
+ py.test-2.7 -v --ignore=fastcache/tests
============================= test session starts ==============================
platform linux2 -- Python 2.7.5, pytest-3.0.6, py-1.4.31, pluggy-0.4.0 -- /usr/bin/python2
cachedir: .cache
rootdir: /builddir/build/BUILD/python-fastcache-1.0.2/fastcache-1.0.2, inifile:
collecting ... collected 0 items
...

This is because it is using pytest-3.0.6. The last successful build used pytest-2.8.7-2.el7.noarch.

python-fastcache-1.0.2-9.fc26 [1] works:

[hamzy@pkvmci853 ~]$ cbs build --scratch cloud7-openstack-common-el7 ~/rpmbuild/SRPMS/python-fastcache-1.0.2-9.el7.src.rpm
...
Created task: 192622
Task info: https://cbs.centos.org/koji/taskinfo?taskID=192622
...
192622 build (cloud7-openstack-common-el7, python-fastcache-1.0.2-9.el7.src.rpm) completed successfully

FINISHED: python-tables

Building python-tables-3.1.1-2.el7.src.rpm encounters the following error:

+ python setup.py build
* Using Python 2.7.5 (default, Nov 11 2016, 04:49:48) 
.. ERROR:: You need numpy 1.4.1 or greater to run PyTables!
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.U2vx9n (%build)
    Bad exit status from /var/tmp/rpm-tmp.U2vx9n (%build)
Child return code was: 1

x86_64 successfully built a while ago, but a scratch build also fails now.

Building python-tables-3.2.0-1.el7.src.rpm encounters the following error:

...
DEBUG util.py:417:  Error: No Package found for blosc-devel >= 1.5.2
...

So blosc-1.6.1-1.el7.src.rpm was imported from EPEL. However, python-tables still fails (https://kojipkgs.fedoraproject.org//packages/python-tables/3.2.0/1.el7/data/logs/ppc64le/build.log):

...
ERROR: None (tables.tests.test_tables.RecArrayRangeTestCase)
...
ValueError: could not broadcast input array from shape (2) into shape (0)
...
Ran 5734 tests in 183.285s
FAILED (errors=4, skipped=13)
...

Maybe https://github.com/PyTables/PyTables/issues/482 points to a solution?

python-tables is needed by openstack-gnocchi and python-hardware:

2017-07-22 05:41:33,615 INFO:dlrn-build:Error: Package: python2-pandas-0.19.1-2.el7.2.ppc64le (cloud7_openstack_common_release)
2017-07-22 05:41:33,615 INFO:dlrn-build:           Requires: python-tables
...
2017-07-22 05:41:33,646 ERROR:dlrn:Received exception Error in build_rpm_wrapper for openstack-gnocchi:
...
2017-07-22 12:56:37,528 INFO:dlrn-build:DEBUG: Error: Package: python2-pandas-0.19.1-2.el7.2.ppc64le (cloud7_openstack_common_candidate)
2017-07-22 12:56:37,528 INFO:dlrn-build:DEBUG:            Requires: python-tables
...
2017-07-22 12:56:50,478 ERROR:dlrn:Received exception Error in build_rpm_wrapper for python-hardware:

Building the latest python-tables in koji, python-tables-3.2.0-4.el7.src.rpm, encounters the following error:

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 -mcpu=power8 -mtune=power8 -D_GNU_SOURCE -fPIC -fwrapv -O3 -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8 -D_GNU_SOURCE -fPIC -fwrapv -O3 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8 -fPIC -DNDEBUG=1 -DHAVE_LZO2_LIB=1 -DHAVE_BZ2_LIB=1 -DHAVE_BLOSC_LIB=1 -Ihdf5-blosc/src -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c src/H5ATTR.c -o build/temp.linux-ppc64le-2.7/src/H5ATTR.o -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8 -Isrc -DH5Acreate_vers=2 -DH5Aiterate_vers=2 -DH5Dcreate_vers=2 -DH5Dopen_vers=2 -DH5Eclear_vers=2 -DH5Eprint_vers=2 -DH5Epush_vers=2 -DH5Eset_auto_vers=2 -DH5Eget_auto_vers=2 -DH5Ewalk_vers=2 -DH5E_auto_t_vers=2 -DH5Gcreate_vers=2 -DH5Gopen_vers=2 -DH5Pget_filter_vers=2 -DH5Pget_filter_by_id_vers=2 -DH5Tarray_create_vers=2 -DH5Tget_array_dims_vers=2 -DH5Z_class_t_vers=2
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 -mcpu=power8 -mtune=power8 -D_GNU_SOURCE -fPIC -fwrapv -O3 -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8 -D_GNU_SOURCE -fPIC -fwrapv -O3 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8 -fPIC -DNDEBUG=1 -DHAVE_LZO2_LIB=1 -DHAVE_BZ2_LIB=1 -DHAVE_BLOSC_LIB=1 -Ihdf5-blosc/src -I/usr/lib64/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c hdf5-blosc/src/blosc_filter.c -o build/temp.linux-ppc64le-2.7/hdf5-blosc/src/blosc_filter.o -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mcpu=power8 -mtune=power8 -Isrc -DH5Acreate_vers=2 -DH5Aiterate_vers=2 -DH5Dcreate_vers=2 -DH5Dopen_vers=2 -DH5Eclear_vers=2 -DH5Eprint_vers=2 -DH5Epush_vers=2 -DH5Eset_auto_vers=2 -DH5Eget_auto_vers=2 -DH5Ewalk_vers=2 -DH5E_auto_t_vers=2 -DH5Gcreate_vers=2 -DH5Gopen_vers=2 -DH5Pget_filter_vers=2 -DH5Pget_filter_by_id_vers=2 -DH5Tarray_create_vers=2 -DH5Tget_array_dims_vers=2 -DH5Z_class_t_vers=2
hdf5-blosc/src/blosc_filter.c: In function 'blosc_filter':
hdf5-blosc/src/blosc_filter.c:172:19: error: 'BLOSC_BITSHUFFLE' undeclared (first use in this function)
  if (doshuffle == BLOSC_BITSHUFFLE) {
                   ^
hdf5-blosc/src/blosc_filter.c:172:19: note: each undeclared identifier is reported only once for each function it appears in
hdf5-blosc/src/blosc_filter.c:159:10: warning: unused variable 'errmsg' [-Wunused-variable]
     char errmsg[256];
          ^
error: command 'gcc' failed with exit status 1

So blosc was updated to the latest level of blosc-1.11.1-3.el7.src.rpm. This allows python-tables-3.3.0-4.el7.src.rpm to build with the following spec file change:

[hamzy@pkvmci853 ~]$ diff -Nu ~/rpmbuild/SPECS/python-tables.spec.orig ~/rpmbuild/SPECS/python-tables.spec                 [40/1901]
--- /home/hamzy/rpmbuild/SPECS/python-tables.spec.orig  2017-07-24 20:40:48.381011588 -0400
+++ /home/hamzy/rpmbuild/SPECS/python-tables.spec       2017-07-24 22:01:23.081037752 -0400
@@ -25,11 +25,13 @@
 BuildRequires:  blosc-devel >= 1.5.2
 BuildRequires:  python2-devel
 BuildRequires:  python2-six
+%if 0%{?with_python3}
 BuildRequires:  python%{python3_pkgversion}-devel
 BuildRequires:  python%{python3_pkgversion}-Cython >= 0.13
 BuildRequires:  python%{python3_pkgversion}-numpy
 BuildRequires:  python%{python3_pkgversion}-numexpr >= 2.4
 BuildRequires:  python%{python3_pkgversion}-six
+%endif
 
 %description
 PyTables is a package for managing hierarchical datasets and designed
@@ -49,6 +51,7 @@
 
 This is the version for Python 2.
 
+%if 0%{?with_python3}
 %package -n python%{python3_pkgversion}-tables
 Summary:        %{summary}
 
@@ -62,6 +65,7 @@
 to efficiently and easily cope with extremely large amounts of data.
 
 This is the version for Python 3.
+%endif
 
 %package        doc
 Group:          Development/Languages
@@ -82,37 +86,47 @@
 
 %build
 %py2_build
+%if 0%{?with_python3}
 %py3_build
+%endif
 
 %install
 chmod -x examples/check_examples.sh
 sed -i 's|bin/env |bin/|' utils/*
 
 %py2_install
+%if 0%{?with_python3}
 %py3_install
+%endif
 
 %check
 export LANG=en_US.UTF-8
 PYTHONPATH=%{buildroot}%{python2_sitearch} %{__python2} bench/check_all.py
 
+%if 0%{?with_python3}
 # OOM during tests on s390
 %ifnarch s390
 PYTHONPATH=%{buildroot}%{python3_sitearch} %{__python3} bench/check_all.py
 %endif
+%endif
 
 %files -n python2-tables
 %license LICENSE.txt LICENSES
 %{python2_sitearch}/tables
 %{python2_sitearch}/tables-%{version}*.egg-info
 
+%if 0%{?with_python3}
 %files -n python%{python3_pkgversion}-tables
+%endif
 %license LICENSE.txt LICENSES
 %{_bindir}/ptdump
 %{_bindir}/ptrepack
 %{_bindir}/pt2to3
 %{_bindir}/pttree
+%if 0%{?with_python3}
 %{python3_sitearch}/tables
 %{python3_sitearch}/tables-%{version}*.egg-info
+%endif
 
 %files doc
 %license LICENSE.txt LICENSES

v8

Building v8-3.14.5.10-17.el7.src.rpm fails with the following message:

Executing command: ['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target ppc64le --nodeps /builddir/build/SPECS/v8.spec'] with env {'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;<mock-chroot>\x07<mock-chroot>"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False
error: Architecture is not included: ppc64le
Building target platforms: ppc64le
Building for target ppc64le
Child return code was: 1

Building v8-5.2.258-11.el7.src.rpm (https://kojipkgs.fedoraproject.org//packages/v8/5.2.258/11.fc27/src/v8-5.2.258-11.fc27.src.rpm) fails with the following message:

DEBUG util.py:417:  Error: No Package found for clang

Building clang-4.0.1-1.el7.src.rpm (https://kojipkgs.fedoraproject.org//packages/clang/4.0.1/1.fc27/src/clang-4.0.1-1.fc27.src.rpm) fails with the following message:

Error: No Package found for llvm-devel = 4.0.1
Error: No Package found for llvm-static = 4.0.1
Error: No Package found for python2-lit
Error: No Package found for python3-sphinx

Building llvm-4.0.1-1.el7.src.rpm (https://kojipkgs.fedoraproject.org//packages/llvm/4.0.1/1.fc27/src/llvm-4.0.1-1.fc27.src.rpm) fails with the following message:

DEBUG util.py:417:  Error: No Package found for python3-sphinx

Altering the llvm.spec file

[hamzy@pkvmci853 ~]$ diff -Nu ~/rpmbuild/SPECS/llvm.spec.orig ~/rpmbuild/SPECS/llvm.spec                                   [11/1927]
--- /home/hamzy/rpmbuild/SPECS/llvm.spec.orig   2017-06-22 16:53:12.000000000 -0400
+++ /home/hamzy/rpmbuild/SPECS/llvm.spec        2017-07-22 16:08:43.742010218 -0400
@@ -7,6 +7,10 @@
 
 %global llvm_bindir %{_libdir}/%{name}
 
+%if 0%{?fedora} || 0%{?epel}
+%global with_python3 1
+%endif
+
 Name:          llvm
 Version:       4.0.1
 Release:       1%{?dist}
@@ -24,11 +28,15 @@
 Patch5:                0001-CMake-Fix-docs-llvm-man-target-when-clang-llvm-is-in.patch
 Patch6:                0001-CMake-Add-LLVM_UTILS_INSTALL_DIR-option.patch
 
-BuildRequires: cmake
+BuildRequires: cmake3
 BuildRequires: zlib-devel
 BuildRequires:  libffi-devel
 BuildRequires: ncurses-devel
+%if 0%{?with_python3}
 BuildRequires: python3-sphinx
+%else
+BuildRequires: python2-sphinx
+%endif
 BuildRequires: multilib-rpm-config
 %if %{with gold}
 BuildRequires:  binutils-devel
@@ -93,7 +101,7 @@
 %endif
 
 # force off shared libs as cmake macros turns it on.
-%cmake .. \
+%cmake3 .. \
        -DBUILD_SHARED_LIBS:BOOL=OFF \
        -DCMAKE_BUILD_TYPE=RelWithDebInfo \
        -DCMAKE_SHARED_LINKER_FLAGS="-Wl,-Bsymbolic -static-libstdc++" \
@@ -143,7 +151,11 @@
        -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \
        \
        -DSPHINX_WARNINGS_AS_ERRORS=OFF \
+%if 0%{?with_python3}
        -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3
+%else
+       -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build
+%endif
 
 make %{?_smp_mflags}
 

the build will succeed.

Building python-lit-0.5.0-1.el7.src.rpm (https://kojipkgs.fedoraproject.org//packages/python-lit/0.5.0/1.fc27/src/python-lit-0.5.0-1.fc27.s) fails with the following message:

+ sed -i -e '1{\@^#!/usr/bin/env python@d}' '/builddir/build/BUILDROOT/python-lit-0.5.0-1.el7.ppc64le%{python3_sitelib}/lit/*.py'
sed: can't read /builddir/build/BUILDROOT/python-lit-0.5.0-1.el7.ppc64le%{python3_sitelib}/lit/*.py: No such file or directory
error: Bad exit status from /var/tmp/rpm-tmp.NKKtMh (%install)

Altering the python-lit.spec file

[hamzy@pkvmci853 ~]$ diff -Nu ~/rpmbuild/SPECS/python-lit.spec.orig ~/rpmbuild/SPECS/python-lit.spec
--- /home/hamzy/rpmbuild/SPECS/python-lit.spec.orig     2017-03-10 10:51:45.000000000 -0500
+++ /home/hamzy/rpmbuild/SPECS/python-lit.spec  2017-07-22 17:33:40.084558263 -0400
@@ -63,7 +63,9 @@
 
 # Strip out #!/usr/bin/env python
 sed -i -e '1{\@^#!/usr/bin/env python@d}' %{buildroot}%{python2_sitelib}/%{srcname}/*.py
+%if 0%{?with_python3}
 sed -i -e '1{\@^#!/usr/bin/env python@d}' %{buildroot}%{python3_sitelib}/%{srcname}/*.py
+%endif
 
 %check
 %{__python2} setup.py test

the build will succeed.

DLRN builds

dlrn has the following modifications:

diff --git a/projects.ini b/projects.ini
index c9f165d..a9b602d 100644
--- a/projects.ini
+++ b/projects.ini
@@ -1,7 +1,8 @@
 [DEFAULT]
 datadir=./data
 scriptsdir=./scripts
-baseurl=http://trunk.rdoproject.org/centos7/
+#baseurl=http://trunk.rdoproject.org/centos7/
+baseurl=http://127.0.0.1/openstack-pike/
 distro=rpm-master
 source=master
 target=centos
@@ -10,7 +11,7 @@ reponame=delorean
 templatedir=./dlrn/templates
 maxretries=3
 pkginfo_driver=dlrn.drivers.rdoinfo.RdoInfoDriver
-tags=
+tags=pike-uc
 #tags=mitaka
 rsyncdest=
 rsyncport=22
diff --git a/scripts/centos.cfg b/scripts/centos.cfg
index 9298f1a..7dc8d99 100644
--- a/scripts/centos.cfg
+++ b/scripts/centos.cfg
@@ -1,11 +1,24 @@
-config_opts['root'] = 'dlrn-centos7-x86_64'
-config_opts['target_arch'] = 'x86_64'
-config_opts['legal_host_arches'] = ('x86_64',)
+config_opts['root'] = 'dlrn-centos7-ppc64le'
+config_opts['target_arch'] = 'ppc64le'
+config_opts['legal_host_arches'] = ('ppc64le',)
 config_opts['chroot_setup_cmd'] = 'install basesystem rpm-build python2-devel gcc make python-sqlalchemy python-webob ghostscript g
 config_opts['dist'] = 'el7'  # only useful for --resultdir variable subst
 config_opts['releasever'] = '7'
 config_opts['plugin_conf']['ccache_enable'] = False
 config_opts['priorities.conf'] = """
+config_opts['nosync'] = True
+config_opts['plugin_conf']['root_cache_opts']['compress_program'] = ""
+config_opts['plugin_conf']['root_cache_opts']['extension'] = ""
+config_opts['plugin_conf']['tmpfs_enable'] = True
+config_opts['plugin_conf']['tmpfs_opts'] = {}
+config_opts['plugin_conf']['tmpfs_opts']['required_ram_mb'] = 1024
+config_opts['plugin_conf']['tmpfs_opts']['max_fs_size'] = '50g'
+config_opts['plugin_conf']['tmpfs_opts']['mode'] = '0755'
+config_opts['plugin_conf']['tmpfs_opts']['keep_mounted'] = False
+config_opts['macros']['%__gzip'] = '/usr/bin/pigz'
+config_opts['macros']['%__bzip2'] = '/usr/bin/lbzip2'
+config_opts['http_proxy'] = 'http://127.0.0.1:3128'
+
 [main]
 enabled = 1
 check_obsoletes = 1
@@ -29,23 +42,30 @@ syslog_device=
 
 [base]
 name=BaseOS
-mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os
+#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=ppc64le&repo=os
+baseurl=http://mirror.centos.org/altarch/$releasever/os/$basearch/
 failovermethod=priority
 gpgkey=file:///etc/pki/mock/RPM-GPG-KEY-CentOS-7
+       file:///etc/pki/mock/RPM-GPG-KEY-CentOS-SIG-AltArch-7-$basearch
 gpgcheck=1
 
 [updates]
 name=updates
 enabled=1
-mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates
+#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=ppc64le&repo=updates
+baseurl=http://mirror.centos.org/altarch/$releasever/updates/$basearch/
 failovermethod=priority
 gpgkey=file:///etc/pki/mock/RPM-GPG-KEY-CentOS-7
+       file:///etc/pki/mock/RPM-GPG-KEY-CentOS-SIG-AltArch-7-$basearch
 gpgcheck=1
 
 [extras]
 name=extras
-mirrorlist=http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras
+#mirrorlist=http://mirrorlist.centos.org/?release=7&arch=ppc64le&repo=extras
+baseurl=http://mirror.centos.org/altarch/$releasever/extras/$basearch/
 failovermethod=priority
 gpgkey=file:///etc/pki/mock/RPM-GPG-KEY-EPEL-7
+       file:///etc/pki/mock/RPM-GPG-KEY-CentOS-SIG-AltArch-7-$basearch
 gpgcheck=1
+exclude=python-greenlet
 """
[hamzy@pkvmci853 DLRN]$ cat << __EOF__ | sudo tee -a /var/www/html/openstack-pike/delorean-deps.repo
[cloud7_openstack_common_candidate]
name=cloud7_openstack_common_candidate
baseurl=https://cbs.centos.org/repos/cloud7-openstack-common-candidate/ppc64le/os/
enabled=1
gpgcheck=0
cost=1

[cloud7_openstack_common_testing]
name=cloud7_openstack_common_testing
baseurl=https://cbs.centos.org/repos/cloud7-openstack-common-testing/ppc64le/os/
enabled=1
gpgcheck=0
cost=2

[cloud7_openstack_common_release]
name=cloud7_openstack_common_release
baseurl=https://cbs.centos.org/repos/cloud7-openstack-common-release/ppc64le/os/
enabled=1
gpgcheck=0
cost=3

[openstack_pike_ppc64le]
name=openstack_pike_ppc64le
baseurl=https://buildlogs.centos.org/centos/7/cloud/ppc64le/openstack-pike/
enabled=1
gpgcheck=0
cost=4

[openstack_pike_x8664]
name=openstack_pike_x8664
baseurl=https://buildlogs.centos.org/centos/7/cloud/x86_64/openstack-pike/
enabled=1
gpgcheck=0
cost=5

When dlrn builds a clean set of packages:

[hamzy@pkvmci853 ~]$ source ~/dlrn-venv/bin/activate
(dlrn-venv)[hamzy@pkvmci853 DLRN]$ rm -rf data/; /bin/rm commits.sqlite; dlrn --order --verbose-mock 2>&1 | tee output.dlrn

missing dlrn order packages

there are a couple of missing packages that are in cloud7-openstack-pike-xxx but are not built by dlrn:

python-psutil
openvswitch

python-openstackclient-3.11.0-0.20170720225953.c69304e

python-openstackclient-3.11.0-0.20170720225953.c69304e.el7.centos.src.rpm (https://github.com/openstack/python-openstackclient/commit/c69304e3d365dc2c67fab298eba0b9097d3819da)

has the following error during the build tests:

...
2017-07-20 19:02:22,741 INFO:dlrn-build:DEBUG: FAIL: openstackclient.tests.unit.integ.cli.test_shell.TestIntegShellCliPrecedenceOCC.test_shell_args_precedence_1
...
2017-07-20 19:02:22,748 INFO:dlrn-build:DEBUG: testtools.matchers._impl.MismatchError: 0 != 2
...

I believe that this problem has been fixed by the following defects:

- https://bugs.launchpad.net/os-client-config/+bug/1694937

 - https://trunk.rdoproject.org/centos7-master-head/d0/34/d034b980ab03bbd50d31ef8bd439bc80a91a7d77_b81ca2c8/rpmbuild.log

- https://bugs.launchpad.net/python-openstackclient/+bug/1703783

hacking dlrn

The following hack gets around the above two problems:

[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-openstack-pike; sudo /bin/rm -rf ${DIR}; sudo mkdir ${DIR}; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-psutil/5.2.2/1.el7/ppc64le/python2-psutil-5.2.2-1.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/python-psutil/5.2.2/1.el7/ppc64le/python-psutil-debuginfo-5.2.2-1.el7.ppc64le.rpm https://trunk.rdoproject.org/centos7-master/current-passed-ci/python-openstackclient-3.11.0-0.20170613232431.c69304e.el7.centos.noarch.rpm https://trunk.rdoproject.org/centos7-master/current-passed-ci/python-openstackclient-doc-3.11.0-0.20170613232431.c69304e.el7.centos.noarch.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-devel-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-central-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-common-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-docker-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-host-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-vtep-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-debuginfo-2.7.2-3.1fc27.el7.ppc64le.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ sudo vi /var/www/html/openstack-pike/delorean-deps.repo
...
[missing_openstack_pike]
name=missing_openstack_pike
baseurl=http://127.0.0.1/missing-openstack-pike/
enabled=1
gpgcheck=0
cost=6
...

Another run of dlrn will complete with the following problems:

2017-07-28 09:29:55,908 INFO:dlrn-build:DEBUG: FAIL: openstackclient.tests.unit.volume.test_find_resource.TestFindResourceVolumeSnapshots.test_find
...
2017-07-28 09:29:55,910 INFO:dlrn-build:DEBUG: TypeError: get() takes exactly 1 argument (2 given)
...
2017-07-28 09:30:07,136 ERROR:dlrn:Received exception Error in build_rpm_wrapper for python-openstackclient:
...
2017-07-28 16:19:14,750 INFO:dlrn-build:DEBUG: FAIL: troveclient.tests.test_shell.ShellTest.test_datastore_version_list
...
2017-07-28 16:19:14,756 INFO:dlrn-build:DEBUG: ValueError: Expecting a string None
...
2017-07-28 16:19:24,380 ERROR:dlrn:Received exception Error in build_rpm_wrapper for python-troveclient:
...
2017-07-29 01:20:24,068 INFO:dlrn-build:Error: No Package found for openstack-tripleo-ui-deps >= 7
...
2017-07-29 01:20:24,161 ERROR:dlrn:Received exception Error in build_rpm_wrapper for openstack-tripleo-ui:
...
2017-07-29 02:01:25,450 INFO:dlrn-build:DEBUG: + oslo-config-generator --config-file=etc/oslo-config-generator/zaqar.conf
2017-07-29 02:01:27,014 INFO:dlrn-build:DEBUG: Traceback (most recent call last):
...
2017-07-29 02:01:27,022 INFO:dlrn-build:DEBUG: ImportError: No module named trollius
...
2017-07-29 02:01:37,561 ERROR:dlrn:Received exception Error in build_rpm_wrapper for openstack-zaqar:
...
2017-07-29 05:07:07,660 INFO:dlrn:4 packages not built correctly: not updating the consistent symlink

openstack overcloud image build

First install diskimage-builder:

[hamzy@pkvmci853 ~]$ git clone git://git.openstack.org/openstack/diskimage-builder
[hamzy@pkvmci853 ~]$ (cd diskimage-builder/; sudo pip install --upgrade --force-reinstall --requirement requirements.txt)
[hamzy@pkvmci853 ~]$ (cd diskimage-builder/; sudo python setup.py install --force)

Then install the newly built DLRN repository:

[hamzy@pkvmci853 ~]$ cat << __EOF__ | sudo tee -a /etc/yum.repos.d/DLRN.repo
[DLRN]
name=DLRN
baseurl=http://127.0.0.1/DLRN/
enabled=1
gpgcheck=0
cost=1
__EOF__

Then install the cloud7-openstack-common repository. However, not every package has been promoted through the process, so you have to install the -candidate, -testing, and -release repositories:

[hamzy@pkvmci853 ~]$ cat << __EOF__ | sudo tee -a /etc/yum.repos.d/cloud7-openstack-common-candidate.repo
[cloud7_openstack_common_candidate]
name=cloud7_openstack_common_candidate
baseurl=https://cbs.centos.org/repos/cloud7-openstack-common-candidate/ppc64le/os/
enabled=1
gpgcheck=0
cost=2
__EOF__
[hamzy@pkvmci853 ~]$ cat << __EOF__ | sudo tee -a /etc/yum.repos.d/cloud7-openstack-common-testing.repo
[cloud7_openstack_common_testing]
name=cloud7_openstack_common_testing
baseurl=https://cbs.centos.org/repos/cloud7-openstack-common-testing/ppc64le/os/
enabled=1
gpgcheck=0
cost=3
__EOF__
[hamzy@pkvmci853 ~]$ cat << __EOF__ | sudo tee -a /etc/yum.repos.d/cloud7-openstack-common-release.repo
[cloud7_openstack_common_release]
name=cloud7_openstack_common_release
baseurl=https://cbs.centos.org/repos/cloud7-openstack-common-release/ppc64le/os/
enabled=1
gpgcheck=0
cost=4
__EOF__

Next install python-tripleoclient:

[hamzy@pkvmci853 ~]$ sudo yum install -y python-tripleoclient
...
Error: Package: python2-ironicclient-1.15.0-0.20170728223554.035aff2.el7.centos.noarch (DLRN)
           Requires: python-openstackclient >= 3.3.0
Error: Package: os-net-config-7.1.1-0.20170728133458.9b370b0.el7.centos.noarch (DLRN)
           Requires: python-pbr >= 2.0.0
           Available: python-pbr-1.8.1-2.el7.noarch (cloud7_openstack_common_release)
               python-pbr = 1.8.1-2.el7
           Installing: python2-pbr-1.10.0-1.el7.noarch (cloud7_openstack_common_candidate)
               python-pbr = 1.10.0-1.el7
Error: Package: python2-oslo-middleware-3.30.0-0.20170728125121.1cf39ee.el7.centos.noarch (DLRN)
           Requires: python-webob >= 1.7.0
           Available: python-webob-1.2.3-6.el7.noarch (base)
               python-webob = 1.2.3-6.el7
           Available: python-webob-1.4.1-2.el7.noarch (cloud7_openstack_common_release)
               python-webob = 1.4.1-2.el7
           Installing: python-webob-1.6.1-2.el7.noarch (cloud7_openstack_common_candidate)
               python-webob = 1.6.1-2.el7
Error: Package: python-ironic-inspector-client-1.12.0-0.20170729000832.045fd9e.el7.centos.noarch (DLRN)
           Requires: python-openstackclient >= 3.3.0
Error: Package: python2-mistralclient-3.1.0-0.20170728133024.9e6ff99.el7.centos.noarch (DLRN)
           Requires: python-openstackclient >= 1.5.0
Error: Package: os-net-config-7.1.1-0.20170728133458.9b370b0.el7.centos.noarch (DLRN)
           Requires: openvswitch
Error: Package: python-tripleoclient-7.2.0-0.20170729085127.11ad017.el7.centos.noarch (DLRN)
           Requires: python-openstackclient >= 3.3.0
...

Which encounters a number of missing packages. These are: python-openstackclient, python-pbr, python-webob, and openvswitch. These might be in cloud7-openstack-pike-candidate (which doesn't exist for ppc64le)?

So create another missing repository:

[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; sudo /bin/rm -rf ${DIR}; sudo mkdir ${DIR}; cd ${DIR}; for URL in https://trunk.rdoproject.org/centos7-master/current-passed-ci/python-openstackclient-3.11.0-0.20170613232431.c69304e.el7.centos.noarch.rpm https://trunk.rdoproject.org/centos7-master/current-passed-ci/python-openstackclient-doc-3.11.0-0.20170613232431.c69304e.el7.centos.noarch.rpm http://cbs.centos.org/repos/cloud7-openstack-pike-candidate/x86_64/os/Packages/python2-pbr-3.1.1-1.el7.noarch.rpm http://cbs.centos.org/kojifiles/packages/python-webob/1.7.2/1.el7/noarch/python-webob-1.7.2-1.el7.noarch.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-devel-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-central-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-common-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-docker-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-host-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-ovn-vtep-2.7.2-3.1fc27.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/ppc64le/openvswitch-debuginfo-2.7.2-3.1fc27.el7.ppc64le.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})

And add it locally:

[hamzy@pkvmci853 ~]$ cat << __EOF__ | sudo tee -a /etc/yum.repos.d/missing-overcloud.repo
[missing_overcloud]
name=missing_overcloud
baseurl=http://127.0.0.1/missing-overcloud/
enabled=1
gpgcheck=0
cost=5
__EOF__

And install python-tripleoclient.

[hamzy@pkvmci853 ~]$ sudo yum install -y python-tripleoclient

Hardcoded arch in overcloud-images.yaml

All of the files in /usr/share/openstack-tripleo-common/image-yaml/ have hard coded architecture amd64 entries. So you have to edit /usr/share/openstack-tripleo-common/image-yaml/overcloud-images.yaml before you can create overcloud image.

[hamzy@pkvmci853 ~]$ grep -r amd64 /usr/share/openstack-tripleo-common/
/usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images-centos7.yaml:    arch: amd64
/usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images-rhel7.yaml:    arch: amd64
/usr/share/openstack-tripleo-common/image-yaml/overcloud-hardened-images.yaml:    arch: amd64
/usr/share/openstack-tripleo-common/image-yaml/overcloud-images-centos7.yaml:    arch: amd64
/usr/share/openstack-tripleo-common/image-yaml/overcloud-images-centos7.yaml:    arch: amd64
/usr/share/openstack-tripleo-common/image-yaml/overcloud-images-rhel7.yaml:    arch: amd64
/usr/share/openstack-tripleo-common/image-yaml/overcloud-images-rhel7.yaml:    arch: amd64
/usr/share/openstack-tripleo-common/image-yaml/overcloud-odl-rhel7.yaml:         arch: amd64

Building the overcloud image

http://cloud.centos.org/altarch/7/images/ppc64le does not exist yet so you have to override DIB_CLOUD_IMAGES and DIB_CLOUD_IMAGES.

[hamzy@pkvmci853 ~]$ (export DIB_DEBUG_TRACE=1; export DIB_YUM_REPO_CONF="/etc/yum.repos.d/DLRN.repo /etc/yum.repos.d/cloud7-openstack-common-candidate.repo /etc/yum.repos.d/cloud7-openstack-common-testing.repo /etc/yum.repos.d/cloud7-openstack-common-release.repo"; export NODE_ARCH=ppc64le; export DIB_CLOUD_IMAGES="http://ftp.unicamp.br/pub/ppc64el/centos/7/images/"; export BASE_IMAGE_FILE="CentOS-7-ppc64le-GenericCloud-1611.qcow2"; openstack overcloud image build) 2>&1 | tee output.overcloud-image-build
...
Error: Package: pcs-0.9.158-4.el7.ppc64le (cloud7_openstack_common_candidate)
           Requires: python-clufter >= 0.59.0
Error: Package: rabbitmq-server-3.6.5-1.el7.noarch (cloud7_openstack_common_candidate)
           Requires: erlang-sd_notify
Error: Package: python2-heat-translator-0.9.0-0.20170728224807.4973b0c.el7.centos.noarch (DLRN)
           Requires: python-tosca-parser
Error: Package: 1:python-cinder-11.0.0-0.20170728214726.a2712ab.el7.centos.noarch (DLRN)
           Requires: python-psutil >= 3.2.2
           Installing: python-psutil-1.2.1-1.el7.ppc64le (cloud7_openstack_common_candidate)
               python-psutil = 1.2.1-1.el7
Error: Package: 1:openstack-dashboard-12.0.0-0.20170728202853.8320350.el7.centos.noarch (DLRN)
           Requires: python-django-compressor >= 2.0
           Installing: python-django-compressor-1.6-2.el7.noarch (cloud7_openstack_common_candidate)
               python-django-compressor = 1.6-2.el7
Error: Package: 1:python-neutron-11.0.0-0.20170729024032.d34aa00.el7.centos.noarch (DLRN)
           Requires: python-psutil >= 3.2.2
           Installing: python-psutil-1.2.1-1.el7.ppc64le (cloud7_openstack_common_candidate)
               python-psutil = 1.2.1-1.el7
Error: Package: python-tacker-0.7.1-0.20170729050401.52bdf32.el7.centos.noarch (DLRN)
           Requires: python-tosca-parser
Error: Package: 1:openstack-heat-common-9.0.0-0.20170728235148.93cbac4.el7.centos.noarch (DLRN)
           Requires: python-troveclient >= 2.2.0
Error: Package: 1:openstack-dashboard-12.0.0-0.20170728202853.8320350.el7.centos.noarch (DLRN)
           Requires: python-troveclient >= 1.0.0
Error: Package: 1:openstack-dashboard-12.0.0-0.20170728202853.8320350.el7.centos.noarch (DLRN)
           Requires: python-XStatic-roboto-fontface >= 0.5.0.0
           Available: python2-XStatic-roboto-fontface-0.4.3.2-8.el7.noarch (cloud7_openstack_common_candidate)
               python-XStatic-roboto-fontface = 0.4.3.2-8.el7
Error: Package: 1:openstack-neutron-openvswitch-11.0.0-0.20170729024032.d34aa00.el7.centos.noarch (DLRN)
           Requires: python-openvswitch >= 2.6.1
Error: Package: openstack-sahara-ui-7.0.0-0.20170729042222.9a92bcd.el7.centos.noarch (DLRN)
           Requires: python-django-compressor >= 2.0
           Installing: python-django-compressor-1.6-2.el7.noarch (cloud7_openstack_common_candidate)
               python-django-compressor = 1.6-2.el7
Error: Package: 1:python-neutron-11.0.0-0.20170729024032.d34aa00.el7.centos.noarch (DLRN)
           Requires: python-ryu >= 4.11
Error: Package: 1:openstack-dashboard-12.0.0-0.20170728202853.8320350.el7.centos.noarch (DLRN)
           Requires: python-django-compressor >= 2.0
           Available: python-django-compressor-1.6-2.el7.noarch (cloud7_openstack_common_candidate)
               python-django-compressor = 1.6-2.el7
Error: Package: openstack-congress-6.0.0-0.20170728225235.afd02fb.el7.centos.noarch (DLRN)
           Requires: python-tosca-parser
...

So we are still missing packages...

python-clufter

Exists in http://vault.centos.org/7.3.1611/os/Source/SPackages/clufter-0.59.5-2.el7.src.rpm

Building for ppc64le:

[hamzy@pkvmci853 ~]$ wget --quiet http://vault.centos.org/7.3.1611/os/Source/SPackages/clufter-0.59.5-2.el7.src.rpm
[hamzy@pkvmci853 ~]$ rpm -i clufter-0.59.5-2.el7.src.rpm
[hamzy@pkvmci853 ~]$ vi ~/rpmbuild/SPECS/clufter.spec
...
Release:        3%{?dist}
...
ExclusiveArch: i686 x86_64 s390x ppc64le
...
[hamzy@pkvmci853 ~]$ rpmbuild -bs --define "dist .el7" ~/rpmbuild/SPECS/clufter.spec
Wrote: /home/hamzy/rpmbuild/SRPMS/clufter-0.59.5-3.el7.src.rpm
[hamzy@pkvmci853 ~]$ cbs build --scratch cloud7-openstack-common-el7 ~/rpmbuild/SRPMS/clufter-0.59.5-3.el7.src.rpm
Uploading srpm: /home/hamzy/rpmbuild/SRPMS/clufter-0.59.5-3.el7.src.rpm
[====================================] 100% 00:00:00 268.22 KiB   1.14 MiB/sec
Created task: 198591
Task info: https://cbs.centos.org/koji/taskinfo?taskID=198591
...
198591 build (cloud7-openstack-common-el7, clufter-0.59.5-3.el7.src.rpm) completed successfully

successfully completes.

We decided since the upstream version is already fixed here https://git.centos.org/blob/rpms!clufter.git/c7/SPECS!clufter.spec#L45 then we should just do an arch-override build.

[hamzy@pkvmci853 ~]$ vi ~/rpmbuild/SPECS/clufter.spec
[hamzy@pkvmci853 ~]$ rpmbuild -bs --define "dist .el7" ~/rpmbuild/SPECS/clufter.spec
Wrote: /home/hamzy/rpmbuild/SRPMS/clufter-0.59.5-2.el7.src.rpm
[hamzy@pkvmci853 ~]$ cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 ~/rpmbuild/SRPMS/clufter-0.59.5-2.el7.src.rpm
...
Created task: 201516
Task info: https://cbs.centos.org/koji/taskinfo?taskID=201516
...
201516 build (cloud7-openstack-common-el7, clufter-0.59.5-2.el7.src.rpm) completed successfully
<bstinson> hamzy: for every arch _but_ ppc64 clufter comes from the CentOS distro, so there's not a build in CBS for it. if you want clufter in the common tags for ppc64, you'll need to do a non-scratch + arch-override build
<bstinson> since there are noarch bits mixed in here, i would actually recommend waiting a little bit until CentOS 7.1708 is released
<TrevorH> akak 7.4 to the rest of  us

FINISHED: erlang-sd_notify

Building for ppc64le:

[hamzy@pkvmci853 ~]$ wget --quiet http://cbs.centos.org/kojifiles/packages/erlang-sd_notify/0.1/9.el7/src/erlang-sd_notify-0.1-9.el7.src.rpm
[hamzy@pkvmci853 ~]$ cbs build --scratch --arch-override=ppc64le cloud7-openstack-common-el7 erlang-sd_notify-0.1-9.el7.src.rpm
...
Created task: 201501
Task info: https://cbs.centos.org/koji/taskinfo?taskID=201501
...
201501 build (cloud7-openstack-common-el7, erlang-sd_notify-0.1-9.el7.src.rpm) completed successfully

successfully completes.

python-tosca-parser

python-tosca-parser-0.7.0-1.el7 exists here https://cbs.centos.org/koji/buildinfo?buildID=15326 and is currently tagged as cloud7-openstack-pike-candidate

python-psutil

python-psutil-5.2.2-1.el7 exists here https://cbs.centos.org/koji/buildinfo?buildID=17363 and is currently tagged as cloud7-openstack-pike-candidate

python-django-compressor

python-django-compressor-2.0-1.el7 exists here https://cbs.centos.org/koji/buildinfo?buildID=11184 and is currently tagged as cloud7-openstack-pike-candidate

python-troveclient

python-troveclient-2.8.0-1.el7 exists here https://cbs.centos.org/koji/buildinfo?buildID=15523 but is not currently tagged as cloud7-openstack-pike-candidate. However, it exists for -ocata, -newton, and -mitaka.

python-XStatic-roboto-fontface

python-XStatic-roboto-fontface-0.5.0.0-1.el7 exists here https://cbs.centos.org/koji/buildinfo?buildID=14533 and is currently tagged as cloud7-openstack-pike-candidate

python-ryu

python-ryu-4.15-1.el7 exists here https://cbs.centos.org/koji/buildinfo?buildID=17919 and is currently tagged as cloud7-openstack-pike-candidate

python-murano-pkg-check

python-murano-pkg-check-0.3.0-2.el7 exists here https://cbs.centos.org/koji/buildinfo?buildID=15689 and is currently tagged as cloud7-openstack-pike-candidate

python-routes

python-routes-2.4.1-1.el7 exists here https://cbs.centos.org/koji/buildinfo?buildID=17180 and is currently tagged as cloud7-openstack-pike-candidate

adding missing packages to missing-overcloud repo

Downloading all of the above packages into the missing-overcloud repository:

[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/work/tasks/8593/198593/clufter-cli-0.59.5-3.el7.noarch.rpm http://cbs.centos.org/kojifiles/work/tasks/8593/198593/clufter-debuginfo-0.59.5-3.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/work/tasks/8593/198593/clufter-lib-ccs-0.59.5-3.el7.noarch.rpm http://cbs.centos.org/kojifiles/work/tasks/8593/198593/clufter-lib-general-0.59.5-3.el7.noarch.rpm http://cbs.centos.org/kojifiles/work/tasks/8593/198593/clufter-lib-pcs-0.59.5-3.el7.noarch.rpm http://cbs.centos.org/kojifiles/work/tasks/8593/198593/python-clufter-0.59.5-3.el7.ppc64le.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/work/tasks/8590/198590/erlang-sd_notify-0.1-9.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/work/tasks/8590/198590/erlang-sd_notify-debuginfo-0.1-9.el7.ppc64le.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-tosca-parser/0.7.0/1.el7/noarch/python2-tosca-parser-0.7.0-1.el7.noarch.rpm http://cbs.centos.org/kojifiles/packages/python-tosca-parser/0.7.0/1.el7/noarch/python2-tosca-parser-doc-0.7.0-1.el7.noarch.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-psutil/5.2.2/1.el7/ppc64le/python2-psutil-5.2.2-1.el7.ppc64le.rpm http://cbs.centos.org/kojifiles/packages/python-psutil/5.2.2/1.el7/x86_64/python-psutil-debuginfo-5.2.2-1.el7.x86_64.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-django-compressor/2.0/1.el7/noarch/python-django-compressor-2.0-1.el7.noarch.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-troveclient/2.8.0/1.el7/noarch/python2-troveclient-2.8.0-1.el7.noarch.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-XStatic-roboto-fontface/0.5.0.0/1.el7/noarch/python2-XStatic-roboto-fontface-0.5.0.0-1.el7.noarch.rpm http://cbs.centos.org/kojifiles/packages/python-XStatic-roboto-fontface/0.5.0.0/1.el7/noarch/roboto-fontface-common-0.5.0.0-1.el7.noarch.rpm http://cbs.centos.org/kojifiles/packages/python-XStatic-roboto-fontface/0.5.0.0/1.el7/noarch/roboto-fontface-fonts-0.5.0.0-1.el7.noarch.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-ryu/4.15/1.el7/noarch/python-ryu-common-4.15-1.el7.noarch.rpm http://cbs.centos.org/kojifiles/packages/python-ryu/4.15/1.el7/noarch/python2-ryu-4.15-1.el7.noarch.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-murano-pkg-check/0.3.0/2.el7/noarch/python-murano-pkg-check-doc-0.3.0-2.el7.noarch.rpm http://cbs.centos.org/kojifiles/packages/python-murano-pkg-check/0.3.0/2.el7/noarch/python2-murano-pkg-check-0.3.0-2.el7.noarch.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/noarch/openvswitch-test-2.7.2-3.1fc27.el7.noarch.rpm http://cbs.centos.org/kojifiles/packages/openvswitch/2.7.2/3.1fc27.el7/noarch/python2-openvswitch-2.7.2-3.1fc27.el7.noarch.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})
[hamzy@pkvmci853 DLRN]$ (DIR=/var/www/html/missing-overcloud; cd ${DIR}; for URL in http://cbs.centos.org/kojifiles/packages/python-routes/2.4.1/1.el7/noarch/python-routes-2.4.1-1.el7.noarch.rpm; do sudo wget --quiet ${URL}; done; sudo createrepo .; sudo chcon -R system_u:object_r:httpd_sys_content_t:s0 ${DIR})

Building the overcloud image take 2

Running "openstack overcloud image build" again comes up with a greenlet conflict.

[hamzy@pkvmci853 ~]$ (export DIB_DEBUG_TRACE=1; export DIB_YUM_REPO_CONF="/etc/yum.repos.d/DLRN.repo /etc/yum.repos.d/cloud7-openstack-common-candidate.repo /etc/yum.repos.d/cloud7-openstack-common-testing.repo /etc/yum.repos.d/cloud7-openstack-common-release.repo /etc/yum.repos.d/missing-overcloud.repo"; export NODE_ARCH=ppc64le; export DIB_CLOUD_IMAGES="http://ftp.unicamp.br/pub/ppc64el/centos/7/images/"; export BASE_IMAGE_FILE="CentOS-7-ppc64le-GenericCloud-1611.qcow2"; openstack overcloud image build) 2>&1 | tee output.overcloud-image-build
...
Transaction check error:
  file /usr/lib64/python2.7/site-packages/greenlet.so conflicts between attempted installs of python-greenlet-0.4.9-1.el7.centos.ppc
64le and python2-greenlet-0.4.9-1.el7.ppc64le
...

This is fixed by the following hack:

[hamzy@pkvmci853 ~]$ (cd diskimage-builder; cat << '__EOF__' | git am -)
From b3bfe84ca40e70bce5609e274050e7e23bef00b9 Mon Sep 17 00:00:00 2001
From: Mark Hamzy <hamzy@us.ibm.com>
Date: Tue, 1 Aug 2017 12:44:12 -0500
Subject: [PATCH] fix python-greenlet conflict

---
 diskimage_builder/elements/yum/extra-data.d/99-yum-repo-conf | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/diskimage_builder/elements/yum/extra-data.d/99-yum-repo-conf b/diskimage_builder/elements/yum/extra-data.d/99-yum-repo-conf
index b5b6e98..9fb27d0 100755
--- a/diskimage_builder/elements/yum/extra-data.d/99-yum-repo-conf
+++ b/diskimage_builder/elements/yum/extra-data.d/99-yum-repo-conf
@@ -25,3 +25,5 @@ for file in $DIB_YUM_REPO_CONF; do
     sudo cp -L -f $file $TMP_MOUNT_PATH/etc/yum.repos.d

 done
+
+echo 'exclude=python-greenlet*' | sudo tee -a $TMP_MOUNT_PATH/etc/yum.repos.d/CentOS-Base.repo
--
1.8.3.1

__EOF__