savannah-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-cvs] administration/docs/hacking_savannah hacking_sa...


From: Sylvain Beucler
Subject: [Savannah-cvs] administration/docs/hacking_savannah hacking_sa...
Date: Sun, 17 Jul 2005 12:48:08 -0400

CVSROOT:        /cvsroot/administration
Module name:    administration
Branch:         
Changes by:     Sylvain Beucler <address@hidden>        05/07/17 16:48:08

Modified files:
        docs/hacking_savannah: hacking_savannah.texi 

Log message:
        Further revisions.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/administration/administration/docs/hacking_savannah/hacking_savannah.texi.diff?tr1=1.110&tr2=1.111&r1=text&r2=text

Patches:
Index: administration/docs/hacking_savannah/hacking_savannah.texi
diff -u administration/docs/hacking_savannah/hacking_savannah.texi:1.110 
administration/docs/hacking_savannah/hacking_savannah.texi:1.111
--- administration/docs/hacking_savannah/hacking_savannah.texi:1.110    Sat Jul 
16 17:31:06 2005
+++ administration/docs/hacking_savannah/hacking_savannah.texi  Sun Jul 17 
16:48:08 2005
@@ -1,5 +1,5 @@
 \input texinfo   @c -*-texinfo-*-
address@hidden $Id: hacking_savannah.texi,v 1.110 2005/07/16 17:31:06 Beuc Exp $
address@hidden $Id: hacking_savannah.texi,v 1.111 2005/07/17 16:48:08 Beuc Exp $
 @comment %**start of header
 @setfilename hacking_savannah.info
 @include version.texi
@@ -686,6 +686,7 @@
 
 Add a root password:
 @example
+/etc/init.d/mysql start
 mysqladmin -u root password 'rootpass'
 @end example
 
@@ -698,12 +699,14 @@
        IDENTIFIED BY '@var{scriptpass}';
 @end example
 
-To change the password:
+If you need to change the password:
 @example
 mysql> SET PASSWORD FOR 'savannahscripts'@@'localhost' =
        PASSWORD('newpass');
 @end example
 
+To exist mysql, type @kbd{exit} or hit @kbd{C-d}.
+
 MySQL must then be configured so as to run in the Savane root
 directory. In @file{/etc/mysql/my.cnf} replace
 @code{/var/run/mysqld/mysqld.sock} by
@@ -714,12 +717,6 @@
 mysql.default_socket = /mysqld/mysqld.sock
 @end example
 
-While you are in @file{php.ini}, check
-that MySQL persistent connections are activated, via:
address@hidden
-mysql.allow_persistent = On
address@hidden example
-
 Last, create the MySQL directory in Savane's root directory:
 @example
 mkdir -m 755 /savannah/mysqld
@@ -729,6 +726,7 @@
 For convenience, you can create a @file{~/.my.cnf} file where you can store
 your root password:
 @example
+cat > ~/.my.cnf
 [client]
 user=root
 password=pass
@@ -750,12 +748,14 @@
 
 @example
 cd ~
-aptitude build-dep ssmtp
-aptitude -b source ssmtp
+aptitude install dpkg-dev
+apt-get build-dep ssmtp
+apt-get -b source ssmtp
 cd ssmtp-*
 cc -static -o ssmtp main.o header.o rcpt.o from.o net.o log.o options.o \
    util.o arpadate.o base64.o -lnsl
 mkdir -m 755 /savannah/bin
+mkdir -m 755 /savannah/lib
 mkdir -m 755 -p /savannah/usr/sbin/
 cp ssmtp /savannah/usr/sbin/sendmail
 cp -a /lib/libnss_files* /lib/libncurses.so.5 /savannah/lib
@@ -764,10 +764,10 @@
 cp /bin/sh /savannah/bin
 mkdir -m 755 /savannah/etc/ssmtp/
 touch /savannah/etc/ssmtp.revaliases
-cp ~/ssmtp.conf /savannah/etc/ssmtp/
 @end example
 
-And here is the ssmtp.conf configuration file:
+And here is the @file{/savannah/etc/ssmtp/ssmtp.conf configuration}
+file:
 @verbatim
 # The person who gets all mail for userids < 1000
 root=root
@@ -1081,7 +1081,7 @@
 (If you do not want to use useradd/usermod/userdel that are in the usual PATH 
but specific ones, you can type here their prefix. Otherwise, comment out)
 Ex: /usr/local/savannah/bin
  
-[OUT]:
+[OUT]:@kbd{/usr/local/bin}
  
  
  
@@ -1167,19 +1167,17 @@
  
         ** /etc/savannah/savannah.conf.pl (re)created **
 
-# mkdir -pm 755 /usr/local/savane/bin
-$ make install
+make install
 @end example
 
 Now is the time to install Savane's Savannah.[non]gnu.org
 configuration:
 
 @example
