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

History not saved anymore since 0.96.0 release #32

Open
wmlive opened this issue Aug 15, 2023 · 7 comments
Open

History not saved anymore since 0.96.0 release #32

wmlive opened this issue Aug 15, 2023 · 7 comments

Comments

@wmlive
Copy link

wmlive commented Aug 15, 2023

Upgrading from 0.95.9 to 0.96.0 apparently broke the incredibly useful history saving feature.

As in following example, while already existing entries are still properly available, executing new commands does not append any entries to the associated "$HOME/GNUstep/.AppInfo/WindowMaker/History.execute" anymore:

%A(Execute...,Type command to execute,execute)

It doesn't matter whether "$HOME/GNUstep/" is created from built-in defaults or if a pre-existing configuration is used.

Switching back to the former release version currently resumes expected normal functioning of history.

@wmlive
Copy link
Author

wmlive commented Aug 21, 2023

The only fix i found so far was to simply revert https://repo.or.cz/wmaker-crm.git/commit/85169642ca004c75464aa4f803bc0df11bb151cf and thus return this specific function in src/dialog.c to the former state of 0.95.9 and recompile 0.96.0. This restored the expected behaviour.

undo_appinfo_history_function.txt

Since this particular commit in turn appears to be related to https://repo.or.cz/wmaker-crm.git/commit/bd38778bef37da56705a2066e8181ec7dc3984a5 it would probably be a good idea if someone with actual knowledge of the code could recheck if the history breakage might not actually be caused within this area.

Just guessing, maybe it is more than just the history function that might be negatively affected?

@crmafra
Copy link
Contributor

crmafra commented Aug 21, 2023 via email

@wmlive
Copy link
Author

wmlive commented Aug 21, 2023

In pristine 0.96.0, prior to undoing the mentioned commit, $XDG_STATE_HOME was not set and thus empty. The prior location of the already existing history files was ignored nonetheless.

Defining XDG_STATE_HOME via ~/.xsessionrc to a location created for testing doesn't make any difference:
An existing $XDG_STATE_HOME is simply ignored and no history files are written or even read.
Not even if XDG_STATE_HOME is pointing to pre-existing $HOME/GNUstep/.AppInfo/WindowMaker/.

@crmafra
Copy link
Contributor

crmafra commented Aug 21, 2023 via email

@wmlive
Copy link
Author

wmlive commented Aug 21, 2023

[root]/srv/src/WindowMaker-0.96.0/wmaker-0.96.0 # grep -s PACKAGE_TARNAME *
aclocal.m4: AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
config.h:#define PACKAGE_TARNAME "WindowMaker"
config.h.in:#undef PACKAGE_TARNAME
config.h.in~:#undef PACKAGE_TARNAME
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:| #define PACKAGE_TARNAME "WindowMaker"
config.log:PACKAGE_TARNAME='WindowMaker'
config.log:docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
config.log:#define PACKAGE_TARNAME "WindowMaker"
config.status:S["docdir"]="${datarootdir}/doc/${PACKAGE_TARNAME}"
config.status:S["PACKAGE_TARNAME"]="WindowMaker"
config.status:D["PACKAGE_TARNAME"]=" "WindowMaker""
config.status: s&@DocDir@&${datarootdir}/doc/${PACKAGE_TARNAME}&g
configure:PACKAGE_TARNAME='WindowMaker'
configure:PACKAGE_TARNAME
configure:docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
configure:printf "%s\n" "#define PACKAGE_TARNAME "$PACKAGE_TARNAME"" >>confdefs.h
configure: pkgconfdir='${sysconfdir}/${PACKAGE_TARNAME}'
configure~:PACKAGE_TARNAME='WindowMaker'
configure~:PACKAGE_TARNAME
configure~:docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
configure~:printf "%s\n" "#define PACKAGE_TARNAME "$PACKAGE_TARNAME"" >>confdefs.h
configure~: pkgconfdir='${sysconfdir}/${PACKAGE_TARNAME}'
configure.ac: [pkgconfdir='${sysconfdir}/${PACKAGE_TARNAME}'])
Makefile:PACKAGE_TARNAME = WindowMaker
Makefile:docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
Makefile: @echo '#define PKGDATADIR "$(datadir)/$(PACKAGE_TARNAME)"' >> $@
Makefile.am: @echo '#define PKGDATADIR "$(datadir)/$(PACKAGE_TARNAME)"' >> $@
Makefile.in:PACKAGE_TARNAME = @PACKAGE_TARNAME@
Makefile.in: @echo '#define PKGDATADIR "$(datadir)/$(PACKAGE_TARNAME)"' >> $@
[root]/srv/src/WindowMaker-0.96.0/wmaker-0.96.0 #

@crmafra
Copy link
Contributor

crmafra commented Aug 21, 2023 via email

@wmlive
Copy link
Author

wmlive commented Aug 22, 2023

I am a bit puzzled by your observation above. That commit doesn't seem to be related.

Please just ignore my former claim that reversion of the commit for in src/dialog.c would resolve the issue, because it actually didn't. As it turned out, only reading the former history files was re-enabled by this, but not appending to nor creating newer history files worked. It is a bad habit of mine to look for culprits and jump to too early conclusions. I apologize for having pointlessly added to the confusion.

Now for the good news (and a caveat):

After completely recompiling and reinstalling wmaker with the corrected WINGs/proplist.c included, this indeed completely resolved the perceieved symptoms. Not only can be read and appended to former history files, even if no 'GNUstep/.AppInfo/WindowMaker/' exists yet it is created on the fly.

Now for the caveat:
If for example 'XDG_STATE_HOME=${HOME}/.cache/WindowMaker/WMHistory' is actually defined via ${HOME}/.xsessionrc, then history saving is completely disabled. The existence of XDG_STATE_HOME does not result in creation of any history files nor is XDG_STATE_HOME created if it doesn't already exist. At the same time, any pre-existing entries in 'GNUstep/.AppInfo/WindowMaker/' are ignored once XDG_STATE_HOME is declared.

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants