# gcc updated with expat problem, but no rebuilds

## ONEEYEMAN

Hi, ALL,

I recently upgraded gcc and during "world" recompilation, I hit an "expat.so.0" linking problem in libdrm, that was pulled by mesa.

I continued with emerge which finished. There was at least one other complain from kdemultimedia.

When I went to run revdep-rebuild it didn't find anything to rebuild to fix broken link dependancy.

Is it normal? Should I re-run "emerge libdrm mesa kdemultimedia" or everything should be fine now?

Thank you.

----------

## NeddySeagoon

ONEEYEMAN,

You should not have had expat.so.0 on your system for a long time now.

See code listings 1.1 and 1.2 of mzbots wisdom

----------

## ONEEYEMAN

Hi, NeddySeagoon,

I am not a big fan of updates.

For the references, see

https://forums.gentoo.org/viewtopic-t-760205-postdays-0-postorder-asc-start-50.html

https://forums.gentoo.org/viewtopic-t-575655.html

That's why the question of revdep-rebuild.

Thank you.

----------

## NeddySeagoon

ONEEYEMAN,

revdep-rebuild did not cope with the expat update as there were too many things to rebuild and the order was not known.

That you are hitting expat issues now suggests that your install hasn't been updated for two years, maybe more.

Those one line scripts in my reference were written at the time the problem was at its peak. Between them they rebuild everything that depends on libexpat.

----------

## ONEEYEMAN

Hi, NeddySeagoon,

I just tried to run the first command from the link you gave me, however, all I got is the prompt like this:

```

IgorsGentoo # emerge -n1 '>=portage-2.1.2.12' portage-utils && emerge -qep world | grep --color=never -oFf <(scanelf -plRBF '%F %n' | awk '/libexpat.so.0/{print $1}' | xargs qfile -qC | sort -u; echo -e "libtool\ncurl") | xargs emerge -1

>

```

Anything I did wrong?

Thank you.

----------

## NeddySeagoon

ONEEYEMAN,

Its one very long line.  that you got a prompt suggets that you put the command on two or more lines.

That command is know to work well as it was linked from the /topic in #gentoo for a long time.

----------

## ONEEYEMAN

Hi, NeddySeagoon,

Where do you recommend to break this command?

And what symbol I should use: "1" as a "number one", or "l" as a "lowercase letter l"?

Thank you.

----------

## NeddySeagoon

ONEEYEMAN,

I recommend you copy and paste it as one line. It should work that way.

You will also also get the 1s and ls right

----------

## ONEEYEMAN

NeddySeagoon,

I am on the console.

Is links available on the standard inux installation? Or is there any other way?

Thank you.

----------

## NeddySeagoon

ONEEYEMAN,

You will only have a text based browser if you have installed one.

You can boot with a liveCD that provides a GUI, open a root terminal and chroot into your install.

That allows you to browse the web normaly and copy and paste into the terminal in the chroot.

----------

## ONEEYEMAN

Hi, NeddySeagoon,

I put the command in the batch file and ran it. Here is the results:

```

IgorsGentoo ~ # ./expat_isue

Calculating dependancies... done!

>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

!!! Multiple package instances within a single package slot have been pulled

!!! into the dependancy graph, resulting in a slot conflict:

kde-base/kdelibs:3.5

('ebuild','/','kde-base/kdelibs-3.5.10-r6','merge') pulled in by kde-base/kdelib srequired by world

('ebuild','/','kde-base/kdelibs-3.5.9-r4','merge') pulled in by ~kde-base/kdelibs-3.5.9 required by ('ebuild','/','kde-base/kdeaddons-3.5.9','merge')

~kde-base/kdelibs-3.5.9 required by ('ebuild','/','kde-base/kdegraphics-3.5.9','merge')

kde-base/kdelibs required by world

(and 1 more)

' is not a valid package atom.

!!! Please check ebuild(5) for full details.

: command not found2

```