-$ cd /savannah/etc
-$ cvs -d:ext:anoncvs@@savannah.gnu.org:/cvsroot/administration \
-  co -d savane administration/subversions
-$ ln -s savane/gnu-content
-$ ln -s savane/nongnu-content
+mkdir -m 755 /savannah/etc/savane
+cd /savannah/etc/savane
+cvs -d:ext:anoncvs@@savannah.gnu.org:/cvsroot/administration \
+  co -d content administration/content
 @end example
 
 Copy the @file{[non]gnu.conf} directories from Savannah.
@@ -1187,85 +1185,60 @@
 [TODO: explain how to reproduce this configuration file instead. Well,
 at least explain it]
 
address@hidden contains sensitive information such as MySQL
+passwords. Hence its permissions should be set accordingly:
 @example
-$ cd /savanah/etc
-# $ ln -s savane/gnu-conf
-# $ ln -s savane/nongnu-conf
-# TODO: move the conf to a private repository
+chmod 600 savannah.conf.pl
+chmod 640 savannah.conf.php
+chgrp www-data savannah.conf.php
 @end example
+for both gnu-conf and nongnu-conf.
 
address@hidden and @file{nongnu-conf} contain sensitive information
-such as MySQL passwords.
-
-Last, make the default configuration path point to the WWW root:
+Since the savannah.nongnu configuration can be derived from
+savannah.gnu, we can use this for @file{nongnu-conf/savannah.conf.php}:
 @example
-$ cd /etc
-$ rm -rf savannah
-$ ln -s /savannah/etc/gnu-conf savannah
+<?php
+include "/etc/savane/gnu-conf/savannah.conf.php";
+$sys_default_domain="savannah.nongnu.org";
+$sys_https_host="$sys_default_domain";
+$sys_brother_domain="savannah.gnu.org";
+$sys_incdir="/etc/savane/content/nongnu-content";
 @end example
 
-You can infer from this that gnu-conf is the configuration file for
-the backend.
 
-
-If you make changes to savannah.conf.pl, you update savannah.conf.php:
+Last, make the default configuration path point to the WWW root:
 @example
-$ cd /usr/src/savane
-$ make update-conf
+cd /etc
+rm -rf savannah
+ln -s /savannah/etc/savane/gnu-conf savannah
 @end example
 
+You can infer from this that gnu-conf is the configuration file for
+the backend.
 
-To make the non-GNU conf easy to maintain, you can use this 
@file{savannah.conf.php} file:
address@hidden
-<?php
-include "/etc/gnu-conf/savannah.conf.php";
-      $sys_default_domain="savannah.nongnu";
-      $sys_https_host="$sys_default_domain";
-      $sys_brother_domain="savannah.gnu";
-      $sys_incdir="/etc/nongnu-content";
-      $sys_lists_domain="$sys_default_domain";
-?>
address@hidden verbatim
-
-It is seems it is very BAD to add a new line at the end of the file (I
-think, especially for p and pr that are doing body-less HTTP
-redirections) - to be tested.
 
-You can also delete the savannah.conf.pl from nongnu.conf, since it is
-never used.
+Update your configuration files to use your own passwords.
 
 
-Be sure that the @file{savannah.conf*} files have proper permissions:
+If you make changes to @file{savannah.conf.pl}, you need to update
address@hidden:
 @example
-$ chmod 600 savannah.conf.pl
-$ chmod 640 savannah.conf.php
-$ chgrp www-data savannah.conf.php
+$ cd /usr/src/savane
+$ make update-conf
 @end example
-for both gnu-conf and nongnu-conf.
 
 
-Also update the skills list:
+Update the skills list:
 @example
-$ /usr/local/savane/bin/sv_skill
+/usr/local/bin/sv_skill
 @end example
 
 You then can install the frontend in the WWW root directory:
 @example
-$ cd /savannah
-$ mv /usr/src/savane/frontend .
-$ ln -s frontend/php www
-$ cd /usr/src/savane
-$ ln -s /savannah/frontend
+cd /usr/src/savane
+rsync -av frontend /savannah/
 @end example
 
-The symbolic links are created this way so as to avoid following
-symlinks outside the WWW root.
-
-[TODO: I recommand against this configuration, since it makes you
-update the files directly served by Apache. I suggest to work in
-/usr/src/savane and do a @command{cp -a} once your CVS work is done.]
-
-
 
 Currently, some files from the sysadmins requires a Setuid backport
 from Perl 5.8 to Perl 5.6.
@@ -1273,14 +1246,23 @@
 If you stuck to Debian stable, grab it from @file{/usr/src/Setuid} at
 savannah.gnu.org. Installing is easy and classical:
 @example
