FS#46934 - [xorg-xrdb] use cpp instead of mcpp

Attached to Project: Arch Linux
Opened by Daniel Hahler (blueyed) - Sunday, 01 November 2015, 00:24 GMT
Last edited by Andreas Radke (AndyRTR) - Thursday, 14 January 2016, 21:02 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Andreas Radke (AndyRTR)
Allan McRae (Allan)
Felix Yan (felixonmars)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

I've noticed that Arch's xrdb will behave different from Ubuntu/Debian's, and
that seems to be caused by using `--with-cpp=/usr/bin/mcpp`.

Is there a specific reason for this? Size? (I've found
https://github.com/NixOS/nixpkgs/pull/9501, where it was changed to mcpp in
NixOS)

XRDB(1) mentions that it was designed to use CPP.


The differences are (at least):

1. you have to use `xrdb -I$HOME`, for relative `#include`s to work, but
usually only `xrdb -merge ~/.Xresources` is used in desktop managers etc.

2. The following keybindings for urxvt do not work with Arch's xrdb. They are
meant to change colors (between light/dark Solarized variants), but the
constants (defined in an include `#include
".dotfiles/lib/solarized-xresources/Xresources.dark"`) appear to not be
available here:

URxvt.keysym.M-C-8: command:\033]11;S_base3\007\033]10;S_base00\007\033]12;S_base01\007\033]13;S_base01\007\033]708;S_base3\007
URxvt.keysym.M-C-9: command:\033]11;S_base03\007\033]10;S_base0\007\033]12;S_base1\007\033]13;S_base1\007\033]708;S_base03\007
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Thursday, 14 January 2016, 21:02 GMT
Reason for closing:  Fixed
Comment by Andreas Radke (AndyRTR) - Tuesday, 05 January 2016, 12:32 GMT
Please check xorg-xrdb 1.1.0-2 in testing that has been built with --with-cpp=/usr/bin/cpp,/usr/bin/mcpp - both are not optional dependencies as xrdb can also be run with -nocpp.

You have not the choice of your desired preprocessor. This should solve your issue.

Technically I'm not sure why mcpp fails for you. You could get in contact with its upstream maintainer. Maybe some standards aren't properly supported anymore: http://mcpp.sourceforge.net/ .
Comment by Brian BIdulock (bidulock) - Sunday, 10 January 2016, 15:28 GMT
  • Field changed: Percent Complete (100% → 0%)
Solution not entirely satisfactory:
gcc is in core so mcpp will never be used when both are loaded. Should be --with-cpp=/usr/bin/mcpp,/usr/bin/cpp
Also, having both gcc and mcpp optional means neither will necessarily be loaded. Better solution would be to require cpp and have both gcc and mcpp provide cpp.
Comment by Andreas Radke (AndyRTR) - Sunday, 10 January 2016, 16:03 GMT
I assume you will prefer gcc giving proper results. Mcpp is only the small alternative where people don't want to install the whole gcc compiler. With my choice you should be safe that gcc is giving back proper results if both are installed.

And no, xrdb doesn't need any preprocessor at all.

Adding provides for both preprocessors is overkill to me. Allan, any opinion?
Comment by Allan McRae (Allan) - Sunday, 10 January 2016, 20:20 GMT
I will not be adding provides to gcc.
Comment by Andreas Radke (AndyRTR) - Thursday, 14 January 2016, 21:02 GMT
I think we now have a proper solution we can live with.

Loading...