Bug 338422 - kde4breeze ineffective if $KDEHOME doesn't exist
Summary: kde4breeze ineffective if $KDEHOME doesn't exist
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Theme - Breeze (show other bugs)
Version: master
Platform: Other Linux
: NOR normal
Target Milestone: 1.0
Assignee: Andrew Lake
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-20 23:19 UTC by Hrvoje Senjan
Modified: 2014-09-29 16:57 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hrvoje Senjan 2014-08-20 23:19:18 UTC
usecase: clean -test- user that has Plasma 5 installed with 4.x apps. kde4breeze script is correctly executed, but w/o kdeglobals present, it writes nothing (obviously =)
workaround - touch ~/.kde(4)/share/config/kdeglobals before starting the session
Comment 1 David Edmundson 2014-08-21 10:59:36 UTC
works here...
I just did

$ export KDEHOME=/home/david/.testing

(where .testing didn't exist)

then ran

/opt/kde5/lib64/kconf_update_bin/kde4breeze
it created the folder and did everything for me

It's also working fine on the neon ISO which is a brand new session.

If you can confirm what's up, I'll happily look into it, but right now it seems something else was up with your system)

Also you /should/ have a log file from kconf_update in ~/.local/share/kconf_update/log can you include that please.
Comment 2 Hrvoje Senjan 2014-08-21 11:12:08 UTC
i can confirm that it also works here with enviroment var, but still not if using default values (w/o env). i'm guessing neon also sets kdehome var as it uses voodoo for existing in /opt?
also, there's no ~/.local/share/kconf_update directory here
Comment 3 David Edmundson 2014-08-21 13:31:57 UTC
unset env var here, default location is /home/david/.kde/share/config/. And it still creates that file fine.
Comment 4 Hrvoje Senjan 2014-08-21 20:42:07 UTC
right. manually invoking kde4breeze also creates the file. but!: on *empty* config (including $kdehome and $xdg stuff) - the file is not created 'automagically'.
Comment 5 David Edmundson 2014-08-21 21:09:00 UTC
Theory:
kde4breeze is fine, but kconf_update is screwed somehow and fails before it launche the kde4breeze app.

any chance you can see what happens if you run:
/opt/kde5/lib64/libexec/kf5/kconf_update manually ?

(adjust path as appropriate)

the kconf_update logs will really help here.. they must end up somewhere.
Comment 6 Hrvoje Senjan 2014-08-22 02:03:07 UTC
seems the logging location is commented out in kconfig/src/kconf_update/kconf_update.cpp. Ran however /usr/lib64/kf5/kconf_update --debug by hand:


