On 23/03/12 01:04, David C. Rankin wrote:
Guys,
I'm having difficulty with makechrootpkg not allowing replacement of current packages in the chroot even though then new packages are built with provides() and replaces() to handle the conflict.
Specifically the trinity project provides source for sip4 that has additional hooks in the package for the tqt interface. I have modeled the PKGBUILD on the existing sip PKGBUILD to build split packages for both python and python2. In the build I call my version of sip 'tde-sip' and my version of python2-sip 'tde-sip4-tqt'. In the split package build I do:
package_tde-sip() { pkgdesc="The TDE SIP C/C++ Bindings Generator for Python3 - Trinity upstream GIT version" depends=('python') provides=('sip' 'python-sip') replaces=('sip' 'python-sip')
cd "${srcdir}/sipPy3" make DESTDIR="${pkgdir}" install
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" }
However, when I go to install the package in the chroot with:
sudo makechrootpkg -r $CHROOT -I tde-sip-3513_tqt-2-x86_64.pkg.tar.xz
I get:
error: failed to commit transaction (conflicting files) tde-sip: /usr/bin/sip exists in filesystem tde-sip: /usr/include/python3.2mu/sip.h exists in filesystem tde-sip: /usr/lib/python3.2/site-packages/sip.so exists in filesystem tde-sip: /usr/lib/python3.2/site-packages/sipconfig.py exists in filesystem tde-sip: /usr/lib/python3.2/site-packages/sipdistutils.py exists in filesystem Errors occurred, no packages were upgraded.
The same error occurs with the python2-sip replacement. I know those files conflict with files in the tde-sip package. That's why I did provides=('sip' 'python-sip') and replaces=('sip' 'python-sip').
Is this just one of the limitations of the chroot install process? Is the solution to start-over by cleaning the chroot and insure that tde-sip is installed before any other package that pulls sip in as a dependency? Thanks for any help you can offer. How the provides() and replaces() work in the archroot is a bit of a mystery to me.
provides/replaces/conflicts usually come in a set. Allan