Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#54168 closed defect (fixed)

sigil depends on xercesc3 which conflicts with xercesc

Reported by: cederom (CeDeROM) Owned by: mf2k (Frank Schima)
Priority: Normal Milestone:
Component: ports Version: 2.4.1
Keywords: Cc: chris.ridd@…, scantor (Scott Cantor), nerdling (Jeremy Lavergne)
Port: sigil xercesc xercesc3

Description

bash-3.2# port install sigil
--->  Computing dependencies for sigil
Error: Can't install xercesc3 because conflicting ports are active: xercesc
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port sigil failed

Change History (16)

comment:1 Changed 7 years ago by cederom (CeDeROM)

xercesc is a dependency of FreeCAD..

comment:2 Changed 7 years ago by cederom (CeDeROM)

bash-3.2# port install sigil
--->  Computing dependencies for sigil
The following dependencies will be installed:
 hunspell
 xercesc3

comment:3 Changed 7 years ago by cederom (CeDeROM)

Removing xercesc in favor of xercesc3 for Sigil, breaks FreeCAD dependency..

$ FreeCAD
dyld: Library not loaded: /opt/local/lib/libxerces-c.28.dylib
  Referenced from: /opt/local/bin/FreeCAD
  Reason: image not found
Abort trap: 6

comment:4 Changed 7 years ago by cederom (CeDeROM)

bash-3.2# port install sigil
...
The following ports will be rebuilt:
 avidemux @2.6.10+aac+gettext+lame+sqlite+twolame+x264
 gstreamer1-gst-plugins-good @1.11.1+pulseaudio
 gstreamer1-gst-plugins-bad @1.11.1
 webkit2-gtk @2.14.2+gtk2+x11
 libspectre @0.2.8
 ruby @1.8.7-p374
 FreeCAD @0.16+gcc6
 qt5-qtbase @5.7.1+openssl
Continue? [Y/n]:
--->  Computing dependencies for avidemux
--->  Cleaning avidemux
--->  Computing dependencies for gstreamer1-gst-plugins-good
--->  Dependencies to be installed: gstreamer1-gst-plugins-base
--->  Activating gstreamer1-gst-plugins-base @1.12.0_0+ogg+x11
Error: Failed to activate gstreamer1-gst-plugins-base: Image error: /opt/local/lib/gstreamer-1.0/libgstrawparse.so is being used by the active gstreamer1-gst-plugins-bad port.  Please deactivate this port first, or use 'port -f activate gstreamer1-gst-plugins-base' to force the activation.
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_gnome_gstreamer1-gst-plugins-base/gstreamer1-gst-plugins-base/main.log for details.
Error: rev-upgrade failed: Error rebuilding gstreamer1-gst-plugins-good
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
--->  Some of the ports you installed have notes:
  hunspell has the following notes:
    You must install (at least) one of the language dictionaries after installing this port in order for it to work.

comment:5 Changed 7 years ago by cederom (CeDeROM)

bash-3.2# port uninstall gstreamer1-gst-plugins-good
The following versions of gstreamer1-gst-plugins-good are currently installed:
 1) gstreamer1-gst-plugins-good @1.8.2_0+pulseaudio
 2) gstreamer1-gst-plugins-good @1.10.0_0+pulseaudio
 3) gstreamer1-gst-plugins-good @1.10.1_0+pulseaudio
 4) gstreamer1-gst-plugins-good @1.10.2_0+pulseaudio
 5) gstreamer1-gst-plugins-good @1.11.1_1+pulseaudio (active)
Enter option(s) [1-5/all]: 1
--->  Uninstalling gstreamer1-gst-plugins-good @1.8.2_0+pulseaudio
bash-3.2# port uninstall gstreamer1-gst-plugins-good
The following versions of gstreamer1-gst-plugins-good are currently installed:
 1) gstreamer1-gst-plugins-good @1.10.0_0+pulseaudio
 2) gstreamer1-gst-plugins-good @1.10.1_0+pulseaudio
 3) gstreamer1-gst-plugins-good @1.10.2_0+pulseaudio
 4) gstreamer1-gst-plugins-good @1.11.1_1+pulseaudio (active)
Enter option(s) [1-4/all]: 1-3
--->  Uninstalling gstreamer1-gst-plugins-good @1.10.0_0+pulseaudio
--->  Uninstalling gstreamer1-gst-plugins-good @1.10.1_0+pulseaudio
--->  Uninstalling gstreamer1-gst-plugins-good @1.10.2_0+pulseaudio
bash-3.2# port install sigil
--->  Computing dependencies for sigil
--->  Cleaning sigil
--->  Scanning binaries for linking errors
--->  Found 324 broken files, matching files to ports
--->  Found 8 broken ports, determining rebuild order
You can always run 'port rev-upgrade' again to fix errors.
The following ports will be rebuilt:
 libspectre @0.2.8
 ruby @1.8.7-p374
 FreeCAD @0.16+gcc6
 qt5-qtbase @5.7.1+openssl
 avidemux @2.6.10+aac+gettext+lame+sqlite+twolame+x264
 gstreamer1-gst-plugins-good @1.11.1+pulseaudio
 gstreamer1-gst-plugins-bad @1.11.1
 webkit2-gtk @2.14.2+gtk2+x11
Continue? [Y/n]:

comment:6 Changed 7 years ago by cederom (CeDeROM)

