diff --git a/6.1.3_UPGRADE_NOTES b/6.1.3_UPGRADE_NOTES deleted file mode 100644 index ef243fdfca2f7fd9e81a918b5d36f954f6047355..0000000000000000000000000000000000000000 --- a/6.1.3_UPGRADE_NOTES +++ /dev/null @@ -1,4 +0,0 @@ -* Add Sender patch is no longer needed! List.pm now does this: - $hdr->add('Sender', "$self->{'name'}-request\@$self->{'admin'}{'host'}"); # The Sender: header should be add at least for DKIM compatibility - -* skipping patch to remove IP address - this needs to be taken care of in the apache config instead diff --git a/README b/README index 1db5e8f10d78cdf105fafe9f22a1fd0cb94d356c..8c455290ed05f7b59da765919d4e4fbcac9e6d30 100644 --- a/README +++ b/README @@ -1,172 +1,8 @@ -. remove_face_from_webarchive.diff - this removes the Face header from -the archives for a list, if this is not removed, the header is shown -in the webarchive as an ugly string of characters, rather than the -actual .png +This branch contains the patched sympa-6.1.15 source code along with the riseup patches. -. Precedence_builk.diff - changes the Precedence header from 'list' to -'bulk', to get more auto-responders to respect the precendence. According -to Adam Berstein from EE on the sympa-users list, more auto-responders -respect 'bulk' over 'list' (especially older Exchange servers). +The source code is located in sympa-6.1.5-src/. It is not compiled, which means that +to install or upgrade sympa, the INSTALL and UPGRADE files in the sympa-6.1.15-src/ directory +can be followed. -. pending_norename.diff - renaming a list causes it to become pending. -As https://user.riseup.net/ticket/289676 describes, when you rename a -list it causes the list to become pending, which then requires -approval again. This patch changes that, but the message to the -listmasters about the request to rename list is maintained as it may -be useful in cases where a list has been renamed to riseup-sysadmins -(for example) that the listmasters be aware of the new names. - -. localizedVariables.diff - bounced.pl was dying randomly due to this -error: $/ as given is currently unsupported at -/usr/share/perl5/MIME/Decoder/NBit.pm line 140 details in -https://sourcesup.cru.fr/tracker/?func=detail&aid=3271&group_id=23&atid=167 - -. listowners_not_listmasters.diff - all emails using the -mail_tt2/listowner_notification.tt2 template are being sent to -listmasters and not the intended recipient, listowners, this patch -fixes the function that gets the owner address so its called properly, -instead of default sending the mail to all the list admins. - -archive_delete_send_fix.diff - cannot delete or messages from web -archive by hitting the button, would get this error: - -ERROR () – Syntax errors with the following parameters : month -Operation successful. The message will be deleted as soon as possible. -This task may be performed in a few minutes. - -. refuse_subscriptions_before_approval - Before a list has been -approved, people can subscribe people to it. This means that people -get a message about being subscribed to a list. This is really -annoying when someone requests a list and then subscribes 40,000 -people. (note: this is not a valid diff, needs to be applied by hand) - -. add_Sender_header.diff - adds a Sender header to outgoing messages -produced by the server, enables DKIM signatures to work - -. create_db.mysql.diff - Additions to the mysql table creation -necessary for the list caching diffs below - -. cache-list-configs-5.3.3.diff - the following describes the changes -included in this patch - -. modulo_verp.diff - fixes a weird crash where verp bounces causes bounced.pl -to just die - -. fix_re_re_re.diff - fixes subject header for the list no longer goes after the Re:, -instead it gets placed before, which creates these silly long strings of Re:’s. - -. sync_admin_table.diff - adds flag to sympa.pl to rebuild the admin_table (--sync_admin_table). -this rebuilds the admin_table using the code in the update script that creates the table in the -first place. rebuilding the admin_table (a cache of all the admins for each list) basically involves -reading the config files for each list and extracting their owners and editors, then stuffing them into admin_table. - -changes which have been made to add caching of list configs in -a special database table. - -TODO -=================== - -(1) allow --sync_db_list flag to take a specific list as an argument -(2) allow you to enable/disable the caching of list configs in the list_table -(3) should do_get_inactive_lists use a list_table? we did not include it in current patch - seems like it won't help. ditto for rebuilding the archives - - -Changes to Lists.pm -=================== - -added: - List::get_lists_db -- returns an array(?) of lists given a mysql statement. - - List::_update_list_db -- updates the cache database - -changed: - List::get_lists - what it does: - our changes: adds additional argument of preloaded lists. uses this instead of loading the lists - itself. this preloaded array comes from the array via get_lists_db - - List::get_which - what it does: returns array of lists which meet certain criteria (eg subscriber is bob@riseup.net) - our changes: get_which_db returns a hash of the listname's we care about. instead of then - looping through all lists (and loading each config!), we just loop through the list objects - of the lists indicated by our call to get_which_db. - - List::save_config - what it does: saves the config file for a list - our changes: update the database whenever the config is saved - + if ($List::use_db) { - + unless (&_update_list_db) { - + &do_log('err', "Unable to update list_table"); - + } - + } - -Changes to sympa.pl -=================== - -added --sync_db_list command line argument. - this will (re)build the config cache (list_table) by - calling $list->_update_list_db for every single list. - -+ --sync_db_list[=listname] : sync lists on the filesystem with the database - optionally sync an individual list - -- 'lang|l=s', 'mail|m', 'keepcopy|k=s', 'help', 'version', 'import=s','make_alias_file','lowercase', -+ 'lang|l=s', 'mail|m', 'keepcopy|k=s', 'help', 'version', 'import=s','make_alias_file','lowercase', 'sync_db_list', - -- $main::options{'reload_list_config'} -+ $main::options{'reload_list_config'}|| -+ $main::options{'sync_db_list'} - -+elsif ($main::options{'sync_db_list'}) { -+ my $all_lists; -+ $all_lists = &List::get_lists('*'); -+ foreach my $list (@$all_lists) { -+ $list->_update_list_db; -+ } -+ exit 0; -+} -+########################################## - elsif ($main::options{'modify_list'}) { - -Changes to wwsympa.fcgi -======================= - - -sub do_get_pending_lists: -------------------------- - -- my $all_lists = &List::get_lists($robot); -+ my $statement = "SELECT name_list FROM list_table WHERE status_list = 'pending'"; -+ my @lists = &List::get_lists_db($statement); -+ my $all_lists = &List::get_lists($robot, undef, @lists); - -sub do_get_closed_lists ------------------------ - -remove: - my $all_lists = &List::get_lists($robot); - -add: - my $statement = "SELECT name_list FROM list_table WHERE status_list in ('closed' , 'family_closed')"; - my @lists = &List::get_lists_db($statement); - my $all_lists = &List::get_lists($robot, undef, @lists); - - -sub do_get_inactive_lists (skipped) -------------------------- - -- my $all_lists = &List::get_lists($robot); -+ ## [XXX] TODO: Select only lists that are not closed -+ my $statement = sprintf "SELECT name_list FROM list_table WHERE status_list != 'closed'"; -+ my @lists = &List::get_lists_db($statement); -+ my $all_lists = &List::get_lists($robot, undef, \@lists); - -sub do_search ----------------- - -add: - my $regexp = $param->{'regexp'}; - my $statement = sprintf "SELECT name_list FROM list_table WHERE name_list RLIKE '%s' OR subject_list RLIKE '%s'", $regexp, $regexp; - my @lists = &List::get_lists_db($statement) || undef; - my $all_lists = &List::get_lists($robot,undef, @lists); - +The patches are located in 6.1.15/patches/. These patches have already been applied to the +sympa source code in sympa-6.1.15-src/. diff --git a/README_CUSTOMWEB b/README_CUSTOMWEB deleted file mode 100644 index b9393ca3d66c2ca38a63fa11ebff38e7d8fe18f6..0000000000000000000000000000000000000000 --- a/README_CUSTOMWEB +++ /dev/null @@ -1,7 +0,0 @@ -Web interface customizations: (incomplete!) - -* whole home.tt2 template -* logout button is moved from login_menu.tt2 to nav.tt2 -* add custom quick tips to setlang.tt2 so they end up in left sidebar in non-list view -* remove list of lists tab from nav -* move preferences link to top nav diff --git a/UPGRADE b/UPGRADE index 0b127859fc402a382f7b7bb5f4d62f3369ea7208..0fb9b4ce2573666efe610421690a77077635aaef 100644 --- a/UPGRADE +++ b/UPGRADE @@ -6,43 +6,34 @@ Instructions to upgrade sympa for riseup: These are the current patches we use, and how to test they are working (where necessary): - a. list config caching path - To test: - * creating a new list request should populate list_table with the pending list - * approving the new list should change its status in the db - * listing pending and closed lists should work and should only be listing lists that are in the list_table cache - * renaming a list should rename it in the db - - b. do not change renames to pending status - - *** this should be tested with each version. maybe upstream fixed it? - d. disable_active_and_latest_lists in wwsympa. these actions consistently fail. - - *** it should be determined with each version if this is still an issue before applying this patch - e. do not save invalid paths referring to arcsearch_id - this makes wwsympa unhappy - - *** patches a-d are more 'core' patches - *** patches g+ are more specific to riseup - - f. do not allow list creation by copying an existing list + a. do not change renames to pending status + b. do not allow list creation by copying an existing list this is disabled in the templates, mainly, but this disables it in the function too in case it gets past the template - 3. run configure: -./configure \ ---prefix=/home/sympa \ ---with-confdir=/etc/sympa \ ---with-initdir=/etc/init.d/ \ ---enable-secure +./configure --with-confdir=/etc/sympa --with-initdir=/etc/init.d/ + +4. compile sympa: +./make -4. stop sympa +5. stop services: +puppetd --disable +/etc/init.d/sympa stop +postfix stop -5. compile and install sympa following sympa upgrade instructions +6. install sympa +./make install -6. look at sympa.pl --upgrade and see if there's anything we can skip -6a. run sympa.pl --upgrade +7. look at sympa.pl --upgrade and see if there's anything we can skip +7a. run sympa.pl --upgrade -7. check create list templates +8. enable puppet, which will fix the templates and scenari files, and restart sympa & postfix +8a. do it without any real changes first: + puppetd --enable; puppetd --test --noop; puppetd --disable +8b. provided that went well, reenable puppet: + puppetd --enable + +9. check create list templates the following list types only should be available on the create lists page: 1-moderated-discussion-list 2-open-discussion-list @@ -50,29 +41,9 @@ Instructions to upgrade sympa for riseup: 4-public-working-group 5-newsletter - to accomplish this, make sure that any directory called 'create_list_templates' in /home/sympa only contains - the above templates. - -7. check scenari files +10. check scenari files scenari files describe permissions for subscribing and unsubscribing, among other things. we have some scenaris disabled (for example, the scenari that closes unsubscribing). the files in scenari/ in the repo should be the only scenaris enabled, like so: scenari/etc/* -> /home/sympa/etc/scenari/ scenari/default/* -> /home/smpa/default/scenari/ - -6. start sympa - -********************************************************************************* -**** the following steps should only be necessary if it is a clean install. ***** -**** the sympa upgrade process should preserve all of these customizations ***** -********************************************************************************* - -5a. docroot and css - a. make /home/sympa/docroot if it doesn't already exist - b. copy css/* from repo to /home/sympa/docroot if the css files are not already there - -5b. web and mail templates - copy web_tt2 and mail_tt2 directories to the /home/sympa/etc directory in the sympa tree - -5c. scenari files - copy scenari files from scenari/ to /home/sympa/etc/scenari