Perl 6 - the future is here, just unevenly distributed

IRC log for #webwork, 2013-12-18

| Channels | #webwork index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
03:27 rbeezer joined #webwork
09:12 mgage joined #webwork
09:21 mgage joined #webwork
15:23 aubreyja joined #webwork
15:49 goehle joined #webwork
15:49 goehle hey mgage
15:49 goehle i'll be around
15:50 mgage ok  --see you at noon then
15:50 mgage my last exam is tomorrow night so I'm still getting grade reports cleaned up and dealing with frantic students :-)
15:55 goehle sure
15:55 goehle i've been finishing up other stuff
15:55 goehle I'll try and look at dev testing sometime soonish
15:55 goehle hopefully :)
16:13 aubreyja hey goehle
16:13 goehle hey
16:14 aubreyja I'm wondering - peter's work with dancer - how is it affecting use of modperl?
16:14 aubreyja I've been looking at fixing things for use with apache 2.4
16:14 goehle its not currently
16:15 aubreyja the problem is, the official mod perl release (2.0.7) doesn't work with apache 2.4
16:15 goehle the dancer stuff is just used for the api
16:15 goehle but page requests are still put through modperl
16:15 goehle hmm
16:15 goehle well thats trouble
16:15 goehle modperl is still integral to webwork
16:16 aubreyja yeah, 2.0.8 is actually packaged with new ubuntu and fedora releases and it works (mostly) with apache 2.4
16:16 aubreyja thing is, it's not officially released yet by the mod perl people
16:16 aubreyja the distros are pulling it from the mod perl dev branch
16:16 goehle ug
16:17 goehle well
16:17 aubreyja yeah, so, I think we should start abstracting out the mod perl stuff and making it possible to use other transports -
16:17 aubreyja fastcgi seems like a good first start
16:18 aubreyja but, I don't want to waste time thinking about it if it's going to be scrap once peter's work is implemented
16:18 goehle thats not going to happen before 2.8 though
16:18 goehle um
16:18 aubreyja right - it's a somewhat big project. Well, probably not big, but requiring care
16:18 goehle I honestly am not sure
16:19 goehle I think that eventually petes stuff will be able to run webwork without apache
16:19 goehle but its not clear when
16:19 goehle for 3.0 I suppose
16:19 aubreyja Dancer certainly allows for not requiring apache
16:19 goehle in general that abstraction is definitely something that has been discussed for 3.0
16:20 aubreyja as an alternative, we could learn C really well and fix mod perl :)
16:20 goehle I guess I dont understand
16:20 goehle isn't a fix for mod perl incoming
16:20 goehle (in the dev branch)
16:21 goehle its just 2.0.7 which doesnt work
16:21 aubreyja well, yes, but I'm worried about the future - there are very few people actively working on mod perl.
16:21 goehle actually
16:22 aubreyja So, when new releases of apache come out, changes to mod perl aren't keeping pace
16:22 goehle apache 2.4 is really only hitting in the upstream distros
16:22 goehle which are also using the dev branch of mod perl
16:22 goehle right.  So there are two problems
16:22 aubreyja right - that's right - so, it's not an emergency, but
16:23 goehle the long term one is that modperl isn't going to be a stable option
16:23 goehle thats more or less taken care of by webwork 3.0
16:23 goehle that is intended to be able to run with a more modular front end
16:23 goehle and in particular pete has some very basic stuff for running webwork straight through dancer
16:23 goehle but its a bit experimental right now
16:24 goehle the short term one is that there is currently a conflict between webwork, apache and modperl.  Only certain versions will work with each other
16:24 goehle is that the gist of it?
16:25 aubreyja right - we're going to start getting more complaints about it if people try to install on (or upgrade to) current distros
16:26 aubreyja And, philosophically speaking, we *should* be encouraging use of the most current apache, for example, since it is the supported version of apache (with security patches, etc.)
16:26 goehle well, I would say we should encourage the use of your distros version of apache
16:27 goehle they will backport important security stuff
16:27 goehle in any case
16:27 mgage and we still have people using RHEL5 with 5.8 perl -- that's why we're not using more modern perl in the basic code.  (sigh).
16:27 aubreyja I'm interested in this now since as a hobby I like to test my install script on new distros, and it's breaking a lot on those (while working fine on current-1 (or 2) versions)
16:28 goehle it seems like the modperl/apache thing isn't actually an issue, because the distros that ship with 2.4 use a mod perl 2.0.8
16:28 goehle so the big issue is that our webwork apache config stuff doesnt work with 2.4
16:28 goehle I looked at that forum page
16:28 aubreyja See, I think we should stop supporting people who use upstream software versions that are no longer supported upstream
16:28 goehle those changes aren't too bad, right
16:28 aubreyja (e.g. perl 5.8.8, apache1, ...)
16:29 aubreyja it's sort of system administratively irresponsible of them, and it would be easier for us to clean up stuff (plus they could always get old versions from git)
16:30 mgage From what I've seen from a distance it seems to me that most of the incompatibilities could be managed by keeping track of changes to webwork.apache2-config  and to the files lib/Apache/WeBWorK.pm   and maybe Request.pm  -- the current structure is pretty modular and we're already overloading the Apache request object.  Rewriting those files to work with fastcgi might be a good safety -- or perhaps to work more smoothly with Dancer although I think that will
16:30 mgage bigger change.
16:31 aubreyja yeah, I actually think getting most things to work with, for example, fcgi wouldn't be too hard
16:32 goehle http://webwork.maa.org/moodle/mod/forum/discuss.php?d=3155
16:32 goehle is this the main forum thread, or is there another one
16:32 aubreyja but there are places in the code where the modperl version matters (e.g. authen.pm) so we're sure to run into trouble here and there
16:33 aubreyja yeah, that's the type of thing we're going to start seeing more often if we don't address this.
16:34 goehle so it looks liek we will need to make a new config file
16:34 aubreyja For now, I'm trying to address it in ww_install so it just does the right thing
16:34 goehle well I guess not nm
16:34 goehle since the max requests and max connections lines go in the main apache config file
16:35 aubreyja well, for example, 2.4.6 has a rewritten access control module, so "allow,deny" stanzas work differently.
16:35 goehle so its more just an issue of updating the documentation to have the correct variables
16:35 aubreyja the old behavior allowed for backwards compatibility, but probably not for long
16:35 aubreyja same for max children and max requests - those have been renamed.
16:35 goehle so then we also update teh webwork.apache-config file
16:35 goehle right
16:36 aubreyja yeah, really I think we should have a 2.2 webwork.apache2-config and a 2.4 webwork.apache2-config for starters
16:36 goehle well;
16:36 goehle so the changes to 2.4 aren't going to work for 2.2?
16:38 goehle joined #webwork
16:38 aubreyja right - redoing the "allow deny" blocks and renaming the maxclients and maxrequests variables to suit 2.4 almost certainly won't work with a 2.2 server
16:39 goehle it looks like maxclients and maxrequests
16:39 goehle it looks like max clients and max requests goes in the main apache config file
16:41 aubreyja I wonder how necessary that is - I think we can cat on an extra config file at start up.
16:41 goehle well
16:42 goehle http://docs.cpanel.net/twiki/bin/view/EasyApache/Apache/Apache24Issues
16:42 goehle so it looks like there the conversion has already been made in default files
16:42 goehle so its mostly an issue of updating documentation
16:42 goehle if you have 2.4 you set MaxConnectsPerChild
16:42 goehle otherwise you set MaxRequestsPerChild
16:43 goehle but the config file (at least for a fresh install) should have the correct directive name
16:43 goehle the allow/deny stuff
16:44 goehle probably means we need a webwork.apache2.4-config.dist
16:44 goehle files
16:44 goehle but thats not the end of the world
16:44 goehle I'm more worried about the Authen.pm stuff
16:46 aubreyja so, I think we know more than if it's mod_perl1 or mod_perl2 - we probably have the full mod_perl version number in the environment. If so, we can just build a conditional on that.
16:46 goehle yeah
16:46 goehle I was thinking thats probably the way to go
16:46 goehle that shouldn't be so bad either then
16:48 goehle then dealing with the defined(@array) stuff is just a  chore
16:48 aubreyja yeah
16:49 goehle does this need to be done for 2.8?
16:50 aubreyja there's probably no reason not to do the defined(@array) cleanup
16:51 aubreyja there are reasons not to do the other stuff now, but there are also reasons to do them.
16:51 goehle hmm
16:51 aubreyja maybe it would be better to backport the changes later if needed
16:51 goehle so you said the allow/deny stuff would still work for the time being
16:52 aubreyja not many people are going to switch to a current linux distro between now and summer
16:52 aubreyja yeah
16:52 goehle so that really only leaves the renamed directives
16:52 mgage I'd like to get the release out before Christmas break so that the IT people can start work on upgrading their systems before the next semester.
16:52 goehle which currently go in the main apache2 file
16:52 aubreyja yeah - it will still work
16:52 goehle if people are installing fresh they will be correct
16:52 goehle and if they are upgrading, well, thats na issue for everyone upgrading, not just webwork
16:52 goehle so that really only leaves the Authen.pm issue
16:53 goehle and that seems easy enough to fix
16:53 goehle what version of mod perl changed remote_addr to client_addr?
16:53 aubreyja the only bad thing that could happen is that someone upgrades not just webwork but their apache and mod_perl, and they need the new name for remote_addr
16:53 mgage some of the bugs -- including defined(@array) are long standing and people have work arounds already. If they upgrade perl/apache too much they are going to have trouble with any of the versions
16:54 mgage seems to me that much of this can be fixed in the documentation for now -- the number of people upgrading that far is probably not going to be huge and they will mostly be those with more capable IT.
16:55 aubreyja not sure precisely - apache 2.4.x changed the api for some value of x, and mod_perl 2.0.7 I think doesn't contain this change
16:55 aubreyja yeah, I agree with that
16:57 goehle hm
16:57 goehle so I need to figure out which version to condition on
16:58 aubreyja one thing is, we can set perl variables in the apache config files - so, for example, you could do PerlSetVar xyz in the webwork-apache2.config2.2 (and 2.4) as appropriate and not need to add a conditional in the code (you'll just have to find the variable in the environment)
16:59 aubreyja http://perl.apache.org/docs/2.0/user/config/config.html#C_PerlSetVar_
17:00 goehle currently it uses a conditional on the MOD_PERL_API_VERSION env variable
17:00 goehle I think thats set by perl
17:00 goehle I was going to keep using that if possible
17:00 goehle however, I"m having trouble finding documentation
17:01 goehle most everything I'm reading still says remote_addr is the correct fucntion
17:01 aubreyja yeah, no docs on the mod_perl site for the devel version (2.0.8)
17:06 goehle would it be impossible for someone to have apache 2.4
17:06 goehle and not have mod perl API version 2?
17:06 aubreyja no, mod perl 1 wouldn't work
17:07 aubreyja somebody could fake redeclare the MP version I guess
17:08 goehle yeah
17:08 goehle then they have their own problems
17:08 goehle :)
17:08 goehle do you have a machine you could test this on?
17:08 aubreyja yeah, like sociopathy
17:08 aubreyja yeah
17:34 mgage goehle:
17:35 goehle hey
17:35 mgage what dates were you planning for the code camp in ashville
17:36 mgage (there is a phone call at 800-741-9415 if you have time
17:37 goehle May 19 to May 22nd
17:37 goehle whats the code?
17:37 mgage Call 800-741-9415, and press 2. You will connect to a line for "RingCentral conferencing". Enter the code 186300846 and press # to connect to the conference. Some jazz guitar will entertain you if you're the first one to arrive.
17:44 goehle hey aubreyja
17:44 aubreyja sup?
17:44 goehle I've modified authen tow orkw ith 2.4 I think
17:44 goehle its my github
17:44 goehle branch apach24
17:59 aubreyja goehle: can you look in /etc/apache2/mods-available on ubuntu < 13.10 and confirm that apreq.load is there (or is it apreq2.load?)
18:00 goehle its there on 13.04
18:00 goehle apreq.laod
18:00 goehle *load
18:00 aubreyja which is it apreq (not apreq2) right -
18:00 aubreyja good
18:01 aubreyja ok, on 13.10 it's apreq2...
18:01 goehle :/
18:01 goehle is there a soft link apreq?
18:02 aubreyja well, the issue is that we instruct users to do 'a2enmod apreq' to enable the module, but now we have to instruct them to do 'a2enmod apreq2'
18:02 aubreyja also, I have to change my install script to handle both cases...
18:03 goehle the trials and tribulations of living upstream I guess
18:03 goehle where does this documentation go anyway
18:03 aubreyja it's a tough life
18:03 aubreyja install documentation
18:03 goehle I'm looking for where to change maxclients to the correct thing
18:03 aubreyja (none of which is likely to be current in many other ways too)
18:04 goehle right
18:04 goehle so a lot of that is a bit out od ate
18:04 aubreyja the search should be good enough to just search for maxclients, and find it google like
18:05 goehle should I change all of them
18:05 goehle or just the installation manual for 2.7?
18:05 aubreyja nah, just 2.7 I'd say
18:10 goehle ok
18:10 goehle so I updated http://webwork.maa.org/wiki/Installation_Manual_for_2.7_on_Ubuntu_12.04#Configuring_Apache
18:10 goehle is this rally the latest page we have?
18:11 aubreyja probs
18:12 mgage joined #webwork
18:20 aubreyja goehle: actually, it's no longer in apache2.conf in 2.4 - it's in apache2/mods-enabled/mpm_prefork.conf
18:20 goehle ah
18:21 aubreyja and the prefork mpm has to be enabled first (on ubuntu) - I'll fix it once I figure out what's going on
18:21 goehle man
18:21 goehle well
18:21 goehle it seems like we should make a completely new installation doc
18:21 goehle since apparently things have changed
18:22 aubreyja yeah
18:22 aubreyja might be better to make a bunch of smaller installation docs so it's not such a pain to maintain them (but maybe it would be a pain to maintain many smaller docs, dunno)
18:23 aubreyja e.g. break each step into it's own page
18:23 goehle Id ont know
18:23 goehle the current way
18:23 goehle we take the installation from the previous year
18:23 goehle copy it
18:23 goehle and change what needs changing
18:23 goehle and add a "historical" tag to the previous doc
18:23 goehle and stop maintaining it
18:24 goehle if we have seperate little pages then we either have to a have seperate separate little pages for different versions
18:24 aubreyja yeah, that's easy enough probably
18:24 goehle well that, basically
18:25 aubreyja it's a lot of duplication though across different os's - I guess that's my main issue with it
18:25 goehle yeah
18:25 goehle I mean thats a real problem because the "main" installation page is so far out of date
18:25 goehle I would say that we maintain 3 or 4 of the big ones
18:26 goehle and then other distros can crib of of one thats close
18:26 goehle still
18:26 aubreyja yeah.  One eventual goal of my install script is to also write a wiki page - it now writes a pretty complete log file
18:26 goehle its tough because even between debian and ubuntu there can be big differences
18:26 aubreyja yeah
18:28 aubreyja Since my install script already knows the distro, apache vesion, etc, it *could* in princple generate new wiki pages as installs are done on new os's
18:28 mgage even if it came close and could be tweaked by a human that makes it more likely that the wiki page will get updated.
18:29 aubreyja yeah, maybe I'll do that over break, might be fun
18:29 aubreyja you could actually just take the current log file and edit it into a wiki page
18:29 aubreyja that would be a lot of editing, but all of the commands and output would be there
18:30 aubreyja and most of the explanatory verbiage in the script I copied from the install docs, so that's there too
18:40 aubreyja also Ubuntu 13.0 changes /etc/apache2/conf to /etc/apache2/conf-enabled
18:45 aubreyja interesting:
18:45 aubreyja Apache 2.4 on Ubuntu 13.0 changes /etc/apache2/conf to /etc/apache2/conf-enabled
18:45 aubreyja oops - not that
18:45 aubreyja 'client denied by server configuration: /opt/webwork/webwork2/htdocs/images/maa_logo_small.png'
18:46 aubreyja so, I'm not getting any of the images or css or js
18:55 goehle O.o
18:55 goehle is that the allow deny stuff
18:55 goehle it seems like a lot has changed in 2.4
18:55 aubreyja yeah, for sure - I'm checking a fix
18:56 aubreyja left #webwork
18:56 aubreyja joined #webwork
19:00 aubreyja ok, goehle, mgage - I was wrong about the old access control idioms still being supported
19:00 goehle ah well
19:00 aubreyja We have to change those stanzas or enable the mod_access_compat module
19:00 goehle then we will have to make a new webwork-apache2.4.conf file
19:00 aubreyja yup
19:01 aubreyja and, I don't think we should try to get this into 2.8 - I'm not confident there aren't more changes we have to account for
19:03 goehle ok
19:05 aubreyja I can confirm that your authen fix works though - saw error on master, error went away on your apache24 branch
19:07 goehle ok
19:07 goehle good to know
19:07 goehle it works on my older apache too
19:08 aubreyja great
19:08 goehle so how do you want to do this
19:08 goehle you could pull my branch down into a local branch on your git
19:09 goehle figure out what configuration changes need to happen
19:09 goehle then issue the pull request to develop  yourself
19:09 aubreyja just a sec
19:09 goehle (and even a hotfix pull request to 2.8 if we think its worth it)
19:16 aubreyja just change the $Directory{$webwork_htdocs_dir}= {
19:16 aubreyja to
19:16 aubreyja Require => "all granted",
19:17 aubreyja Options => "FollowSymLinks",
19:17 aubreyja AllowOverride => "none",
19:17 aubreyja };
19:17 aubreyja for the 2.4 config file
19:17 aubreyja that should do it
19:18 goehle do you want me to do this on my git?
19:18 aubreyja yeah, that's easiest I think, right?
19:18 goehle sure
19:18 goehle jsut let me double check
19:19 goehle you copied webwork.apache2-config.dist
19:19 goehle to webwork.apache2.4-config.dist
19:20 goehle removed the order and allow declarations
19:20 goehle and put in the requre
19:20 aubreyja yes, that's right -
19:20 aubreyja http://httpd.apache.org/docs/current/upgrading.html
19:20 aubreyja has our exact conversion
19:21 goehle ok
19:21 goehle my branch was updateed
19:21 goehle repull
19:21 goehle copy the .dist file over
19:21 goehle and see if it works
19:24 aubreyja looks good - all assets shine through on the webwork.apache2.4-config file
19:25 aubreyja and break again when I add back the original config file
19:26 goehle do you get warning about depreciated defines
19:26 goehle Id idn't do anythign about those, but I think thats an issue with perl, not apache
19:26 aubreyja no, I'm not seeing any
19:27 aubreyja strange - lemme look closer
19:27 aubreyja ah, this is perl 5.14.2 - that's not until 5.16
19:33 goehle ok, well no reason to worry about it then
19:33 aubreyja new fedoras have 5.16, but I guess not new ubuntu
19:34 goehle they are ugly messages, but not the end of the world
19:34 aubreyja yeah

| Channels | #webwork index | Today | | Search | Google Search | Plain-Text | summary