This forum is no longer active. Please post your questions to our new community site

Forums Redmine

Integrated Repository Control?

Subscribe to Integrated Repository Control? 39 post(s), 9 voice(s)

Pages: « Previous 1

 
Avatar Scott 3 post(s)

I was reading about the “Enable WS for repository management” option in Redmine and it says you need mod_perl to do it the “recommended” way. Is there an easy way to add Perl support without breaking the Redmine stack I installed? I don’t want to do anything that will cause future upgrade problems.

Thanks!

Scott

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

Hi Scott,

I’ve been reading about this feature and I don’t think there’s actually an easy way to enable this module, because we don’t bundle it with Apache. Thanks for the suggestion, we will include this improvement into our “project backlog” for future versions.

Cheers

 
Avatar Scott 3 post(s)

Than you for the prompt reply! I look forward to the update.

Scott

 
Avatar bweston 10 post(s)

This is kind of frustrating. I’ve actually got the Redmine stack installed on a 64-bit CentOS virtual server that already has essentially another full LAMP stack on it, including mod_perl. The Redmine stack has perl in it (which makes it hair-pullingly frustrating that there doesn’t seem to be any way to connect the stack’s Apache and Perl to each other).

If I am figuring correctly, I should be able to set up DAV access to svn through either apache. If I do it through the Bitnami stack, I get up-to-date svn, but I can’t integrate authentication with Redmine. If I do it through the non-Bitnami apache, I think I could make the Redmine authentication integration work…but I’d be stuck using the svn 1.4.2 from CentOS (due to restrictions beyond my control, Bitnami is the only recourse available to me for using a more recent version of svn).

If anybody figures out a way to make this work, please share it.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

We will add in our TODO list to include mod_perl in the Stack. Thanks for the suggestion. There are other threads where users configured successfully Apache with mod_dav. This link could be helpful for you:

http://bitnami.org/forums/forums/redmine/topics…

 
Avatar bweston 10 post(s)

mod_dav will work fine. It’s the mod_perl-based setup for letting the Redmine user database control the dav access to the repositories that some of us are looking for. I’m actually very close (I think) to a solution using a proxy (unfortunately, a solution that probably wouldn’t be very useful to the majority of users) if I can just figure out why the connection to the database is failing.

 
Avatar bweston 10 post(s)

I believe I have it working using the proxy method. I will try to make certain of it and then figure out what the heck I did, so I can post it here in case it is of use to anyone. However, I kind of suspect that wanting to use Bitnami Redmine+Subversion but having a non-Bitnami Apache+mod_perl available on the same server is something of a niche case.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

Thanks, please post your solution when you have a chance, this would be very useful for other users.

 
Avatar bweston 10 post(s)

Okay, this is what I believe to be the important parts of my setup.

In the Bitnami stack (which runs on port 8080), in apps/redmine/conf/redmine.conf, underneath the proxy directives for the balancer:

<Location /svn>
DAV svn
SVNParentPath /opt/svn
SVNListParentPath on

Order deny,allow

Deny from all
Allow from localhost
Allow from 172.0.0.1
Allow from 192.168.3.166
</Location>

<Location /svn-private>
DAV svn
SVNParentPath /opt/svn
Order deny,allow
Deny from all
<Limit GET PROPFIND OPTIONS REPORT>
Allow from localhost
Allow from 172.0.0.1
Allow from 192.168.3.166
</Limit>
</Location>

The first block basically establishes DAV access to my svn repositories for the local machine only (I suspect I don’t actually need all three “Allow From” lines). The second block is the read-only access for Redmine’s repository browser, just so I can point the app there to make sure there’s no way Redmine can accidentally alter the repository.

In /etc/httpd/conf.d/subversion.conf, for the non-bitnami Apache server (with mod_perl) running on port 80:

<Location /svn/>
ProxyPass http://192.168.3.166:8080/svn/
ProxyPassReverse /
AuthType Basic
AuthName redmine
Require valid-user
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler

RedmineDSN “DBI:mysql:database=bitnami_redmine;host=localhost; mysql_socket=/opt/redmine-0.8.7-0/mysql/tmp/mysql.sock”

RedmineDbUser “bitnami”
RedmineDbPass “bitnami user’s password which I unfortunately forgot where I found”
</Location>

Thus, subversion (aside from Redmine’s repo browser, which just goes straight to the svn-private on port 8080) is accessed via the port 80 server, which passes access control to Bitnami Redmine through mod_perl and then proxies the actual DAV access to the port 8080 server so as to be able to use Bitnami’s up-to-date svn instead of CentOS’s 1.4.2.

I think I also might have had to grant full database access to the bitnami user in MySQL.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

Thanks a lot for posting this tutorial.

RedmineDbPass “bitnami user’s password which I unfortunately forgot where I found”

It is in the Redmine database configuration file: installdir/apps/redmine/config/database.yml

 
Avatar bweston 10 post(s)

A quick note of possible relevance: the December 15 release of RubyStack 2.0-1 comes with mod_perl, which should make RubyStack + Redmine module capable of supporting Redmine’s recommended integration approach without the need for a separate Apache server (I may be trying that later just to make sure I’m right). If anybody’s looking for such a solution right away, without waiting for a possible mod_perl-enabled Redmine standalone, this is probably a better way to go.

Speaking from personal but limited experience to anyone who is concerned about the relative complexities, I don’t think the stack + module approach is significantly more complicated to install than a standalone app stack.

 
Avatar bweston 10 post(s)

Further update: This is still not quite as simple as one might hope, because the perl provided in the Rubystack apparently doesn’t come with the DBI module and I don’t even remotely understand the errors I get when I try to install it…certainly not well enough to want to try forcing the install.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

Hi,

Yes you are right, the 2.0-1 Rubystack ships mod_perl to let to integrate Repository Control with Redmine in the future. We only ship this module but we have no time to configure Redmine yet. If you try to configure it using the bundled mod_perl, please let us know if you have any issue. We are glad to configure Redmine using this module in the next release. Thanks.

 
Avatar bweston 10 post(s)

The biggest remaining obstacle seems to be that the stack doesn’t come with the DBI perl module (or, presumably, the DBD’s to go with it). So far I have been unable to work around this, for reasons that I believe revolve around the fact that I have no idea how to install 32-bit perl modules into a Bitnami stack running on a 64-bit virtual machine.

I think if DBI and DBD were there, I could just copy and paste most of my configuration except with the proxy workaround removed.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

We will try to include the Perl DBI module in the next release. Thanks for your time.

 
Avatar bweston 10 post(s)

It’s almost there now. I think the only thing missing now is the libdigest-sha1-perl module, which I couldn’t tell was missing until the latest version came out with the necessary DBI and DBD modules included. I am currently trying to figure out whether it should be possible to install modules onto the perl included in the stack. It seems like all the pieces are there, but so far I seem to be brought up short by the fact that

./perl -V:prefix

in the bitnami perl bin directory returns

prefix=‘/bitnami/rubystack-linux/output/perl’;

which so far seems to mean I can’t try to install from CPAN. I’ll have to wait and try to work on that again next week.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

Hi,

We will include the libdigest-sha1-perl module in the next release. Also we will fix the perl issue to could use cpan to install other modules. Thanks for your time.

Cheers.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

Hi,

We have included the libdigest-sha1-perl module in BitNami Redmine 0.9.2 and we have fixed the cpan error too.

 
Avatar bweston 10 post(s)

Awesome. I had actually come up with what I think was a workaround by getting MySQL to perform the sha1 hash instead of using the perl module, but I hadn’t tested it yet.

I’m taking another shot at getting it working; here are the steps…(Quick note: I did this on a CentOS virtual machine)

