Difference between revisions of "Project Infrastructure"

From Octave
Jump to navigation Jump to search
m (→‎Hosted on GNU project systems: Links to admins added.)
m (→‎octave.org: https again)
 
(18 intermediate revisions by 4 users not shown)
Line 13: Line 13:
 
=== octave.org ===
 
=== octave.org ===
  
* main project web site address ([http://octave.org http://octave.org] → https://www.gnu.org/software/octave)
+
* main project web site address ([https://octave.org https://octave.org] → https://www.gnu.org/software/octave)
 
* email forwarding
 
* email forwarding
 
* [[Doxygen]] pages hosted here
 
* [[Doxygen]] pages hosted here
* other pages redirect elsewhere (gnu.org/software/octave, octave.sf.net)
+
* other pages redirect elsewhere (gnu.org/software/octave, octave.sourceforge.io)
* htaccess file:
+
 
<nowiki>
+
{{File|.htaccess|<pre>
 
RewriteEngine on
 
RewriteEngine on
  
RewriteRule ^doc/octave_toc.html http://www.gnu.org/software/octave/doc/interpreter/index.html [R=301,L]
+
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 ^hg/(.*) http://hg.savannah.gnu.org/hgweb/$1 [R=301,L]
Line 29: Line 29:
 
RewriteRule ^bugs/(.*) http://bugs.octave.org/bugs/$1 [R=301,L]
 
RewriteRule ^bugs/(.*) http://bugs.octave.org/bugs/$1 [R=301,L]
  
RewriteRule ^docs.html http://www.gnu.org/software/octave/support.html [R=301,L]
+
RewriteRule ^docs.html https://www.gnu.org/software/octave/support.html [R=301,L]
  
RewriteRule ^packages.html http://octave.sf.net [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)
 
RewriteCond $1 !^(doxygen|gnulib-git-mapfile|old-list-archives|stats|wiki|octave-wiki|w)
RewriteRule (.*) http://www.gnu.org/software/octave/$1 [R=301,L]
+
RewriteRule (.*) https://www.gnu.org/software/octave/$1 [R=301,L]
  
 
Options +FollowSymLinks
 
Options +FollowSymLinks
Line 45: Line 45:
 
RewriteRule ^wiki/(.*)$ http://wiki.octave.org/$1 [R=301]
 
RewriteRule ^wiki/(.*)$ http://wiki.octave.org/$1 [R=301]
 
RewriteRule ^wiki$ http://wiki.octave.org/ [R=301]
 
RewriteRule ^wiki$ http://wiki.octave.org/ [R=301]
</nowiki>
+
</pre>}}
  
 
=== packages.octave.org ===
 
=== packages.octave.org ===
  
 
* web site primarily so we can have a stable address for octave's <code>pkg -forge</code> command
 
* web site primarily so we can have a stable address for octave's <code>pkg -forge</code> command
* htaccess file:
+
 
<nowiki>
+
{{File|.htaccess|<pre>
 
RewriteEngine on
 
RewriteEngine on
  
Line 57: Line 57:
  
 
RewriteRule (.*) https://octave.sourceforge.io/$1 [R=307,L]
 
RewriteRule (.*) https://octave.sourceforge.io/$1 [R=307,L]
</nowiki>
+
</pre>}}
  
 
=== planet.octave.org ===
 
=== planet.octave.org ===
Line 66: Line 66:
  
 
* [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation
 
* [https://www.mediawiki.org/wiki/MediaWiki MediaWiki] installation
* htaccess file:
+
** Additional skins installed:
 +
*** https://www.mediawiki.org/wiki/Skin:Minerva_Neue (Mobile skin)
 +
** Additional extensions installed:
 +
*** https://www.mediawiki.org/wiki/Extension:Math
 +
*** https://www.mediawiki.org/wiki/Extension:MobileFrontend
 +
*** https://www.mediawiki.org/wiki/Extension:PageNotice
 +
 
 +
 
 +
{{File|.htaccess|<pre>
 +
# https://help.dreamhost.com/hc/en-us/articles/214895317-How-do-I-change-the-PHP-version-of-my-site- (2019-02-26)
 +
AddHandler fcgid-script .php
 +
FCGIWrapper "/dh/cgi-system/php72.cgi" .php
  
<nowiki>
 
 
RewriteEngine on
 
RewriteEngine on
  
Line 74: Line 84:
 
## http://www.octave.org/wiki/index.php?title=OctConf_2012
 
## http://www.octave.org/wiki/index.php?title=OctConf_2012
 
RewriteCond %{QUERY_STRING} ^title=(.*)$
 
RewriteCond %{QUERY_STRING} ^title=(.*)$
RewriteRule ^/wiki/index\.php$ http://wiki.octave.org/%1?  
+
RewriteRule ^/wiki/index\.php$ https://wiki.octave.org/%1?  
  
 
RewriteCond %{QUERY_STRING} ^title=(.*)$
 
RewriteCond %{QUERY_STRING} ^title=(.*)$
RewriteRule ^/index\.php$ http://wiki.octave.org/%1?  
+
RewriteRule ^/index\.php$ https://wiki.octave.org/%1?  
  
  
Line 83: Line 93:
 
RewriteCond $1 !^(favicon.*)
 
RewriteCond $1 !^(favicon.*)
 
RewriteRule ^(.*)$ /wiki/index.php?title=$1
 
RewriteRule ^(.*)$ /wiki/index.php?title=$1
</nowiki>
+
</pre>}}
 +
 
 +
== Hosted on jwe's digitalocean.com account ==
 +
 
 +
* login accounts:  jwe jordigh
 +
 
 +
=== buildbot.octave.org ===
 +
 
 +
* master server for our [[Continuous_Build#Buildbot|Buildbot]] installation
  
 
=== hg.octave.org ===
 
=== hg.octave.org ===
Line 94: Line 112:
 
* [http://hg.octave.org/mxe-octave mxe-octave] (see [[MXE]])
 
* [http://hg.octave.org/mxe-octave mxe-octave] (see [[MXE]])
 
* various octave clones
 
* various octave clones
* htaccess file:
 
<nowiki>
 
# 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]
 
</nowiki>
 
 
== Hosted on jwe's digitalocean.com account ==
 
 
* login accounts:  jwe jordigh
 
 
=== buildbot.octave.org ===
 
 
* master server for our buildbot installation
 
  
 
=== agora.octave.org ===
 
=== agora.octave.org ===
Line 138: Line 131:
 
* limited to using [https://web.cvs.savannah.gnu.org/viewvc/octave CVS] to upload web pages
 
* limited to using [https://web.cvs.savannah.gnu.org/viewvc/octave CVS] to upload web pages
 
* doxygen, octave forge (other?) pages hosted elsewhere
 
* doxygen, octave forge (other?) pages hosted elsewhere
* htaccess file:   
+
 
<nowiki>
+
{{File|.htaccess|<pre>
 
<FilesMatch "\.(in|m4)$">
 
<FilesMatch "\.(in|m4)$">
 
   Order allow,deny
 
   Order allow,deny
Line 166: Line 159:
 
RewriteRule ^doc/interpreter$ doc/interpreter/ [R,L]
 
RewriteRule ^doc/interpreter$ doc/interpreter/ [R,L]
 
RewriteRule ^doc/interpreter/(.*) doc/v4.2.0/$1 [L]
 
RewriteRule ^doc/interpreter/(.*) doc/v4.2.0/$1 [L]
</nowiki>
+
</pre>}}
  
 
=== ftp.gnu.org ===
 
=== ftp.gnu.org ===
Line 175: Line 168:
 
== Hosted on SourceForge ==
 
== Hosted on SourceForge ==
  
* admin accounts: jbect, oheim, i7tiol
+
* admin accounts: [https://sourceforge.net/p/octave/_members oheim, i7tiol]
* octave forge hg and git repos
+
* octave forge [https://sourceforge.net/p/octave/_list/hg hg] and [https://sourceforge.net/p/octave/_list/git git] repos
  
 
=== octave.sourceforge.io ===
 
=== octave.sourceforge.io ===
  
* Octave Forge web site
+
* [https://octave.sourceforge.io Octave Forge web site] and [https://sourceforge.net/p/octave/project-web/ci/default/tree it's source]
* htaccess file:
+
 
<nowiki>
+
{{File|.htaccess|<pre>
 
<FilesMatch "\.svgz$">
 
<FilesMatch "\.svgz$">
 
Header set Content-Encoding gzip
 
Header set Content-Encoding gzip
Line 188: Line 181:
  
 
RewriteEngine on
 
RewriteEngine on
 +
 +
# use PHP files in root directory
 
RewriteRule ^archive\.html$ /archive.php [PT]
 
RewriteRule ^archive\.html$ /archive.php [PT]
 
RewriteRule ^bugs\.html$ /bugs.php [PT]
 
RewriteRule ^bugs\.html$ /bugs.php [PT]
Line 199: Line 194:
 
RewriteRule ^NEWS\.html$ /NEWS.php [PT]
 
RewriteRule ^NEWS\.html$ /NEWS.php [PT]
 
RewriteRule ^packages\.html$ /packages.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]
 +
 +
# FIXME: Trailing slash is not appended for (non-existing, to be
 +
# re-written) package directories at top level. This should be cured
 +
# in a better way than with the following.
 +
RewriteCond %{ENV:REDIRECT_STATUS} ^$
 +
RewriteCond %{REQUEST_FILENAME} !-f
 +
RewriteRule ^(.+) /packages/$1/ [L]
 +
  
 
<FilesMatch "\.(php|css)$">
 
<FilesMatch "\.(php|css)$">
Line 208: Line 244:
 
</ifModule>
 
</ifModule>
 
</FilesMatch>
 
</FilesMatch>
</nowiki>
+
</pre>}}
 +
 
 +
[[Category:Development]]

Latest revision as of 18:52, 15 April 2019

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[edit]

octave.org domain registration and dns records[edit]

Managed through dreamhost web hosting control panel web app thing.

octave.org[edit]

File: .htaccess
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[edit]

  • web site primarily so we can have a stable address for octave's pkg -forge command
File: .htaccess
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[edit]

wiki.octave.org[edit]


File: .htaccess
# https://help.dreamhost.com/hc/en-us/articles/214895317-How-do-I-change-the-PHP-version-of-my-site- (2019-02-26)
AddHandler fcgid-script .php
FCGIWrapper "/dh/cgi-system/php72.cgi" .php

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$ https://wiki.octave.org/%1? 

RewriteCond %{QUERY_STRING} ^title=(.*)$
RewriteRule ^/index\.php$ https://wiki.octave.org/%1? 


RewriteCond %{REQUEST_URI} !^/w.*/
RewriteCond $1 !^(favicon.*)
RewriteRule ^(.*)$ /wiki/index.php?title=$1

Hosted on jwe's digitalocean.com account[edit]

  • login accounts: jwe jordigh

buildbot.octave.org[edit]

  • master server for our Buildbot installation

hg.octave.org[edit]

This site hosts mercurial repos.

agora.octave.org[edit]

  • what remains of the agora web site

Hosted on GNU project systems[edit]

Savannah admin accounts: jwe, rik, jordigh, mtmiller

www.gnu.org/software/octave[edit]

File: .htaccess
<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[edit]

Hosted on SourceForge[edit]

octave.sourceforge.io[edit]

File: .htaccess
<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]

# FIXME: Trailing slash is not appended for (non-existing, to be
# re-written) package directories at top level. This should be cured
# in a better way than with the following.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} !-f
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>