What do I do in this case? Should I run the second command on the link?

Thank you.

----------

## NeddySeagoon

ONEEYEMAN,

Your slot conflict is probably the result of mixing stable and unstable by using package.keywords.

emerge will not run until that is fixed.

However the >>> No outdated packages were found on your system suggests things are ok so far.

You can try the second command but its intended to address specific packages that fail to build when the first command is run and you don't have any package names to give it.

Fix your slot conflicts, then try the first command again.

----------

## ONEEYEMAN

Hi, NeddySeagoon,

Here is my /etc/portage/package.keywords:

```

dev-util/kdevelop ~x86

net-im/skype ~x86

kde-base/kde ~x86

<=app-crypt/mit-krb5-1.6.3-r2

```

I can remove "kde ~x86" line, but the conflict is not with this package....

I am thinking that maybe I need to mask "kdelibs-3.5.10-r6".

This is actually my fault. I got scared, when, after reboot, I got "ClamAV is too old". So, I sync'ed and upgraded the abti-virus. But I guess the sync picked up next version of kdelibs, as "emerge -eav world" from gcc upgrade picked kde-3.5.9.

Which means I need to edit /etc/portage/package.mask to temporary mask kdelibs-3.5.10, correct?

Thank you.

----------

## NeddySeagoon

ONEEYEMAN,

thats a start, then anything else that is pulling it in

----------

## ONEEYEMAN

NeddySeagoon,

I added the line to the package.mask file and run the script again.

However, I received exactly the same error message.

What else can I do?

Thank you.

----------

## NeddySeagoon

ONEEYEMAN, 

run the emerge command again but add the -tp options. Post the output.

I'm not sure if it prints the emerge tree before the error.

----------

## ONEEYEMAN

NeddySeagoon,

No, adding "-t" didn't make any differences.

Is there any "log" file I can check? Does this mean I'm srewed?

I can also remove "kde ~x86" from package.keywords file, but I don't know if it will make any diferences.

Thank you.

[EDIT]

Out of curiosity I just tried to rebuild "libdrm" package which was failing.

To my surprise, the package was rebuilt successfully, i.e. without any errors.

Now I will try to rebuild mesa, xorg-server and xf86-video-intel as suggested by the libdrm package recompile.

Hopefully I will do that and will be able to start X/KDE and then I will rebuild KDE....  :Wink: 

[/EDIT]

----------

## Mike Hunt

 *ONEEYEMAN wrote:*   

> I can also remove "kde ~x86" from package.keywords file, but I don't know if it will make any diferences.

 

Right kde ~x86 in package.keywords is useless. The latest stable kde is 3.5.10.

Read  this if you want to keyword for the testing version of kde.

----------

## ONEEYEMAN

Hi, Mike,

It looks like I will have to un-install kde-3.5.9 and install kde-3.5.10.

I can't even install kde-3.5.10, because it is blocked by earlier version...

Thank you.

----------

## Mike Hunt

I think it's more likely that kde-3.5.9 dependencies and reverse dependencies are blocking kde-3.5.10 after you uninstall kde.

Can you get emerge -uDN world to complete yet? If so then emerge --depclean -av followed by revdep-rebuild -- -av should solve most if not all of that.

----------

## ONEEYEMAN

Hi, Mike,

After upgrading gcc, I did "emerge -eav world" which was finished. Only "libdrm" package failed to build with libexpat problem. Everything else built fine.

However, I know there is at least one kde packet that issued warning with libexpat, and I don't know how many other packages that was not build....

So are you suggesting that I do "emerge -uDN world" and then "emerge --depclean -av" and "revdep-rebuild -av"?

Thank you.

[EDIT]

I can try to remove KDE completely, run NeddySeagoon's script, see if X will start and then re-emerge latest stable KDE.

I think it is a way to go, unless someone can suggest something better...

[/EDIT]

----------