Install Bitnami Redmine stack 0.9.2
cd [stack install directory]
cp apps/redmine/extra/svn/Redmine.pm perl/lib/site_perl/5.8.8/i686-linux/Apache

edit apache2/conf/httpd.conf
uncomment line 108:
LoadModule dav_svn_module modules/mod_dav_svn.so
add line:
LoadModule perl_module modules/mod_perl.so

The instructions at http://www.redmine.org/wiki/redmine/HowTo_confi… should work as written with two caveats.

First, you need to get the right user. I think I determined that for my Bitnami stack it was root:daemon. I’ll come back and amend this if I determine I was wrong.

Second, according to the page about actually setting up access control, I think the svn-private url is now superfluous, so keep that in mind if you use the —url parameter.

You can go ahead and grab that location block for the sys directory and stick it into apps/redmine/conf/redmine.conf with the appropriate address.

Next, move on to http://www.redmine.org/wiki/redmine/Repositorie…

You should be able to use the recommended code block mostly unmodified. You will, of course, need to set the correct SVNParentPath, RedmineDSN, RedmineDbUser, and RedmineDbPass lines based on your configuration and apps/redmine/config/database.yml. I also ended up using a socket connection (I think it might have been necessary), so my RedmineDSN line looks like:

RedmineDSN “DBI:mysql:database=bitnami_redmine;host=localhost;mysql_socket=/opt/redmine-0.9.2-0/mysql/tmp/mysql.sock”

I haven’t tested the repository creation and access yet, but after following these steps I was able to start up and access the stack without a hitch. Every problem I’ve had with it in the past kept apache from running. I’ll post additional confirmation when I make sure that repository creation and access are working as expected.

Thanks a ton for all your work at making it possible to do this with a Bitnami stack!

(Next on my agenda…convince my higher-ups that bazaar is preferable to subversion and figure out how to adapt all this for bzr…)

 
Avatar anandms 18 post(s)

i am sorry for asking a dumb, beginner question :)
do the above posts mean that i can make redmine handle authentication and authorisation of access to svn using the latest bitnami stack on my windows xp machine??

thanx folks!

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

@bweston Thanks for posting this quick-guide. I’m sure this post will be helpful for other BitNami users.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

@anandms I do not think so. This integration is for managing repositories from the application.

 
Avatar bweston 10 post(s)

Actually, anandms, the first howto link is about automating the generation of the repositories (create a new project with a repository enabled, and within ten minutes subversion will automatically be made ready for it) and the second link is about making Redmine control access to the svn server. The instructions for automatically creating the repository are, I believe, Linux-specific. The instructions for controlling access should work on Windows, I think, since I’m assuming the Windows stack still uses an Apache server. The paths will presumably be different. I have not tested it on Windows, however.

 
Avatar anandms 18 post(s)

bweston, thanks for your updates. my problem is that i am not an IT guy. i work in a factory! i am trying to introduce some basic project management discipline to our teams, in addition to have some document control system for our standard operating procedures and product specs.

