On 03/25/2012 01:24 PM, David C. Rankin wrote:
On 03/25/2012 06:55 AM, Matthew Monaco wrote:
On 03/24/2012 10:44 PM, David C. Rankin wrote:
Guys,
I need to know if makepkg/PKGBUILD can handle a check to see whether the same files provided by two different packages (which are not dependencies of each other) exist in the file system to prevent an installation failure due to conflicting files?
The situation is this. Both tdesdk and tdesvn both provide:
/opt/trinity/share/services/svn+file.protocol /opt/trinity/share/services/svn+http.protocol /opt/trinity/share/services/svn+https.protocol /opt/trinity/share/services/svn+ssh.protocol /opt/trinity/share/services/svn.protocol
Since neither package is a dependency for the other, tdesvn needs to provide the files if tdesdk isn't installed and tdesdk needs to provide the files if tdesvn isn't installed, but avoid the conflict if both are installed. Is this possible?
If they were dependencies of each other, then that would be an easy fix. If both were assured to be installed, that would also be an easy fix by rm'ing the files from one package or the other, but in the case when either or both can be installed -- How do you handle this?? Thanks for any ideas you have.
how about tdeproto or the like?
Martin, Baho, Matthew,
That is exactly what I will do. Hmm.. How would I do that? Could I just include another package() statement in the pkgbuild that simply packages those files? I've worked with sip which creates a split package, but it includes a completely separate build() as well as package. tdesdk is a huge file that I would not want to have to cp and build twice to get a split package with just 5 files.
Is there a go-by PKGBUILD that anyone can think of that does just that?
1. determine if the files are exactly the same. 2. build the first package and rm the files in question. ( PKGBUILD 1 ) / ( package() {} 1 ) 3. cp PKBUILD 1 to PKGBUILD 2 4. edit PKGBUILD 2, pkgname change and rm everything except the proto files. ( package() [] 2 ) Steps 2 to 4 could be accomplished in a split build if you wanted to do that, just adjust the build() / package() functions accordingly.