Project Infrastructure
The project sources, web pages, and related tools are spread over a number of different services.
As discussed at OctConf 2017, we would like to consolidate and update some of these resources so that they are easier to keep track of and manage.
Here is a summary of what we are currently using:
Hosted on jwe's dreamhost.com account
octave.org domain registration and dns records
Managed through dreamhost web hosting control panel web app thing.
octave.org
- main project web site address (http://octave.org → https://www.gnu.org/software/octave)
- email forwarding
- Doxygen pages hosted here
- other pages redirect elsewhere (gnu.org/software/octave, octave.sourceforge.io)
- htaccess file:
RewriteEngine on RewriteRule ^doc/octave_toc.html https://www.gnu.org/software/octave/doc/interpreter/index.html [R=301,L] RewriteRule ^hg/(.*) http://hg.savannah.gnu.org/hgweb/$1 [R=301,L] RewriteRule ^testfailure/(.*) https://savannah.gnu.org/bugs/$1 [R=301,L] RewriteRule ^bugs/(.*) http://bugs.octave.org/bugs/$1 [R=301,L] RewriteRule ^docs.html https://www.gnu.org/software/octave/support.html [R=301,L] RewriteRule ^packages.html https://octave.sourceforge.io [R=301,L] RewriteCond $1 !^(doxygen|gnulib-git-mapfile|old-list-archives|stats|wiki|octave-wiki|w) RewriteRule (.*) https://www.gnu.org/software/octave/$1 [R=301,L] Options +FollowSymLinks ## Manipulate query string to preserve old URLs like ## http://www.octave.org/wiki/index.php?title=OctConf_2012 RewriteCond %{QUERY_STRING} ^title=(.*)$ RewriteRule ^wiki/index\.php$ http://wiki.octave.org/%1? [R=301] RewriteRule ^wiki/(.*)$ http://wiki.octave.org/$1 [R=301] RewriteRule ^wiki$ http://wiki.octave.org/ [R=301]
packages.octave.org
- web site primarily so we can have a stable address for octave's
pkg -forge
command - htaccess file:
RewriteEngine on RewriteRule ^download/(.*) https://downloads.sourceforge.net/octave/$1?download [R=307,L] RewriteRule (.*) https://octave.sourceforge.io/$1 [R=307,L]
planet.octave.org
wiki.octave.org
- MediaWiki installation
- htaccess file:
RewriteEngine on ## Manipulate query string to preserve old URLs like ## http://www.octave.org/wiki/index.php?title=OctConf_2012 RewriteCond %{QUERY_STRING} ^title=(.*)$ RewriteRule ^/wiki/index\.php$ http://wiki.octave.org/%1? RewriteCond %{QUERY_STRING} ^title=(.*)$ RewriteRule ^/index\.php$ http://wiki.octave.org/%1? RewriteCond %{REQUEST_URI} !^/w.*/ RewriteCond $1 !^(favicon.*) RewriteRule ^(.*)$ /wiki/index.php?title=$1
hg.octave.org
This site hosts mercurial repos.
- web-octave (Alex and Kai's new web pages)
- gnulib
- mirror of master hg archive for octave
- mxe-octave (see MXE)
- various octave clones
- htaccess file:
# Taken from http://www.pmwiki.org/wiki/Cookbook/CleanUrls#samedir # Used at http://ggap.sf.net/hg/ Options +ExecCGI RewriteEngine On RewriteBase / RewriteRule ^$ hgwebdir.cgi [L] RewriteRule ^repos/(.*) $1 [L,QSA] # Send requests for files that exist to those files. RewriteCond %{REQUEST_FILENAME} !-f # Send requests for directories that exist to those directories. RewriteCond %{REQUEST_FILENAME} !-d # Send requests to hgwebdir.cgi, appending the rest of url. RewriteRule (.*) hgwebdir.cgi/$1 [QSA,L]
Hosted on jwe's digitalocean.com account
- login accounts: jwe jordigh
buildbot.octave.org
- master server for our Buildbot installation
agora.octave.org
- what remains of the agora web site
Hosted on GNU project systems
Savannah admin accounts: jwe, rik, jordigh, mtmiller
www.gnu.org/software/octave
- bug tracker
- patch tracker
- task tracker
- mailing lists
- main octave project web page
- master hg archive for octave
- limited to using CVS to upload web pages
- doxygen, octave forge (other?) pages hosted elsewhere
- htaccess file:
<FilesMatch "\.(in|m4)$"> Order allow,deny Deny from all </FilesMatch> <FilesMatch "Makefile$"> Order allow,deny Deny from all </FilesMatch> <FilesMatch "CVS"> Order allow,deny Deny from all </FilesMatch> RewriteEngine on RewriteBase /software/octave/ RewriteRule ^octave.pdf doc/octave-4.2.0.pdf [L] RewriteRule ^NEWS.html NEWS-4.2.html [L] RewriteRule ^contribute.html get-involved.html [L] RewriteRule ^img/screenshot.png img/screenshot-octave-4-2.png [L] RewriteRule ^doc/interpreter$ doc/interpreter/ [R,L] RewriteRule ^doc/interpreter/(.*) doc/v4.2.0/$1 [L]
ftp.gnu.org
Hosted on SourceForge
- admin accounts: oheim, i7tiol
- octave forge hg and git repos
octave.sourceforge.io
- Octave Forge web site and it's source
- htaccess file:
<FilesMatch "\.svgz$"> Header set Content-Encoding gzip </FilesMatch> RewriteEngine on # use PHP files in root directory RewriteRule ^archive\.html$ /archive.php [PT] RewriteRule ^bugs\.html$ /bugs.php [PT] RewriteRule ^code\.html$ /code.php [PT] RewriteRule ^developers\.html$ /developers.php [PT] RewriteRule ^docs\.html$ /docs.php [PT] RewriteRule ^FAQ\.html$ /FAQ.php [PT] RewriteRule ^function_list\.html$ /function_list.php [PT] RewriteRule ^index\.html$ /index.php [PT] RewriteRule ^links\.html$ /links.php [PT] RewriteRule ^NEWS\.html$ /NEWS.php [PT] RewriteRule ^packages\.html$ /packages.php [PT] # root directory of files for download RewriteRule ^released-packages/$ https://sourceforge.net/projects/octave/files/ [R=307,L] # a particular packages repository RewriteRule ^pkg-repository/(.*)/$ https://sourceforge.net/p/octave/$1/ [R=307,L] # don't rewrite paths in the following directories RewriteRule ^templates(/|$)(.*) - [L] RewriteRule ^pkg_icon(/|$)(.*) - [L] RewriteRule ^java(/|$)(.*) - [L] RewriteRule ^doxygen32(/|$)(.*) - [L] RewriteRule ^doxygen34(/|$)(.*) - [L] RewriteRule ^doxygen36(/|$)(.*) - [L] RewriteRule ^doxygen38(/|$)(.*) - [L] RewriteRule ^doxygen40(/|$)(.*) - [L] RewriteRule ^doxygen41(/|$)(.*) - [L] RewriteRule ^coda(/|$)(.*) - [L] RewriteRule ^octave(/|$)(.*) - [L] RewriteRule ^octave\.old(/|$)(.*) - [L] RewriteRule ^old_packages(/|$)(.*) - [L] # webserver of sourceforge doesn't understand END rewrite rule flag, # so we have to check for looping instead if necessary # forbid direct access to packages directory RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^packages(/|$)(.*) - [F] # paths in all other sudirectories are rewritten to be under directory # "packages" RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^(.+/.*) /packages/$1 [L] <FilesMatch "\.(php|css)$"> FileETag None <ifModule mod_headers.c> Header unset ETag Header unset Expires Header set Cache-Control "no-cache, must-revalidate" </ifModule> </FilesMatch>