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