-$ cd /usr/src/Setuid
-$ make Makefile.PL
-$ make
-$ make install
+cd /usr/src/Setuid
+make Makefile.PL
+make
+make install
 @end example
 
 Else, you should be able to simply update your Perl.
 
+
+Install a set of Savannah-specific scripts:
address@hidden
+mkdir -m 755 /usr/savannah
+cd /usr/savannah
+cvs -d:ext:address@hidden/cvsroot/administration \
+  co -d infra administration/infra
address@hidden example
+
 @node Locales, Tuning your local install, Savane, Savannah configuration
 @section Locales
 
@@ -1291,9 +1273,7 @@
 
 Install the locales:
 @example
-$ mkdir -pm 755 /savannah/usr/share /savannah/usr/lib
-$ rsync -av --delete-excluded /usr/lib/locale /savannah/usr/lib
-$ rsync -av --delete-excluded /usr/share/locale /savannah/usr/share
+/usr/savannah/infra/bin/locales_sync.sh 
 @end example
 
 Be sure you copied the Savane locales, among others.
@@ -1342,7 +1322,6 @@
 @dots{}
 dr              IN      A       192.168.0.5
 savannah.gnu    IN      CNAME   dr
-#savannah.nongnu IN      CNAME   dr
 savannah.nongnu IN      A       192.168.0.101
 audio-video.gnu IN      CNAME   savannah.gnu
 cvs.savannah.gnu        A       192.168.0.102
@@ -1402,7 +1381,7 @@
 
 @example
 $ useradd -m gpg-writer -g nogroup -s /bin/false
-~> su - gpg-writer
+$ su - gpg-writer
 ~> gpg # creates ~/.gnupg
 ~> exit
 $ groupadd gatekpr
@@ -1468,22 +1447,23 @@
 @node Populating your test install, Remaining, CVS, Savannah configuration
 @section Populating your test install
 
-Plus modify the source (/php/include/account.php) to permit group
-'www' creation, and create that group. Or import the DB from a SQL dump.
+Modify the source (/php/include/account.php) to permit group 'www'
+creation, and create that group. Or import the DB from a SQL dump.
 
 At savannah.gnu.org:
 @example
-$ mysqldump -C --add-locks -F -l savannah > dump.sql
+mysqldump -C --add-locks -F -l savannah > dump.sql
 @end example
+(or grab it from @file{/dumps})
 
 and then at your test install:
 @example
 # First empty the current database
-$ mysql -p savannah
+mysql savannah
 mysql> drop database savannah;
 mysql> create database savannah;
 # Then fill it again
-$ mysql -p savannah < dump.sql
+mysql savannah < dump.sql
 @end example
 
 Just be patient, the dump weighs as of 2004-09 some 155MB.
@@ -1523,11 +1503,11 @@
 
 Or more barbaric:
 @example
-$ mysql savannah
+mysql savannah
 mysql> select distinct user_id into outfile '/tmp/minimum.txt' from user_group 
ORDER BY user_id;
 mysql> select user_id into outfile '/tmp/full.txt' from user ORDER BY user_id;
-$ cd /tmp
-$ diff minimum.txt full.txt | grep ^\> | cut -b 2- | while read line; do echo 
DELETE FROM user where user_id=$line\;; done | mysql savannah
+cd /tmp
+diff minimum.txt full.txt | grep ^\> | cut -b 2- | while read line; do echo 
DELETE FROM user where user_id=$line\;; done | mysql savannah
 @end example
 
 It would be better to let some people with no assigned projects, as
@@ -1645,17 +1625,31 @@
 out at /usr/savannah.
 
 infra is mainly composed of:
-- misc -> main crontab
-- bin -> scripts, some of which are used by cron
-- savane/bin -> changed sv_users and sv_groups; they hardcodedly use 
savane/lib below
-- savane/lib -> changed lib (the untouched lib is also available at the std 
location)
address@hidden
address@hidden
+misc -> mainly crontab
address@hidden
+bin -> scripts, some of which are used by cron
address@hidden itemize
+
+These are now unused now. Savannah-specific code is now either
+integrated or completely separate.
address@hidden
address@hidden
+savane/bin -> changed sv_users and sv_groups; they hardcodedly use savane/lib 
below
address@hidden
+savane/lib -> changed lib (the untouched lib is also available at the std 
location)
address@hidden itemize
+
 
 Changes to do:
-$ cd /etc/cron.d
-$ ln -s /usr/savannah/infra/misc/crontab savannah
address@hidden
+cd /etc/cron.d
+ln -s /usr/savannah/infra/misc/crontab savane
 # Edit the cronjob's MAILTO, comment out uneeded stuff
 # edit the Conf.pm so as to make the system believe you are at Savannah
 # edit sv_users and replace mkdir($home) by 'mkdir -p $home`
