Closed th-otto closed 6 years ago
Yeah, we've agreed on one "clean" PR even if it changes many files because a lot of changes depend on each other and we weren't able to resolve this using classic "one PR per change" approach.
Right now we only have to make this branch compilable / not crashing udo. ;)
On Saturday 04 March 2017 14:06:41 Miro Kropacek wrote:
Right now we only have to make this branch compilable / not crashing udo. ;)
I dont' think that this crash has to do with the patches, i've seen this already in other build-logs.
Yes but those were your changes. :) Master is buildable all the time: https://travis-ci.org/freemint/tos.hyp/builds/207670232
On Saturday 04 March 2017 14:32:40 Miro Kropacek wrote:
Yes but those were your changes. :) Master is buildable all the time: https://travis-ci.org/freemint/tos.hyp/builds/207670232
Yes, but only because you ignore the error code:
udo --stg -o "$PWD/gh-pages/archives/tos_hyp_de.stg" "$PWD/tos_hyp.u" || true ... Warnings: 4108 Notes: 4108 Errors: 602
The crash in html output seems to be not reproducible. The first time i ran svn-udo i had that crash here too, now i can't reproduce it:
/tmp/udo/Source/udo --html --tree -o "output/en/index.html" "tos_hyp.u"
This is UDO Version 7.04 (1296) for Linux Copyright (C) 1995-2001 by Dirk Hagedorn Copyright (C) 2001-2014 by The UDO Community UDO is Open Source (see http://www.udo-open-source.org/ for further information).
Pass 1: Pass 2... 100%
Output written to output/en/index.html
Errors: 20
Hm, I don't get it. When i execute the following script locally, i don't get any core-dumps (with the PR-1 branch of my fork checked out):
rm -rf /tmp/udo svn co "svn://udo-open-source.org/UDO/trunk" "/tmp/udo" cd "/tmp/udo/Source" && make -f Makefile.linux cd -
cd "/tmp" test -f hcp-0.9.9-linux.tar.bz2 || wget "http://tho-otto.de/download/hcp-0.9.9-linux.tar.bz2" tar xjf hcp-0.9.9-linux.tar.bz2 cd -
rm -rf gh-pages mkdir -p "gh-pages/de/bilder" "gh-pages/en/bilder" "gh-pages/archives" cp -r "bilder/gif" "gh-pages/de/bilder" cp -r "bilder/gif" "gh-pages/en/bilder" cp "html/tos_hyp.gif" "gh-pages" /tmp/udo/Source/udo --html -o "$PWD/gh-pages/index.html" "$PWD/html/tos_hyp.u" /tmp/udo/Source/udo --html --tree -o "$PWD/gh-pages/de/index.html" "$PWD/tos_hyp.u" /tmp/udo/Source/udo --stg -o "$PWD/gh-pages/archives/tos_hyp_de.stg" "$PWD/tos_hyp.u" || true /tmp/hcp-0.9.9/bin/hcp -z -o "gh-pages/archives/tos_hyp.hyp" "gh-pages/archives/tos_hyp_de.stg" || true
cd "gh-pages/archives" zip -9 tos_hyp_de.zip "tos_hyp.hyp" "tos_hyp.ref"
cd -
mv config.u config.u.orig sed -e 's/^#!language english/!language english/;' -e 's/^!language german/#!language german/;' config.u.orig > config.u.tmp && mv config.u.tmp config.u /tmp/udo/Source/udo --html --tree -o "$PWD/gh-pages/en/index.html" "$PWD/tos_hyp.u" /tmp/udo/Source/udo --stg -o "$PWD/gh-pages/archives/tos_hyp_en.stg" "$PWD/tos_hyp.u" || true /tmp/hcp-0.9.9/bin/hcp -z -o "gh-pages/archives/tos_hyp.hyp" "gh-pages/archives/tos_hyp_en.stg" || true
cd "gh-pages/archives" zip -9 tos_hyp_en.zip "tos_hyp.hyp" "tos_hyp.ref"
cd -
mv config.u.orig config.u
That should essentially be the same commands as executed by .travis.yml
Can anybody reproduce it?
Travis VMs are quite outdated, they run on Ubuntu Trusty (x64) so your setup is most likely different. Maybe something has been fixed in libc or any of udo dependencies.
You can try installing Trusty in VirtualBox and try there.
And yes, I meant html output only, stg needs the "|| true" hack.
Maybe something has been fixed in libc or any of udo dependencies.
udo should not have any other dependencies but libc (i think not even libm). And it is compiled on the same machine. So that would be really strange. Did you try to run the script somewhere else? I have no idea currently where the segfault is from and how to fix that if you want to stick to the svn version.
Yeah, on my setup (Arch Linux = everything latest versions) works fine.
As discussed, as soon as you provide patches which are a) as minimal as possible b) make stuff better (for instance make stg generation end with zero errors) we can switch to your version.
Also as noted, feel free to include download of your UDO version as part of the PR, then everyone can check that yeah, things are getting better (now we have a PR which segfaults ;))
So it looks like we currently can't do much about the segfaults, except switching to my version of udo and hope that it works. I will try that out, but i have to prepare a downloadable version of the sources available first, or maybe just use the binaries as a first step.
for instance make stg generation end with zero errors
That should be the case when using my version. A few warnings will remain (handled in later patches), but no errors. As mentioned above, the current errors all result from the missing !label- command. If absolutely needed, that can also be turned into a !label command; the difference between the two is that !label- is ommited from automatic reference generation.
Also as noted, feel free to include download of your UDO version as part of the PR
I'll try that.
BTW one thing was a bit unclear to me. The travis.yml has several sections. In your original version you add the directory of the udo and hcp excutables in the before_script part. Are you sure that those environment variables make it to the actual script?
In your original version you add the directory of the udo and hcp excutables in the before_script part. Are you sure that those environment variables make it to the actual script?
Yes, totally sure. :) You can see them in action in the log above, it wouldn't work at all if the variables/commands were ignored.
Wee. So in theory it should work now. The script currently fails due to lots of errors like this:
Error: gem/vdi/output/v_ftext.ui 36: wrong number of parameters: !nolink
These are actually errors in the source, and the reason that it worked before is just that svn-udo fails to recognize them. Those errors are addressed by later patches, but for now that would mean that applying only this PR will give you those errors.
Another thing is that i had a bit trouble with the travis.yml syntax, that's the reason for the 3 commits in the patch. If that is of concern, i can delete and recreate that PR-1 branch.
Another thing is that one of the commits is a merge of master to my PR-1 branch. This is caused by changes to the .travis.yml in the master that where done after i created my fork, and which i had to merge in order not to produce merge conflicts. It's no big deal, but might look strange in the resulting tree.
Feel free to rewrite history in this PR, it's your branch after all. :) The goal is to have as clean PR/merge as possible.
How hard is to apply the patches which make the source error free?
How hard is to apply the patches which make the source error free?
Its a bit of work since, if i remember right, not all of the fixes where originally in the same patch. And the order will change, so i might have to rewrite some of the other patches, too. But putting the fixes together makes sense anyway, and its clear that those fixes should be applied asap.
So i guess that commit should be part of PR-1 then?
So i guess that commit should be part of PR-1 then?
Yeah, whatever it takes to make it compilable and error free. :)
Done now ;) Should even be possible to remove those || true in the travis.yml now
Any news on this? Could it be commited?
Well, Gerhard told me he'll write back to me "in a few days".
I merge all in whitout really know if everything is good. It looks like that something is good for html and not for the hypertext.
As discussed with Miro, this contains several commits that are related. They are separated as much as possible, but depend on another and should be applied in order.