Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 916532 - app-vim/css-color-20230308: File collision with /usr/share/vim/vimfiles/after/syntax/c.vim from app-vim/gtk-syntax-20130716
Summary: app-vim/css-color-20230308: File collision with /usr/share/vim/vimfiles/after...
Status: RESOLVED FIXED
Alias: None
Product: GURU
Classification: Unclassified
Component: Package issues (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: GURU project
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-30 16:20 UTC by segmentation fault
Modified: 2023-11-08 04:41 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
Build log (css-color-20230308-build.log,3.27 KB, text/x-log)
2023-10-31 04:13 UTC, segmentation fault
Details
Emerge info (emerge-info,2.26 KB, text/plain)
2023-10-31 04:24 UTC, segmentation fault
Details
Output of "equery files app-vim/gtk-syntax-20130716" (equery-files-gtk-syntax-20130716,1.72 KB, application/octet-stream)
2023-10-31 04:33 UTC, segmentation fault
Details

Note You need to log in before you can comment on or make changes to this bug.
Description segmentation fault 2023-10-30 16:20:26 UTC
emerging of app-vim/css-color-20230308 goes smoothly, up to the point where file collisions are detected:

 * Detected file collision(s):
 * 
 *      /usr/share/vim/vimfiles/after/syntax/c.vim
 * 
 * Searching all installed packages for file collisions...
 * 
 * Press Ctrl-C to Stop
 * 
 * app-vim/gtk-syntax-20130716:0::gentoo
 *      /usr/share/vim/vimfiles/after/syntax/c.vim
 * 
 * Package 'app-vim/css-color-20230308' NOT merged due to file
 * collisions. If necessary, refer to your elog messages for the whole
 * content of the above message.
Comment 1 Viorel Munteanu gentoo-dev 2023-10-30 16:27:54 UTC
I can't reproduce this locally.  Please attach a full build.log and the output or emerge --info.
Comment 2 segmentation fault 2023-10-31 04:13:08 UTC
Created attachment 873751 [details]
Build log

As you can see, there is nothing more in the build log, that what I have already reported...
Comment 3 segmentation fault 2023-10-31 04:24:34 UTC
Created attachment 873752 [details]
Emerge info

To my eyes, there is absolutely nothing relevant to the reported problem here, but anyway, here it is...

I post only a redacted version of "emerge --info" - just tell me if you need specific parts I omitted.
Comment 4 segmentation fault 2023-10-31 04:33:35 UTC
Created attachment 873753 [details]
Output of "equery files app-vim/gtk-syntax-20130716"

As you can see,

/usr/share/vim/vimfiles/after/syntax/c.vim

is indeed one of the files installed by app-vim/gtk-syntax-20130716. This package was installed in 2019 here and has never been upgraded since:

eix gtk-syntax

[I] app-vim/gtk-syntax
     Available versions:  20130716
     Installed versions:  20130716(12:12:39 AM 01/05/2019)
     Homepage:            https://www.vim.org/scripts/script.php?script_id=1000
     Description:         vim plugin: Syntax highlighting for GLib, Gtk+, Xlib, Gimp, Gnome, and more
Comment 5 segmentation fault 2023-10-31 04:45:42 UTC
Just an idea:

Maybe it is a kind of "race condition" between ebuilds. Maybe, if you install css-color first and gtk-syntax afterwards, gtk-syntax will take care to not try to copy its version of

/usr/share/vim/vimfiles/after/syntax/c.vim

But if you install gtk-syntax first and then try to install css-color, as I did, then you get a collision - maybe...

I don't know which version is "better", though. I can imagine that the version of css-color is more up-to-date, as it will contain instructions for CSS colors too...so maybe you should enforce the overwriting...?
Comment 6 Viorel Munteanu gentoo-dev 2023-10-31 06:01:35 UTC
It's not a race condition.  The only way I can think of where this can happen is if app-vim/css-color/css-color-20230308.ebuild is not EAPI 8.

In your build log, it says Repository: XXX.  I assume you are not installing it from guru, you are installing it from a different overlay and reporting the bug to guru.

Please update guru to the latest and compare the ebuild from guru with the ebuild you are using.
Comment 7 segmentation fault 2023-10-31 14:59:19 UTC
(In reply to Viorel Munteanu from comment #6)
> It's not a race condition.  The only way I can think of where this can
> happen is if app-vim/css-color/css-color-20230308.ebuild is not EAPI 8.
> 
> In your build log, it says Repository: XXX.  I assume you are not installing
> it from guru, you are installing it from a different overlay and reporting
> the bug to guru.
> 
> Please update guru to the latest and compare the ebuild from guru with the
> ebuild you are using.

Wow, you are spot-on! :-)

XXX is the name of my private, local repository, where I copy the ebuilds before merging them. This is necessary, because most of the time I do have to make minor modifications (e.g. regarding the PYTHON_COMPAT array), or I just want to keep them around. In this case I had to - tataaa! - change EAPI from 8 to 7, as this is an old system that has gone ~20 months without full system upgrading:

# Lowered EAPI from 8 to 7.
EAPI=7

EAPI 8 does not work, it brings during "ebuild ... digest" the error:


 * ERROR: app-vim/css-color-20230308::XXX failed (depend phase):
 *   EAPI 8 unsupported (too old)
 * 
 * Call stack:
 *                   ebuild.sh, line 618:  Called source '/usr/local/portage/overlays/XXX/app-vim/css-color/css-color-20230308.ebuild'
 *   css-color-20230308.ebuild, line   9:  Called inherit 'vim-plugin'
 *                   ebuild.sh, line 298:  Called __qa_source '/usr/portage/eclass/vim-plugin.eclass'
 *                   ebuild.sh, line 114:  Called source '/usr/portage/eclass/vim-plugin.eclass'
 *           vim-plugin.eclass, line  17:  Called die
 * The specific snippet of code:
 *      *) die "EAPI ${EAPI:-0} unsupported (too old)";;

(actually, it should say "too new", not "too old"...)

, so I thought I'd lower it to work with my ~20 months old portage eclasses. This is a change I often have to make, as the system becomes older. Most of the time, it works fine. I would never imagine that an EAPI change might have such "side effects"...

Any suggestions now? I might go and replace one or two eclasses from the eclass repository (the vim-plugin.eclass maybe?), if you suggest so and if you are confident that the eclasses are not coupled to other ones...Actually, as I see it, replacing vim-plugin.eclass with the current version should suffice, if this eclass is self-contained and decoupled from the rest of eclasses. What do you think?
Comment 8 Viorel Munteanu gentoo-dev 2023-11-01 06:02:35 UTC
You can try, of course, see what it does.  But my advice would be to find some time and upgrade your machine to something more recent, the more you wait the harder it will get and at some point it may become unmaintainable and impossible to upgrade.  It already sounds like a Frankengentoo.

Thank you for replying, I will close the bug.
Comment 9 segmentation fault 2023-11-02 06:59:32 UTC
(In reply to Viorel Munteanu from comment #8)
> ...the harder it will get and at some point it may become unmaintainable
> and impossible to upgrade.

In the almost 20 years I have been using Gentoo, it has never been really impossible to upgrade my system. It is the same system I started with back in ~2005, when I was struggling to compile X for an "ATI Rage 128 Mobility" graphics card...It was 32 (bit) back then, now it's 64 - and still we did not separate, only cross-compiled¹. "Will you love me, when I'm 64?" - did you sing that to *your* system? :-))) Or did you let it down for a younger, fresh stage-3 tarball? ;-p

>It already sounds like a Frankengentoo.

Frankengentoo... :-)))))))

But no, you are doing it great injustice in calling it like that. It's a great system, very well organized, with no problems, ultra-stable, although I'm pushing it hard with dozens and dozens of open programs at any given time:

ps acux | wc -l
1021

uptime -p
up 1 year, 1 week, 6 days, 17 hours, 3 minutes


But I digress...

I'll replace vim-plugin.eclass and see if the issue goes away.

---
¹ See http://achurch.org/gentoo-x86-32-to-64.html for a starting point, in case you are curious.
Comment 10 segmentation fault 2023-11-02 08:34:50 UTC
Replacing vimp-plugin.eclass with a newer one:

mv /usr/portage/eclass/vim-plugin.eclass /usr/portage/eclass-XXXXXXXX/
wget https://gitweb.gentoo.org/repo/gentoo.git/plain/eclass/vim-plugin.eclass
mv vim-plugin.eclass /usr/portage/eclass/

results in a new error, this time for vim-doc:

ebuild css-color-20230308.ebuild digest

 * ERROR: app-vim/css-color-20230308::XXX failed (depend phase):
 *   vim-doc: EAPI 8 not supported
 * 
 * Call stack:
 *                   ebuild.sh, line 618:  Called source '/usr/local/portage/overlays/XXX/app-vim/css-color/css-color-20230308.ebuild'
 *   css-color-20230308.ebuild, line   9:  Called inherit 'vim-plugin'
 *                   ebuild.sh, line 298:  Called __qa_source '/usr/portage/eclass/vim-plugin.eclass'
 *                   ebuild.sh, line 114:  Called source '/usr/portage/eclass/vim-plugin.eclass'
 *           vim-plugin.eclass, line  23:  Called inherit 'vim-doc'
 *                   ebuild.sh, line 298:  Called __qa_source '/usr/portage/eclass/vim-doc.eclass'
 *                   ebuild.sh, line 114:  Called source '/usr/portage/eclass/vim-doc.eclass'
 *              vim-doc.eclass, line  21:  Called die
 * The specific snippet of code:
 *      *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;

Let's replace vim-doc too:

mv /usr/portage/eclass/vim-doc.eclass /usr/portage/eclass-XXXXXXXX/
wget https://gitweb.gentoo.org/repo/gentoo.git/plain/eclass/vim-doc.eclass
mv vim-doc.eclass /usr/portage/eclass/

This time 

ebuild css-color-20230308.ebuild digest

succeeded! For the sake of completeness, I replaced vim-spell.eclass with the current copy from the online repository too, although not strictly needed by this ebuild.

Installation succeeds too! :-)

With the new eclasses, the ebuild does not try to install

/usr/share/vim/vimfiles/after/syntax/c.vim

- it installs 

/usr/share/vim/vimfiles/after/syntax/c/css-color.vim

instead. I would never suspect such effects - I have always thought that the list of files to install is fixed and depends on the source code ONLY...

css-color works wonderfully - only thing is that it colors unquoted hex colors only, i.e. it colors #ad2e0b, but not '#ad2e0b'. I have a dynamic CSS file, one that contains PHP code intermixed with pure CSS directives and I have to use quoted strings whose values are hex color codes. If you have any tips, I'd love to hear them.

Thank you for making this ebuild. Now I don't have to remember how they look all those colors anymore. :-)
Comment 11 Viorel Munteanu gentoo-dev 2023-11-02 08:43:58 UTC
Great success!

I did not make this ebuild, I only looked inside to see why it doesn't work in your case.
Comment 12 segmentation fault 2023-11-08 04:41:08 UTC
(In reply to segmentation fault from comment #10)

> css-color works wonderfully - only thing is that it colors unquoted hex
> colors only, i.e. it colors #ad2e0b, but not '#ad2e0b'. I have a dynamic CSS
> file, one that contains PHP code intermixed with pure CSS directives and I
> have to use quoted strings whose values are hex color codes. If you have any
> tips, I'd love to hear them.

In case someone has the same problem, I have written up a solution here:

How to enable color highlighting for strings in CSS
https://github.com/ap/vim-css-color/issues/190