bash-3.2# port install sigil
--->  Computing dependencies for sigil
--->  Cleaning sigil
--->  Scanning binaries for linking errors
--->  Found 324 broken files, matching files to ports
--->  Found 8 broken ports, determining rebuild order
You can always run 'port rev-upgrade' again to fix errors.
The following ports will be rebuilt:
 libspectre @0.2.8
 ruby @1.8.7-p374
 FreeCAD @0.16+gcc6
 qt5-qtbase @5.7.1+openssl
 avidemux @2.6.10+aac+gettext+lame+sqlite+twolame+x264
 gstreamer1-gst-plugins-good @1.11.1+pulseaudio
 gstreamer1-gst-plugins-bad @1.11.1
 webkit2-gtk @2.14.2+gtk2+x11
Continue? [Y/n]:
--->  Computing dependencies for libspectre
--->  Fetching archive for libspectre
--->  Attempting to fetch libspectre-0.2.8_1.darwin_16.x86_64.tbz2 from https://packages.macports.org/libspectre
--->  Attempting to fetch libspectre-0.2.8_1.darwin_16.x86_64.tbz2 from http://nue.de.packages.macports.org/libspectre
--->  Attempting to fetch libspectre-0.2.8_1.darwin_16.x86_64.tbz2 from http://lil.fr.packages.macports.org/libspectre
--->  Fetching distfiles for libspectre
--->  Verifying checksums for libspectre
--->  Extracting libspectre
--->  Configuring libspectre
--->  Building libspectre
--->  Staging libspectre into destroot
--->  Installing libspectre @0.2.8_1
--->  Cleaning libspectre
--->  Computing dependencies for libspectre
--->  Deactivating libspectre @0.2.8_0
--->  Cleaning libspectre
--->  Activating libspectre @0.2.8_1
--->  Cleaning libspectre
--->  Computing dependencies for ruby
--->  Fetching archive for ruby
--->  Attempting to fetch ruby-1.8.7-p374_3.darwin_16.x86_64.tbz2 from https://packages.macports.org/ruby
--->  Attempting to fetch ruby-1.8.7-p374_3.darwin_16.x86_64.tbz2 from http://nue.de.packages.macports.org/ruby
--->  Attempting to fetch ruby-1.8.7-p374_3.darwin_16.x86_64.tbz2 from http://lil.fr.packages.macports.org/ruby
--->  Fetching distfiles for ruby
--->  Verifying checksums for ruby
--->  Extracting ruby
--->  Applying patches to ruby
--->  Configuring ruby
--->  Building ruby
--->  Staging ruby into destroot
--->  Installing ruby @1.8.7-p374_3
--->  Cleaning ruby
--->  Computing dependencies for ruby
--->  Deactivating ruby @1.8.7-p374_2
--->  Cleaning ruby
--->  Activating ruby @1.8.7-p374_3
--->  Cleaning ruby

Error: Can't install xercesc because conflicting ports are active: xercesc3
Error: Problem while installing xercesc
Error: rev-upgrade failed: Error rebuilding FreeCAD
Error: Follow https://guide.macports.org/#project.tickets to report a bug.

comment:7 Changed 7 years ago by kencu (Ken)

the two xercesc ports have overlapping files, such as /opt/local/lib/libxerces-c.dylib being declared by both.

The fix for this is not trivial. Options are to move all the ports that depend on xercesc to xercesc3, if that is possible (presumably it is not easily done, or it would have been done already). Perhaps some of the ports that depend on xercesc have variants or can be modified to use xercesc3.

Alternatively, the older xercesc port or the newer xercesc3 port could be modified to install non-overlapping files, and then all the ports that depend on one or the other would have to be changed to find the files they need.

Short answer: Although it is fixable, I wouldn't expect a 10 minute solution to this one. The xercesc and xercesc3 ports have different maintainers as well. For today, you might have to choose. Or if it is really really important to make this work right now for some reason, you could look into installing a separate copy of MacPorts under a different prefix -- keeping that all straight in your head might not turn out to be trivial, though.

comment:8 Changed 7 years ago by mf2k (Frank Schima)

Cc: cederom removed
Keywords: sigil xercesc3 xercesc conflict removed
Owner: set to krischik@…
Status: newassigned

In the future, please Cc the port maintainers (port info --maintainers sigil), if any. As reporter, you do not need to Cc yourself.

comment:9 Changed 7 years ago by mf2k (Frank Schima)

Cc: chris.ridd@… scantor nerdling added
Port: xercesc xercesc3 added

Cc'ing maintainers of xercesc and xercesc3 for possible comment.

comment:10 Changed 7 years ago by kurthindenburg (Kurt Hindenburg)

Owner: krischik@… deleted

comment:11 Changed 7 years ago by scantor (Scott Cantor)

xerces 2.x has been EOL code for over a decade and is full of unfixed security vulnerabilities. That port should be retired. Is there a process for retiring ports that are based on dead projects or project branches?

comment:12 Changed 7 years ago by mf2k (Frank Schima)

The xercesc port can be marked as obsolete and replaced by xercesc3. Then it can be removed in a year. But first, as was mentioned by kencu in comment:7, all ports that depend on xercesc, such as freecad, will need to be updated to depend on xercesc3 or themselves be removed. I will try to come up with the list of ports that still depend on xercesc and create a ticket to update them.

comment:13 Changed 7 years ago by mf2k (Frank Schima)

I have created #54698 to get freecad fixed.

comment:14 Changed 7 years ago by mf2k (Frank Schima)

Owner: set to mf2k
Resolution: fixed
Status: assignedclosed

comment:15 Changed 7 years ago by cederom (CeDeROM)

not really a solution.. will ask FreeCAD team to switch to xercesc3..

Note: See TracTickets for help on using tickets.