2014-08-22T03:58:39 Checking update-file '/usr/share/kconf_update/kde4breeze.upd' for new updates
2014-08-22T03:58:39 kde4breeze.upd: Found new update '5.0KDE4Breeze'
2014-08-22T03:58:39 kde4breeze.upd: Running script 'kde4breeze'
2014-08-22T03:58:39 About to run /usr/lib64/kconf_update_bin/kde4breeze
2014-08-22T03:58:39 Script contents is:
ELF>�▒@@`2@8    @@@@@@�88@8@@@$-$- �-�-`�-`�� �-�-`�-` TT@T@DDP�tdD*D*@D*@\\Q�tdR�td�-�-`�-`HH/lib64/ld-linux-x86-64.so.2GNUGNU��:x��^�Y�e_�4��-��%;2*5%: ▒)3.'",1#9&0-     +4
6▒/!8

�    )��(1      �T
:�2b������689�Bpj�|�������qXk*�k���|�.�k�K��j   C�c��CE��
  V���a؍�x�▒ ��0�4= i�L�h�/� ���▒�����f
                                       �r`� ��P @���▒@E��)@�
                                                             @�▒H1`I"P(@��▒P1`�"P(@�:�)@�81`"�@��H1`��)@��▒@�)@e� 81`�#@Pa�@�libQt5Widgets.so.5_ITM_deregisterTMCloneTable_ZN4QDirD1Ev__gmon_start___ZN5QFile6removeERK7QString_ZN7QStringC1EiN2Qt14InitializationE_ZN10QArrayData11shared_nullE_Jv_RegisterClasses_ZN9QListData6detachEi_ZN7QString6resizeEi_ZN9QListData7disposeEPNS_4DataE_ZN9QtPrivate20QStringList_containsEPK11QStringListRK7QStringN2Qt15CaseSensitivityE_ZN10QArrayData10deallocateEPS_mm_ITM_registerTMCloneTable_ZN4QDirC1ERK7QString_ZN5QFile4copyERK7QStringS2__ZN13QStyleFactory4keysEvlibKF5CoreAddons.so.5_ZNK4QDir6mkpathERK7QString_ZN14QStandardPaths6locateENS_16StandardLocationERK7QString6QFlagsINS_12LocateOptionEE_ZN14QStandardPaths16writableLocationENS_16StandardLocationE_ZNK17Kdelibs4Migration12saveLocationEPKcRK7QString_ZN17Kdelibs4MigrationD1Ev_ZN17Kdelibs4MigrationC1EvlibKF5ConfigCore.so.5_ZN12KConfigGroupC1ERK28QExplicitlySharedDataPointerI13KSharedConfigERK7QString_ZN12KConfigGroupC1EP11KConfigBasePKc_ZNK12KConfigGroup6copyToEP11KConfigBase6QFlagsINS0_15WriteConfigFlagEE_ZN7KConfigD1Ev_ZN12KConfigGroup6configEv_ZN12KConfigGroup10writeEntryEPKcS1_6QFlagsIN11KConfigBase15WriteConfigFlagEE_ZN12KConfigGroupC1EP11KConfigBaseRK7QString_ZN12KConfigGroup4syncEv_ZN7KConfigC1ERK7QString6QFlagsINS_8OpenFlagEEN14QStandardPaths16StandardLocationE_ZN13KSharedConfig10openConfigERK7QString6QFlagsIN7KConfig8OpenFlagEEN14QStandardPaths16StandardLocationE_ZN12KConfigGroupD1Ev_ZN12KConfigGroupC1ERK28QExplicitlySharedDataPointerI13KSharedConfigEPKclibQt5Core.so.5_ZN16QCoreApplicationC1ERiPPci_ZN7QString16fromAscii_helperEPKci_ZN16QCoreApplicationD1Ev_ZN21QAbstractConcatenable16convertFromAsciiEPKciRP5QCharlibc.so.6memcpy__libc_start_main_edata__bss_start_end__libc_csu_fini__data_start_Z16updateKdeGlobalsv_ZN5QListI7QStringED2Ev__libc_csu_init_Z16applyColorSchemeP7KConfig_Z18applyQtCurveConfigv_IO_stdin_used_ZN5QListI7QStringED1Ev_Z16cloneColorSchemevGLIBC_2.2.5GLIBC_2.14nu▒i      w�����/`
�/`▒0` 0`(0`00`80`@0`H0P0`      X0`
`0`
   h0`
x0`�0`�0`�0`�0`�0`�0`�0`�0`▒�0`�0`▒�0`0`�0`�0`�0`�0` 1`1`"1`#▒1`% 1`&(1`'01`(H�H�� H��t��H���5� �%� @�%� h������%� h������%� h������%� h������%� h������%� h������%� h������%� h�p����%� �`����%z h �P����%r h
�@����%j h
          �0����%b h
�����%R h�����%J h������%B h������%: h������%2 h������%* h������%" h������%▒ h������% h������%
 h�p����% h▒�`����%�▒ h�P����%�▒ h▒�@����%�▒ h0����%�▒ h� ����%�▒ h�����%�▒ h�����%�▒ h������%�▒ h ������%�▒ h!������%�▒ h"������%�▒ h#�����SH���H�� H�\$H�t$
                                                                                                                                                             �|$
                                                                                                                                                                H��������C
��H�������H�� 1�[�1�I��^H��H���PTI���)@H��)@H�ǐ▒@�"������O1`UH-H1`H��H��w]øH��t�]�H1`����H1`UH-H1`H��H��H��H��?H�H��u]úH��t�]H�ƿH1`����=� uUH���~���]�� ��@H�=0 t�H��tU��-`H����]�{����s���AWAVAUATUSH���H�l$ L�t$0H�\$pH�������H�=�����1�L��H�ھ
�����H�8L��H��H��H�D$`�����L��H���I9�L�������H�|$`����D��%���H�|$P����������H�� L��H��H�D$p����H�|$p�����������H�=;�
���H���%���H�Ĉ[]A\A]A^A_�����������/���������H�|$p�����fD���t���/����u�H�|$0땐���t���/�����u���H�|$@�\���f�����'�����/�����▒���H�|$`�����fD����������/���������H�|$p�����fD����e�����/�����V���H�|$p�=���fD��������/���������H�|$P�����fD����������/���������H�|$`�����fffff.�AWH�=:
                                                                                                                �AVAUATUSH��XL�t$H�l$@�g���1�L��H���
                                                                                                                                                    H�D$@�����H�|$@����H�=����L�d$0�L�l$ L���;���H�D$01�L��D�xA��D��Mc�����H�D$0H�\$ HcHH[H��HpH�H��H�\$@H��H�L�
       �H��H�LHL$@�_���H�t$@H)�H��I9�L���G���H�|$0������������H�������L��H�������H�|$@����:��s���H�=�
��2���L��H��H�D$@�����H�|$@�������4���L�������L��L���a���L���y���H�|$ ���u~������H�|$���uL������H��X[]A\A]A^A_�fD����e�����/�����V���H�|$@�=���fD���t���/����u�H�|$띐���t���/�����}���H�|$ �d���f�����3�����/�����$���H�|$@�
                                                         ���fD����������/���������H�|$@�����fD����n�����/�����_���H�|$0�F���fffff.�AW�VAUI��H�=/        ATUSH��hL�d$@H�������1�L��H���
                  H�D$@�����H�|$@����������H�l$�H�޹H�\$0H���"���H�t$H��H��PH�D$0H�D$@����0���t
                                                                                              ����H�D$@HcH�|�HcP
                                                                                                                H�D�H�|$PH���D$HH�D$X�#�T$H��umL�|$PL;|$XL�t$ t\f.�L��H��L�������L��L��H��������H��L���T���H���\���L���T���H�D$PH��D$HH�T$P��tNL����H�D$H��t��h���H�<$���u2��c���H��h[]A\A]A^A_�@H;T$Xt�I���Q�������t���/����f�u�H�<$����pL�������H�D$0HcH�L�H�D$@HcP
                             H�|�HcH�D�H9����H��t▒H��2H�������@��H�H�H9�u�H�D$@HcH�|�HcP
                                                                                        H�D��m���f.�����������/�������H�|$@�����fDH�|$H�������H�������H���▒����AWAVAUATUSH���H�\$ L�d$pL�t$`H��H�\$▒�c���H��
                                         H��L��H��L��H��$�H�D$`�▒���H�D$p1�H��D�xA��
D��Mc������H�D$pL��$�HchMmH��HpH�L��L��$�H�������H�$�H��$�H�=6�
H�������H��$�L)�H��I9�H�������L�l$@��H��L�������H��$�����p��!���H�|$p����*�����H�|$`�����������H�=�������H��H��$�������H��H���t���H�߈D$��H��$�����^������L�|$PH�@L��L�������H�6H�56�L��������|$�:L���R���L���z���H�L��L�������H�H�5�L���M���L������L���=���H�=��
�����H��$�H�D$0��H��H��H�D�u���H��$�����S������H�tH�]L���p���H�VH�5V�L��������|$��L�������H���j���L�������H�tH�EH������H�H�5�H���c���H���;���H���#���H���K���H�tH��H�������H��H�5��H������H������H���l���H���d���L���\���H�D$0H��t��h��uH�|$0H��tH��L���.���L���&���L�������H�|$▒�����H�Ĩ[]A\A]A^A_�f�����������/���������H��$����������������/���������H��$��}�������"�����/��������H�|$`�����fD����������/���������H�|$p�����fD����������/���������H��$��k���H�#H�5j�L�������L�������H���}���L�������H�tH�XH���1���H�H�5H�߹�v���H��H��H���[��������fDH��H�5��L���5��������AVAUATUSL�/A�E��u}IcE
                                                                                     I�l�IcH��L�u�M�d�L9�uC�[]A\L��A]A^�H������t"��/��uJ�|������I9�t�H�H��H)�J�|���t�A�m����t       []A\A]A^�L�/�`���f.�AWA��AVI��AUI��ATL�%� UH�-� SL)�1�H��H������H��t�L��L��D��A��H��H9�u�H�[]A\A]A^A_�ff.���H�H��color-schemes/Breeze.colorscolor-schemesdataQtCurve/Breeze.qtcurve/qtcurve/stylercconfigkdeglobalsQtCurveGeneralBreezeColorSchemewidgetStyleIconsbreezeThemeKDEX
