On Fri, Nov 13, 2009 at 01:09:14PM -0500, Mike McLean wrote:
Perhaps since RHEL5 is something of an important platform for mock we should consider making this codepath conditional, or otherwise fix this without forking.
Hello Mike,
thanks for getting the new release of mock out, also for the pykickstart commit to keep working with older python releases. I've moved to newest rpms and besides mock I've also tested koji a bit more now. Some recompile tests with kernel,glibc,memtest86+ and a dozen other rpms did all work ok, so the special koji config steps should be complete now...
(Also Michal Hlavinka has merged in some bits for dovecot to have newest Fedora Rawhide rpms compile on RHEL5, so overall it's been a good week to reduce extra patches for me.)
thanks,
Florian La Roche
Hello,
I'm also going to update all my C5p buildservers to mock-0.9.19 and try to build the needed stuff upon Python 2.4 (-devel) which is normally shipped with [base]. Is it right that I have to update Python to 2.5 (shortly for building) to get the missing ffi member (see below) accessed that seems to be in there?
I try to build the python-ctypes-1.0.2-2.el5 version. Does anyone had the same issue? What python-ctypes version do you use or prefer?
Cheers, Brian.
Buildlog (rpmbuild --rebuild python-ctypes-1.0.2-2.el5.src.rpm):
Installing python-ctypes-1.0.2-2.el5.src.rpm warning: InstallSourcePackage: Header V3 DSA signature: NOKEY, key ID 217521f6 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.21226 + umask 022 + cd /usr/src/redhat/BUILD + LANG=C + export LANG + unset DISPLAY + cd /usr/src/redhat/BUILD + rm -rf ctypes-1.0.2 + tar -xf - + /bin/gzip -dc /usr/src/redhat/SOURCES/ctypes-1.0.2.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd ctypes-1.0.2 ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chown -Rhf root . ++ /usr/bin/id -u + '[' 0 = 0 ']' + /bin/chgrp -Rhf root . + /bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.92364 + umask 022 + cd /usr/src/redhat/BUILD + cd ctypes-1.0.2 + LANG=C + export LANG + unset DISPLAY + CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -march=armv5te' + /usr/bin/python -c 'import setuptools; execfile("setup.py")' build running build running build_py creating build creating build/lib.linux-armv5tejl-2.4 creating build/lib.linux-armv5tejl-2.4/ctypes copying ctypes/__init__.py -> build/lib.linux-armv5tejl-2.4/ctypes copying ctypes/_endian.py -> build/lib.linux-armv5tejl-2.4/ctypes copying ctypes/util.py -> build/lib.linux-armv5tejl-2.4/ctypes copying ctypes/wintypes.py -> build/lib.linux-armv5tejl-2.4/ctypes creating build/lib.linux-armv5tejl-2.4/ctypes/macholib copying ctypes/macholib/dylib.py -> build/lib.linux-armv5tejl-2.4/ctypes/macholib copying ctypes/macholib/__init__.py -> build/lib.linux-armv5tejl-2.4/ctypes/macholib copying ctypes/macholib/dyld.py -> build/lib.linux-armv5tejl-2.4/ctypes/macholib copying ctypes/macholib/framework.py -> build/lib.linux-armv5tejl-2.4/ctypes/macholib creating build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_libc.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_find.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/runtests.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_unicode.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_repr.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_simplesubclasses.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_byteswap.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_stringptr.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_funcptr.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_functions.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_numbers.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/__init__.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_macholib.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_array_in_pointer.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_callbacks.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_random_things.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_checkretval.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_slicing.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_incomplete.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_bitfields.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_cfuncs.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_arrays.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_python_api.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_struct_fields.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_prototypes.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_pointers.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_errcheck.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_strings.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_parameters.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_structures.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_win32.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_unaligned_structures.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_keeprefs.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_cast.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_refcounts.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_sizes.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_anon.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_as_parameter.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_varsize_struct.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_buffers.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_returnfuncptrs.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_loading.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_values.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_objects.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_integers.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_memfunctions.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_init.py -> build/lib.linux-armv5tejl-2.4/ctypes/test copying ctypes/test/test_internals.py -> build/lib.linux-armv5tejl-2.4/ctypes/test running build_ext creating build/temp.linux-armv5tejl-2.4 creating build/temp.linux-armv5tejl-2.4/libffi Configuring static FFI library: cd build/temp.linux-armv5tejl-2.4/libffi && env CFLAGS='' '/usr/src/redhat/BUILD/ctypes-1.0.2/source/libffi/configure' checking build system type... armv5tejl-unknown-linux-gnu checking host system type... armv5tejl-unknown-linux-gnu checking target system type... armv5tejl-unknown-linux-gnu checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... 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 ANSI C... none needed checking how to run the C preprocessor... gcc -E checking for egrep... 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 sys/mman.h usability... yes checking sys/mman.h presence... yes checking for sys/mman.h... yes checking for mmap... yes checking for sys/mman.h... (cached) yes checking for mmap... (cached) yes checking whether read-only mmap of a plain file works... yes checking whether mmap from /dev/zero works... yes checking for MAP_ANON(YMOUS)... yes checking whether mmap with MAP_ANON(YMOUS) works... yes checking for ANSI C header files... (cached) yes checking for memcpy... yes checking for working alloca.h... yes checking for alloca... yes checking for double... yes checking size of double... 8 checking for long double... yes checking size of long double... 8 checking whether byte ordering is bigendian... no checking whether .eh_frame section should be read-only... no checking for __attribute__((visibility("hidden")))... yes configure: creating ./config.status config.status: creating include/ffi.h config.status: creating fficonfig.py config.status: creating fficonfig.h config.status: linking /usr/src/redhat/BUILD/ctypes-1.0.2/source/libffi/src/arm/ffitarget.h to include/ffitarget.h config.status: linking /usr/src/redhat/BUILD/ctypes-1.0.2/source/libffi/include/ffi_common.h to include/ffi_common.h config.status: executing include commands config.status: executing src commands building '_ctypes' extension creating build/temp.linux-armv5tejl-2.4/source creating build/temp.linux-armv5tejl-2.4/usr creating build/temp.linux-armv5tejl-2.4/usr/src creating build/temp.linux-armv5tejl-2.4/usr/src/redhat creating build/temp.linux-armv5tejl-2.4/usr/src/redhat/BUILD creating build/temp.linux-armv5tejl-2.4/usr/src/redhat/BUILD/ctypes-1.0.2 creating build/temp.linux-armv5tejl-2.4/usr/src/redhat/BUILD/ctypes-1.0.2/source creating build/temp.linux-armv5tejl-2.4/usr/src/redhat/BUILD/ctypes-1.0.2/source/libffi creating build/temp.linux-armv5tejl-2.4/usr/src/redhat/BUILD/ctypes-1.0.2/source/libffi/src creating build/temp.linux-armv5tejl-2.4/usr/src/redhat/BUILD/ctypes-1.0.2/source/libffi/src/arm gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -march=armv5te -D_GNU_SOURCE -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -march=armv5te -fPIC -Ibuild/temp.linux-armv5tejl-2.4/libffi/include -Ibuild/temp.linux-armv5tejl-2.4/libffi -I/usr/src/redhat/BUILD/ctypes-1.0.2/source/libffi/src -I/usr/include/python2.4 -c source/_ctypes.c -o build/temp.linux-armv5tejl-2.4/source/_ctypes.o In file included from source/_ctypes.c:126: source/ctypes.h:71: error: expected specifier-qualifier-list before 'ffi_closure' source/_ctypes.c: In function 'CFuncPtr_clear': source/_ctypes.c:3422: error: 'ffi_info' has no member named 'pcl' error: command 'gcc' failed with exit status 1 error: Bad exit status from /var/tmp/rpm-tmp.92364 (%build)
RPM build errors: InstallSourcePackage: Header V3 DSA signature: NOKEY, key ID 217521f6 Bad exit status from /var/tmp/rpm-tmp.92364 (%build)
Hello Brian,
On Sun, Nov 22, 2009 at 11:29:20PM +0100, Brian Schueler wrote:
Hello,
I'm also going to update all my C5p buildservers to mock-0.9.19
Mock works fine for x86 and x86_64 to re-compile python-ctypes from EPEL. No problems there at all.
and try to build the needed stuff upon Python 2.4 (-devel) which is normally shipped with [base]. Is it right that I have to update Python to 2.5 (shortly for building) to get the missing ffi member (see below) accessed that seems to be in there?
Your question is about porting CentOS to a completely non-supported platform. The mainframe port is prepared from Red Hat and thus creating a CentOS Mainframe release should be rather straight-forward. Arm is even more outside and a completely new port. You need to decide if CentOS5 is the right start or if Fedora-arm is better suited. Changing something like python to a new major version will for sure also give quite a few headaches...
regards,
Florian La Roche
Hi Florian,
I know the little restrictions (like exclusivearch), but using mock-utils' build-from-scratch powers, it's much better to support the 'outside platform'. I see that only what outside is - is the kernel and the compiler flags. Each of the platforms (NSLU2, Sheevaplug, HTC-MSM and TI-OMAP) needs special Kernels because they are more or less types of complete Systems-on-Chip. The userland is always the same and tuned for v5te - this is the interesing thing to rebuild CentOS. This platform is also 32-bit and little-endian, so it's not far away from i386. You're right with Fedora-arm, that's why I also started with FC6-arm and let it convert to CentOS-5. FC-arm is very useful to understand what the ARM specific patches are standing for.
I know that C5p is not binary compatible to anything - but is is nice to have the rock-solid software for the new platforms. (PowerPC-32 was much easier and I will probably be there at LinuxTag 2010 - my G4 Mac (400MHz) has still CentOS 5.2 and is slowly turning to 5.4).
I've targeted the Python issue on ARM - there were branches in the .spec which gone the wrong way. So I had to define macros for the python package.
B.S.