FS#42651 - [taskjuggler3] Issue with data directories/relative paths

Attached to Project: Community Packages
Opened by John Henderson (jwhendy) - Saturday, 01 November 2014, 21:16 GMT
Last edited by Maxime Gauduin (Alucryd) - Thursday, 06 November 2014, 08:12 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Maxime Gauduin (Alucryd)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

=== Description ===
I'm not sure what, exactly, but something in the Arch package of taskjuggler3 causes issues with report generation vs. the vanilla Ruby taskjuggler3 gem. I believe it is related to the tj-system-dirs.patch file here:
- https://projects.archlinux.org/svntogit/community.git/tree/trunk/tj-system-dirs.patch?h=packages/taskjuggler3

I have also filed bug reports with the developer on github, and this is the second time that the issue came down to something related to the Arch package path/different behavior in the gem install vs. Arch package:
- https://github.com/taskjuggler/TaskJuggler/issues/134
- https://github.com/taskjuggler/TaskJuggler/issues/154


=== System ===
$ uname -a
Linux arch_840 3.17.1-1-ARCH #1 SMP PREEMPT Wed Oct 15 15:04:35 CEST 2014 x86_64 GNU/Linux

$ ruby --version
ruby 2.1.4p265 (2014-10-27 revision 48166) [x86_64-linux]

$ tj3 --version
TaskJuggler v3.5.0 - A Project Management Software

Sample .tjp file is attached for testing.


=== Behavior with Arch package ===

- # pacman -S taskjuggler3 # version 3.5.0-7 was used
- Download tj-test.tjp
- $ cd ./path/to/tj-test.tjp
- $ tj3 tj-test.tjp


The following data structure will be created:
~/path/tj-test.tjp
~/path/Plan.html
~/path/taskjuggler/{css,icons,scripts}

Unfortunately, the html references are looking for ./{css,icons,scripts}, and thus they aren't picked up upon from ./taskjuggler/{css,icons,scripts}. If you copy Plan.html into the taskjuggler directory, it will pick up on the styling properly.


=== gem install method ===

- # pacman -Rsc taskjuggler3
- # pacman -S ruby
- $ gem install taskjuggler
- Edit ~/.bash_profile to contain: PATH=/home/jwhendy/.gem/ruby/2.1.0/bin:$PATH; export PATH
- Logout/login; verify tj3 is found by running `tj3 --version`
- $ cd ~/path/to/tj-test.tjp
- $ rm -r ./taskjuggler; $ rm ./Plan.html
- $ tj3 tj-test.tjp

The following directory structure is created:
~/path/tj-test.tjp
~/path/Plan.html
~/path/{css,icons,scripts}

This functions properly and renders correctly in the browser when opening Plan.html.

Please take a look at the patches applied to the package, the structuring of Arch's data dirs for this package, my bug reports, and the file Report.rb where the methods exist for copying/generating report-related files.
This task depends upon

Closed by  Maxime Gauduin (Alucryd)
Thursday, 06 November 2014, 08:12 GMT
Reason for closing:  Fixed
Additional comments about closing:  3.5.0-8
Comment by John Henderson (jwhendy) - Sunday, 02 November 2014, 20:10 GMT
I took a stab at trying to update the PKGBUILD or .patch files by fiddling with the taskjuggler3 build files from ABS. After about an hour of just trying to get it built correctly, the `tj3` command wouldn't even run for me! I get this error, even with `tj3 --help`:
```
/usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- tj3 (LoadError)
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/bin/tj3:4:in `<main>'
```

I was convinced it was my PKGBUILD or modified patch, so I just wiped the dir and re-copied from /var/abs/community... but making the vanilla ABS copy created the same result. I uninstalled the pkg and removed from /var/cache/pacman, installing from the repository instead of via ABS... and it works!

Manually wget'ing the files listed for the Arch package produces the same results as ABS. Diffing `pacman -Ql taskjuggler3` for the repo version vs. the built version reveals that when I build it, all the ruby stuff is being put into /usr/lib/ruby/vendor_ruby/2.1.4 instead of the packaged version using ./2.1.0. Indeed, the other packages coming along with ruby-mail and ruby-term-ansicolor end up in 2.1.0, so I think building locally results in a path mismatch.

So... I manually replaced `local _rubyver` with 2.1.0, which appears to work. I attached a modified tj-system-dirs.patch and PKGBUILD that seems to work for me, though please do correct at-will, as I have mostly no idea what I'm doing. Just taking the feedback from Chris at the github issue linked in the original report and trying to apply it by fiddling around to save you some time.
Comment by Maxime Gauduin (Alucryd) - Wednesday, 05 November 2014, 12:02 GMT
Thanks a lot for looking into this. Keeping the hierarchy makes more sense indeed. I incorporated your changes, hopefully I didn't miss anything. Can you try 3.5.0-8 to check whether it works as intended?
Comment by John Henderson (jwhendy) - Wednesday, 05 November 2014, 23:56 GMT
Awesome -- thanks so much for the quick fix! I really had approximately no idea what I was doing, so I'm glad I was able to help out. Just re-processed two existing .tjp files after deleting my report directory and it appears everything is behaving nicely. Thanks again, really wonderful to have such a rapid response. Feel free to mark closed/fixed; my issue is resolved!

Loading...