�����L���\����t|����<���
                        ��������

                                ���l����|<����zRx
                                                ���*zRx
                                                      $P���PF▒J
                                                               �?▒;*3$"LD�����B�B▒�B �B(�A0�A8�G�q
8A0A(B B▒BD
           L�▒����B�N▒�B �B(�A0�A8�D��
8A0A(B B▒BG
           L������B�B▒�B �A(�A0�q
(A B▒EE
       [
(A B▒BA
       L4H����B�G▒�B �L(�A0�A8�D�t
8A0A(B B▒BE
           L�����PB�B▒�B �B(�A0�A8�G��
8A0A(B B▒BC
           �����EA�L0tD�H���eB�E▒�E �E(�H0�H8�M@l8A0A(B B▒B<p����@p@��n
�)@�-▒�-�@���o @X                                                       @
@�@
�
 ▒0``�@�0       ▒���o`@���o���o�@�-`V@f@v@�@�@�@�@�@�@�@�@@@&@6@F@V@f@v@�@�@�@�@�@�@�@�@▒@▒@&▒@6▒@F▒@V▒@f▒@v▒@�▒@kde4breeze.debug�l�.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.jcr.dynamic.got.got.plt.data.bss.gnu_debuglink
                               8@8T@T !t@t$8�@�4���o @ >
                                                        �@�▒FX
@X
▒~ @ ▒y@@@P��▒@�▒���)@�)�@�`    ��)@�)��D*@D*\��*@�*��-`��-`��-`��-`�-��/`�0`�81`8H1`H�H1▒`1�
2014-08-22T03:58:39 [Script] QDir::mkpath: Empty or null file name
2014-08-22T03:58:39 Successfully ran /usr/lib64/kconf_update_bin/kde4breeze
Comment 7 David Edmundson 2014-08-22 10:06:08 UTC
Oh yeah, it echoes the command it's executing expecting it to be a shell script. I should turn that off maybe.

Anyway; that looks like it's running the kde4breeze, and when you ran this it failed to copy kdeglobals?

there's a warning about QDir::mkpath, but there's no usage of that in the copyglobals function
Comment 8 Hrvoje Senjan 2014-08-22 13:30:09 UTC
so... either report, or kde4breeze's usage of kdelibs4migration are invalid.
on clean config .kde(4) won't exists, so m_kdeHome will be empty...
it's enough to do mkdir -p .kde(4) to make the kconf script succesfull
Comment 9 David Edmundson 2014-09-26 17:17:28 UTC
Managed to reproduce. Both unsetting KDEHOME and moving ~/.kde4 seemed to do it.
I think I had issues as I always had /something/ writing to .kde4.

Kdelibs4Migration migration;
migration.saveLocation("config")

is returning null
Comment 10 David Edmundson 2014-09-26 17:23:59 UTC
Just checked the code for kdelibs4migration, it does:

look for environment variable
look for .kde existing
look for .kde4  existing
otherwise return "".

I think ideally we want to make kdelibs4migration always return something.
Comment 11 Hrvoje Senjan 2014-09-26 17:40:08 UTC
since i figured where's the catch, i've added the following workaround to openSUSE package.
https://build.opensuse.org/package/rdiff/KDE:Frameworks5/plasma5-workspace?linkrev=base&rev=15

basically passing -DKDE_DEFAULT_HOME=.kde4 & restoring an old part of startkde..
Comment 12 David Edmundson 2014-09-29 16:57:39 UTC
Git commit e0bb93c4f4eb254e9969a21a5343099f7abd8fa1 by David Edmundson.
Committed on 29/09/2014 at 15:34.
Pushed by davidedmundson into branch 'master'.

Create kde4 config if it does not exist

If there is no KDE4 directory and KDEHOME is not set. Kdelibs4Migration
returns an empty path.

For most usecases this is fine as it means there is nothing to import
however in our unusual case we are writing data so we should manually
create it.
REVIEW: 120424

M  +12   -2    misc/kde4breeze/src/main.cpp

http://commits.kde.org/breeze/e0bb93c4f4eb254e9969a21a5343099f7abd8fa1