Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mathematica: 11.3 -> 12.0 #63620

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 3 additions & 2 deletions pkgs/applications/science/math/mathematica/default.nix
Expand Up @@ -99,8 +99,9 @@ stdenv.mkDerivation rec {

# Fix xkeyboard config path for Qt
for path in mathematica Mathematica; do
line=$(grep -n QT_PLUGIN_PATH $path | sed 's/:.*//')
sed -i -e "$line iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"" $path
for line in $(grep -n QT_PLUGIN_PATH $path | sed 's/:.*//'); do
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What kind of lines do we get from this "grep -n QT_PLUGIN_PATH $path"?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC the purpose of this change is to setup QT properly to use Mathematica in KDE. It exports QT_XKB_CONFIG_ROOT, such as in the following case (from $out/libexec/Mathematica/Executables/mathematica):

export QT_XKB_CONFIG_ROOT="/nix/store/17588p39scnw7y71y7f2wvhm5mpa63wi-xkeyboard-config-2.24/share/X11/xkb"
export QT_PLUGIN_PATH=${M_LIBRARY_PATH}/Qt-Plugins

The first line is added by this change.

Copy link
Member

@veprbl veprbl Jun 26, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@herberteuler
Why not just do:

sed -i -e "/export QT_PLUGIN_PATH/iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"" $path

?

Also do you think the change proposed in this PR is reasonable?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using sed's built-in function to reference places to change is indeed better than referencing with line numbers, especially in this case, because after each iteration of the for loop the old line numbers will become invalid.

Considering that exporting QT_XKB_CONFIG_ROOT needs to be done only once, this is perhaps better:

sed -i -e "/^\"\${MathematicaFE/iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"\n" $path

As for dropping 11.3, I think perhaps it would be better to still provide it in another file, e.g. 11.nix, just like what we do for 10 and 9 now. How do you think?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@herberteuler Could you provide a PR for that? I guess, we might as well insert this export on the line 2 instead of matching by the regex.

I don't mind keeping 11.3 if someone wants to use it and willing to maintain.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also thanks for pointing out that we have Mathematica 9 and 10. I didn't know.

sed -i -e "$line iexport QT_XKB_CONFIG_ROOT=\"${xkeyboard_config}/share/X11/xkb\"" $path
done
done
'';

Expand Down
6 changes: 6 additions & 0 deletions pkgs/applications/science/math/mathematica/l10ns.nix
Expand Up @@ -4,6 +4,12 @@ with lib;
{
l10ns = flip map
[
{
version = "12.0.0";
lang = "en";
language = "English";
sha256 = "b9fb71e1afcc1d72c200196ffa434512d208fa2920e207878433f504e58ae9d7";
}
{
version = "11.3.0";
lang = "en";
Expand Down