By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.
Bug 929 - Build issue: tdesdk conflicts with tdesvn - share/services/svn+*.protocol
Summary: Build issue: tdesdk conflicts with tdesvn - share/services/svn+*.protocol
Status: NEW
Alias: None
Product: TDE
Classification: Unclassified
Component: tdesdk (show other bugs)
Version: R14.0.x [Trinity]
Hardware: All Linux
: P5 major
Assignee: Timothy Pearson
URL:
Depends on:
Blocks:
 
Reported: 2012-03-24 23:35 CDT by David C. Rankin
Modified: 2018-05-27 10:59 CDT (History)
2 users (show)

See Also:
Compiler Version:
TDE Version String:
Application Version:
Application Name:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David C. Rankin 2012-03-24 23:35:17 CDT
The following files are provided by both tdesdk and tdesvn:

/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

tdesvn needs to provide the files if tdesdk isn't installed and vice-versa, but they both can't provide them...

I don't know if conditional checks can be added to the configure/CMake files (probably not since neither are dependencies), or if this is something that has to be handled on the install side (which other than forcing an overwrite, I'm not aware of a way to handle).

How should this be solved?
Comment 1 David C. Rankin 2012-03-25 00:43:13 CDT
Additional investigation shows the files are NOT 1-for-1 replacements for each other. The primary difference (aside from translation Description differences) is that tdesdk files use 'exec=kio_svn' while tdesvn files use 'exec=kio_ksvn'. So it looks like some name changing was done somewhere along the way. 

  tdesvn provides:

/opt/trinity/share/services/ksvn+file.protocol
/opt/trinity/share/services/ksvn+http.protocol
/opt/trinity/share/services/ksvn+https.protocol
/opt/trinity/share/services/ksvn+ssh.protocol
/opt/trinity/share/services/ksvn.protocol
/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

  while tdesdk provides:

/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

  Here is a look at the differences between the same files provided by tdesdk and tdesvn:

diff tdesdkSvcs/svn+file.protocol tdesvnSvcs/svn+file.protocol

2c2
< exec=kio_svn
---
> exec=kio_ksvn
11a12
> deleteRecursive=true

diff tdesdkSvcs/svn+http.protocol tdesvnSvcs/svn+http.protocol

2c2
< exec=kio_svn
---
> exec=kio_ksvn
11a12
> deleteRecursive=true

diff tdesdkSvcs/svn+https.protocol tdesvnSvcs/svn+https.protocol

2c2
< exec=kio_svn
---
> exec=kio_ksvn
11a12
> deleteRecursive=true

diff tdesdkSvcs/svn.protocol tdesvnSvcs/svn.protocol

2c2
< exec=kio_svn
---
> exec=kio_ksvn
11a12
> deleteRecursive=true
24d24

diff tdesdkSvcs/svn+ssh.protocol tdesvnSvcs/svn+ssh.protocol

2c2
< exec=kio_svn
---
> exec=kio_ksvn
11a12
> deleteRecursive=true

  I don't know the significance of the differences yet, but I don't think I could just force and overwrite without causing further issues.
Comment 2 Francois Andriot 2012-08-05 05:37:21 CDT
Hello, on RHEL build, I'm using the "alternatives" mechanism to handle these files.

1) In both tdesdk and tdesvn, rename the conflicting files with a different suffix that helps to identify them . The resulting files do not conflict anymore:
Ex in tdesdk: mv svn+file.protocol svn+file.protocol_tdesdk
Ex in tdesvn: mv svn+file.protocol svn+file.protocol_tdesvn


2) In both packages post-installation, use the alternatives command to installs one of these files as current version.

In tdesvn postinstall (set priority 20, higher than tdesdk):
  alternatives --install \
    /opt/trinity/share/services/svn+file.protocol \
    svn+file.protocol \
    /opt/trinity/share/services/svn+file.protocol_tdesvn \
    20


In tdesdk postinstall (set priority 10, lower than tdesvn):
  alternatives --install \
    /opt/trinity/share/services/svn+file.protocol \
    svn+file.protocol \
    /opt/trinity/share/services/svn+file.protocol_tdesdk \
    10


And the tdesvn postuninstall
    alternatives --remove \
      svn+file.protocol \
      /opt/trinity/share/services/svn+file.protocol_tdesvn


And the tdesdk postuninstall
    alternatives --remove \
      svn+file.protocol \
      /opt/trinity/share/services/svn+file.protocol_tdesdk