address@hidden example
 
 
 @node Alternate Savannah Installation, Using MySQL, Savannah configuration, Top
@@ -1767,7 +1761,6 @@
 * Moving a list::               
 * Resetting a password::        
 * Archives policies::           
-* Spam::                        
 * Mailman installation::        
 @end menu
 
@@ -1995,7 +1988,7 @@
 That's all :)
 
 
address@hidden Archives policies, Spam, Resetting a password, Mailing lists 
administration
address@hidden Archives policies, Mailman installation, Resetting a password, 
Mailing lists administration
 @section Archives policies
 
 [TODO]
@@ -2020,38 +2013,8 @@
 members. Note that old messages will remain public.
 @end quotation
 
address@hidden
-* Spam::                        
address@hidden menu
-
address@hidden Spam, Mailman installation, Archives policies, Mailing lists 
administration
address@hidden Spam
-
-Here is a way to way to filter mail sent through lists.gnu.org that I
-experimented on a test mailing-list. It uses Mailman spam filters:
address@hidden://lists.gnu.org/mailman/admin/@var{list_name}/privacy/spam}
 
address@hidden
address@hidden Filter 1:
address@hidden @asis
address@hidden Regexp
address@hidden: +<[^@@]+@@lists\.gnu\.org>@*
-From: list_name-owner@@gnu.org}
address@hidden Action
-Accept
address@hidden table
address@hidden Filter2:
address@hidden @asis
address@hidden Regexp
address@hidden
address@hidden Action
-Discard
address@hidden table
address@hidden itemize
-     
-One can use it in commit notification lists.
-
address@hidden Mailman installation,  , Spam, Mailing lists administration
address@hidden Mailman installation,  , Archives policies, Mailing lists 
administration
 @section Mailman installation
 
 @menu
@@ -3131,20 +3094,9 @@
 information... Not version controlled.
 
 @verbatim
-? php/tmp
-? php/include/smtp.inc
-? php/mail/admin/test.php // this is my test for PHP networking issue
-M php/mail/admin/index.php // fixed a bug for attaching mailing lists. Sent 
bug report to Savane.
-M php/account/change.php // seems gpg addition for file upload
-M php/account/lostpw-confirm.php // We will get a lot of these in the
- // coming days let's not send to hackers.
- // address@hidden
-M php/admin/approve-pending.php // Disabled by corvus, 22 December
-M php/include/sendmail.php // Modified to use SMTP by address@hidden
+M php/mail/admin/index.php // lists still not linked to Mailman
 @end verbatim
 
-Elfyn plans to make a temporary patchset and upgrade to Savane, Really Soon 
(tm).
-
 
 @node Web Server Syndication, Savane admin's limits, Uncommited local changes 
to Savannah's repository, Some quirks
 @section Web Server Syndication
@@ -3155,7 +3107,8 @@
 webcvs repositories.
 
 @url{www.nongnu.org} hosts non-GNU projects as well as the www.gnu.org
-translation teams webpages under @url{www.gnu.org/@/@var{project_name}/}.
+translation teams webpages under
address@hidden/@/@var{project_name}/}.
 
 @url{www.gnu.org} hosts GNU project under
 @url{www.gnu.org/@/software@/@var{project_name}/}, plus various
@@ -3163,7 +3116,7 @@
 
 Upon project approval, syndication does not begin automatically.
 Since the FSF will not allow Savannah hackers shell access to GNU's 
-main webserver, for understandable security concerns, there is a URL 
+main webserver, for (un)understandable security concerns, there is a URL 
 we must use to enable project web syndication, for both GNU and non-GNU 
 projects.
 
@@ -3877,8 +3830,6 @@
 it took him more time to study and avoid patents, than actually
 working on the algorithm and writing the software...
 
-Here is two patents we want to avoid:
-
 @menu
 * GIFs::                        
 * MP3::                         
@@ -3902,14 +3853,11 @@
 @node MP3,  , GIFs, Words to avoid
 @subsubsection MP3
 
-There are patents on @emph{both} the encoding and the decoding
-(playing) of MP3 audio files. We recommand instead Ogg Vorbis and Free
-Lossless Audio Codec (FLAC).
-
-If a program parses MP3 files to find information (such as ID3 tags),
-then this is not (as far as I know) covered by a patent and is
-acceptable at Savannah. However, we are concerned that not only MP3
-files are supported by such a project.
+RMS told us there was no action against MP3 at the moment. Any
+non-trivial is patented, so rejected ``patented formats'' in general
+would actually mean rejecting almost all formats. GIFs are rejected as
+a special action, mainly because patents holders enforced their
+patents on GIFs.
 
 
 @node Mirroring,  , Words to avoid, Approval Criteria




reply via email to

[Prev in Thread] Current Thread [Next in Thread]