right now i am stuck with enabling svn repository views to all relevant users via redmine, but having to give them a separate user name and password for write permissions or a full checkout. And I have to manually keep editing text files to manage directory level access conrol :(

but for binami stack i would not even have managed to install redmine. great work, guys!! i introduced the stuff to the team yesterday, and everybody’s all excited about it. my trouble will start when everybody starts using it.

coming back to my problem, i have identified an AMPP stack which has perl and dbi. is it possible to make it work with the bitnami redmine? the instructions above are linux specific.
i think i know enough to figure out the correct windows specific paths. but i am having trouble installing and mod_perl. having identified this AMPP stack, and checking out the folders, i have this doubt- is mod_perl contained inside apache, or is it the other way round???!!

 
Avatar homer007 1 post

@anandms As of the feb 10th version of the windows bitnami stack perl was not included; the linux version though contains perl pre installed. This makes things much more difficult to set up for windows users. I hope they change this in the future, but until then you appear to be on the right track; I had to do something similiar. It turned out it was better to get perl directly though through activeperl, and I had to be careful to use the multithreaded version (perl >= v5.10) of each of the required perl addons, as well as installing mod_perl for apache. It was not easy to set up, but I’ll share some notes I wrote down earlier:

Once perl is installed to the correct folder, use ppm (included in the perl bin folder), something along the lines of:
ppm

install DBI
install Digest::SHA1

install http://cpan.uwinnipeg.ca/PPMPackages/10xx/DBD-m…

install http://cpan.uwinnipeg.ca/PPMPackages/10xx/mod_p…

Also, comment out redminecachecredsmax on the apache svn config file due to apache crashing when enabled.

If you can get perl to work with your setup, the rest should be fairly easy. Hope some of this helps.

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

Thanks! Great post, I’m sure this will be helpful for other bitnami users.

 
Avatar iane 3 post(s)

OK, I’m trying to get this set up on a VM and found a few gaps.
libdbd-mysql-perl is not installed and apt-get libdbd-mysql-perl does not install it to the correct location.

warning: something I’ve done broke mysql, follow in my footsteps carefully
Install the zlib required for the libdbd install:

  • sudo apt-get install zlib1g-dev

then, run cpan. If this is the first time, it’ll prompt you for a pile of values – I accepted all defaults

  • sudo cpan

Once cpan was all happy and presented a prompt, install the library

  • cpan> install DBD::mysql

I discovered that it still wasn’t happy with the mysql connection. I think it wants to use a pipe as bweston did. The pipe is listed in the same file you found the database username/password info: apps/redmine/config/database.yml

This is as far as I got. I mistyped “sudo ./ctlscript restart apach” (left of the e) and it restarted everything – but mysql didn’t come back. So, now I’m off to troubleshoot that.

Thankfully I’m only working on a test server.

 
Avatar iane 3 post(s)

ahh!! Don’t panic! mysql didn’t shut down completely and a server reboot fixed the problem.

And my above steps worked! Thanks much bweston!

My DSN looks like this:
RedmineDSN “DBI:mysql:database=bitnami_redmine;host=localhost;mysql_socket=/opt/bitnami/mysql/tmp/mysql.sock”

 
Avatar iane 3 post(s)

Was working on this late last night – now I realize I didn’t mention my environment. I’m working on the Bitnami Redmine stack 1.0.2-0 downloaded as the Ubuntu virtual machine. Following bweston’s steps mostly worked, except I had to perform the noted tasks first:

  • sudo apt-get update
  • sudo apt-get install zlib1g-dev
  • sudo cpan
    (Accept all defaults, tell it the locale, pick 3 servers and more until you get to the cpan prompt)
  • cpan> install DBD::mysql
    (It’ll download, build and install the module)
  • cpan> quit

Open up (base)/apps/redmine/config/database.yml and note not only the username and password that you’ll need in later steps, but the database socket as well.

Now you can follow bweston’s post above from Feb 12 after the “Install Bitnami stack” bit.

  • cd [stack install directory]
  • cp apps/redmine/extra/svn/Redmine.pm perl/lib/site_perl/5.8.8/i686-linux/Apache
  • edit apache2/conf/httpd.conf
    uncomment line 108:
    LoadModule dav_svn_module modules/mod_dav_svn.so
    add line:
    LoadModule perl_module modules/mod_perl.so

Note that your RedmineDSN will be something like:
RedmineDSN “DBI:mysql:database=bitnami_redmine;host=localhost;mysql_socket=/that/path/you/found/in/the/database.yml/file”

 
Avatar Beltrán Rueda Administrator 3,714 post(s)

Nice guide, thanks for posting it. I’m sure that will be helpful for other BitNami users.

Next Page

Pages: « Previous 1

Forums Redmine