--- listadmin-2.40.orig/listadmin.pl +++ listadmin-2.40/listadmin.pl @@ -718,7 +718,7 @@ } my $data; - if ($mmver eq "2.1") { + if ($mmver ge "2.1") { my $parse_appr = HTML::TokeParser->new(\$page_appr) || die; $data = parse_pages_mm_2_1($mmver, $config, $parse, $parse_appr); } else { @@ -764,14 +764,26 @@ my %data = (); my $headline; + # some (newer?) servers show only 1
tag when there is no subscriptions + # Try resolve first seen
as subscription, and fall back to approvals $parse_subs->get_tag ("hr"); if ($parse_subs->get_tag ("h2")) { - parse_subscriptions ($mmver, $config, $parse_subs, \%data); - } - - $parse_appr->get_tag ("hr"); - if ($parse_appr->get_tag ("h2")) { - parse_approvals ($mmver, $config, $parse_appr, \%data); + my $title = $parse_subs->get_trimmed_text ("/h2") || die; + if ($title =~ get_trans_re("subscriptions")) { + parse_subscriptions ($mmver, $config, $parse_subs, \%data); + + $parse_appr->get_tag ("hr"); + if ($parse_appr->get_tag ("h2")) { + parse_approvals ($mmver, $config, $parse_appr, \%data); + } + } else { + parse_approvals ($mmver, $config, $parse_appr, \%data); + } + } else { + $parse_appr->get_tag ("hr"); + if ($parse_appr->get_tag ("h2")) { + parse_approvals ($mmver, $config, $parse_appr, \%data); + } } return (\%data); } @@ -829,42 +841,325 @@ # # Please send additions if you have them. + # Below strings are found in source of Mailman 2.1.10 and "washed": + # * high-bit chars and html ligatures in latin charsets replaced with .* + # (\S would be better but for some reason the code chokes on that) + # * non-latin charsets included as-is and (if not already) as utf-8 + # * trailing punctuation stripped (to allow small changes to locales) my %translations = + # grep -ri -- '' templates/*/admlogin.html ("authentication" => { - "en" => "authentication", - "de" => "Authentifikation", - "fr" => "authentification", + "ar" => "التحقق من الشخصية لـ .* للقائمة", + "ca" => "Authentication", + "cs" => "p.*ihl.*en.*", + "da" => "Login", + # include old string (possibly bogusly grabbed from PO file) + "de" => "Anmeldung|Authentifikation", + "en" => "Authentication", + "es" => "Autentificaci.*n", + "et" => "autoriseerimine", + "eu" => "Zerrendako .* Identifikatzen", + "fi" => "Authentication", + "fr" => "Authentification", + "gl" => "Autenticaci.*n", + "he" => "האימות של", + "hr" => "Autentikacija", + "hu" => "Azonos.*t.*s", + "ia" => "Authentication", + "it" => "Autenticazione", + # | recode EUC-JP..utf8 + "ja" => "ǧ|認証", + # | recode EUC-KR..utf8 + "ko" => " |관리자 인증", + "lt" => "prisijungimas", + "nl" => "inloggen", + "no" => "Innlogging", + "pl" => "%(listname)s", + "pt" => "Authentication", + "pt_BR" => "Autentica.*o", + "ro" => "Autentificare", + # | recode koi8-r..utf8 + "ru" => "|Аутентификация", + "sk" => "prihlásenie", + "sl" => "Avtentikacija", + "sr" => "Authentication", + "sv" => "Inloggning", + "tr" => "Giri.*i", + "uk" => "Автентифікація", + "vi" => "Xác th.*c", + "zh_CN" => "Authentication", + "zh_TW" => "論壇 壇主驗證", + }, + # grep -r -A 1 'msgid "Subscription Requests"' messages/* + "subscriptions" => + { + "C" => "Subscription Requests", + "ar" => "طلبات التسجيل", + "ca" => "Petici.* de Subscripci.*", + "cs" => "Po.*adavky na p.*ihl.*en", + "da" => "Anmoder om medlemskab", + "de" => "Abonnement-Anfragen", + "es" => "Peticiones de suscripci.*n", + "et" => "Liitumisssoovid", + "eu" => "Harpidetza Eskakizunak", + "fi" => "Liittymispyynt.*j.*", + "fr" => "Requ.*tes d'abonnement", + "gl" => "Solicitudes de subscrici.*n", + "he" => "בקשות מנוי", + "hr" => "Zahtjevi za Pretplatom", + "hu" => "Feliratkozási k.*relmek", + "ia" => "Requestas de abonamento", + "it" => "Richieste di iscrizione", + # | recode EUC-JP..utf8 + "ja" => "|入会申請", + # | recode EUC-KR..utf8 + "ko" => " |가입 결과", + "lt" => "Uþsisakymo Pra.*ymas", + "nl" => "Aanmeldingsverzoeken", + "no" => "S.*knader om medlemskap", + "pl" => "Pro.*by o zapisanie", + "pt" => "Pedidos de inscri.*o", + "pt_BR" => "Requisi.*es de Inscri.*o", + "ro" => "Cereri de abonare", + # | recode koi8-r..utf8 + "ru" => " |Запросы на подписку", + "sk" => ".*iadosti o prihl.*senie", + "sl" => "Zahteve za prijavo", + "sr" => "Захтјеви за упис", + "sv" => "Ans.*kningar om medlemskap", + "tr" => "Listeye .*yelik .*stekleri", + "uk" => "Запити на підписку", + "vi" => "Y.*u c.*u .*ng k.*", + "zh_CN" => "订阅请求", + "zh_TW" => "訂閱申請", }, + # grep -r -A 1 'msgid "Successfully \(subscribed\|Unsubscribed\|Removed\):"' messages/* "subscr_success" => { - "en" => "Successfully ((un)?subscribed|Removed)", - "de" => "Erfolgreich (ein|aus)getragen", + # include old (mistyped, or are these case-insensitive?) uppercase + "C" => "Successfully (([uU]n)?subscribed|Removed)", + "ar" => "تم اشتراكه بنجاح|خطأ في تسجيل الاشتراك|تمت إزالته بنجاح", + "ca" => "Subscrit satisfact.*riament|Subscripci.* Cancel.*lada Satisfact.*riament|Eliminat satisfact.*riament", + "cs" => ".*sp.*n.* p.*ihl.*eni|.*sp.*n.* odhl.*eni|.*sp.*n.* odstran.*ni", + "da" => "Tilmelding er sket|Framelding udf.*rt|Framelding udf.*rt", + "de" => "Erfolgreich (eingetragen|beendete Abonnements|entfernt)", + "es" => "(Subscritos|Ha anulado su suscripci.*n|Ha sido borrado) satisfactoriamente", + "et" => "Lisati aadressid|Tellimus l.*petati|Edukalt eemaldatud", + "eu" => "Behar bezala harpidetuta|Behar Bezala Ezabatuta|Arrakastaz ezabatua", + "fi" => "Onnistuneesti liitetty|Erotettu onnistuneesti|Poistettu onnistuneesti", + "fr" => "Abonnement r.*ussi|R.*siliation r.*ussie|Abonnement r.*sili.* avec succ.*s", + "gl" => "Subscribiuse con éxito|Anulou a súa subscrición satisfactoriamente|Eliminouse satisfactoriamente", + "he" => "נרשם בהצלחה|מנוי בוטל בהצלחה|הוסר בהצלחה", + "hr" => "Uspje.*no (pretpla.*eni|Odjavljeni|Maknut)", + "hu" => "Sikeresen (fel.*rva|t.*r.*lve|t.*r.*lve)", + "ia" => "(Abonate|Disabonate|Removite) con successo", + "it" => "(Iscritti|Cancellati|Rimosso) con successo", + # | recode EUC-JP..utf8 + "ja" => "(||)³λ|(入|退|退)会手続き完了", + # | recode EUC-KR..utf8 + "ko" => " (Ե|Ż|ŵ) |성공적으로 (가입된|탈퇴된|제거된) 명단", + "lt" => "S.*kmingai (u.*sisak.*|atsisak.*|pa.*alinti)", + "nl" => "Met succes (aangemeld|afgemeld|verwijderd)", + "no" => "(P.*melding|Utmelding) utf.*rt", + "pl" => "Pomy.*lnie (zapisano|wypisano|usuni.*to)", + "pt" => "(Inscrito|Inscri.*o anulada|Removido) co?m sucesso", + "pt_BR" => "(Inscrito|Descadastrado|Removido) com [sS]ucesso", + "ro" => "Au fost (abona.*i|dezabona.*i) cu succes", + # | recode koi8-r..utf8 + "ru" => " (| |)|Успешно (подписаны|удалена подписка для|удалены)", + "sk" => "Úspe.*ne (prihlásení|odhlásení|zmazaní)", + "sl" => "Uspe.*no (prijavljeni|odjavljen|odstranjeni)", + "sr" => "Успјешно (уписани|исписани|уклоњени)", + "sv" => "(Anm.*lan|Avanmlan) gjord", + "tr" => "Ba.*ar.*yla (.*ye yap.*ld.*|.*yelikten .*kar.*ld.*|Silindi)", + "uk" => "Успішно (підписано|видалено підписку|видалено)", + "vi" => "Đã đăng ký được|Đã bỏ đăng ký được|Đã gỡ bỏ được", + "zh_CN" => "成功订阅|成功取消订阅|成功删除", + "zh_TW" => "訂閱成功|退訂成功|成功除名", }, + # grep -r -A 1 'msgid "Error \(subscribing\|Unsubscribing\):"' messages/* "subscr_error" => { - "en" => "Error (un)?subscribing", + # include old (mistyped, or are these case-insensitive?) uppercase + "C" => "Error ([uU]n)?subscribing", + "ar" => "خطأ في (الاشتراك|إلغاء الاشتراك)", + "ca" => "Error (subscrivint|cancel.*lant la subscripci.*)", + "cs" => "Chyba p.*i (p.*ihla.*ov.*n.*|odhla.*ov.*n.*)", + "da" => "Fejl under (tilmelding|framelding)", + "de" => "Fehler beim (Abonnieren|Beenden des Abonnement)", + "es" => "Error dando de (alta|baja) la suscripci.*n", + "et" => "Viga aadresside lisamisel|Viga aadressi kustutamisel", + "eu" => "Errorea harpidetzan|Zerrenda uztean errorea", + "fi" => "Virhe (liitt.*ess.*|eroamisessa)", + "fr" => "Erreur lors de (l'abonnement|la r.*siliation)", + "gl" => "(Houbo un erro ao dar de alta|Produciuse un erro ao dar de baixa) a subscrición", + "he" => "שגיאה (ברישום|בביטול המנוי)", + "hr" => "Gre.*ka kod (pretpla.*ivanja|Odjavljivanja)", + "hu" => "Hiba a (feliratkoz.*skor|t*rl*sn*l)", + "ia" => "Error in (abonar|disabonar)", + "it" => "Errore durante (l'iscrizione|la cancellazione)", + # | recode EUC-JP..utf8 + "ja" => "(|)³Υ顼|(入|退)会手続きのエラー", + # | recode EUC-KR..utf8 + "ko" => "(|Ż) |(가입|탈퇴) 에러", + "lt" => "Nes.*kmingai u.*sisakin.*jo|Klaida atsisakant", + "nl" => "Fout bij (het aanmelden|afmelden)", + "no" => "Feil under (p.*melding|utmelding)", + "pl" => "B.*dy przy (za|wy)pisywaniu", + "pt" => "Erro (inscrevendo|ao cancelar a inscri.*o)", + "pt_BR" => "Erro ao (inscrever|descadastrar)", + "ro" => "Eroare la (abonare|dezabonare)", + # | recode koi8-r..utf8 + "ru" => " | |Подписаны НЕ были|Ошибка удаления подписки", + "sk" => "Chyba pri (prihlasovan.*|odhlasovan.*)", + "sl" => "Napaka pri (prijavljanju|odjavi)", + "sr" => "Грешка при (у|uc)пису", + "sv" => "Fel under (anm.*lan|avanm.*lan)", + "tr" => "(.*ye yaparken|.*yelikten .*kar.*l.*rken) hata oldu", + "uk" => "Помилка (при спробі|видалення) підписки", + "vi" => "Lỗi đăng ký|Lỗi bỏ đăng ký", + "zh_CN" => "错误(取)?订阅", + "zh_TW" => "訂閱失敗|退訂時出錯", }, + # grep -r -A 1 'msgid "No such list .*"' messages/* "no_such_list" => { - "en" => "Mailman Admindb Error.*No such list:", + "C" => "No such list", + "ar" => "لا يوجد قائمة بالإسم", + "ca" => "La llista .* no existeix", + "cs" => "Nenalezl jsem konferenci", + "da" => "Listen findes ikke", + "de" => "(Keine Liste mit Namen .* vorhanden|Liste nicht vorhanden)", + "es" => "(La lista .* no existe|No existe tal lista)", + "et" => "(Sellist listi pole|Selle nimega listi pole)", + "eu" => "(zerrendarik ez dago|Zerrenda ezezaguna)", + "fi" => "(Listaa .* ei ole olemassa|Lista on jo olemassa)", + "fr" => "(Liste inexistante|Liste introuvable)", + "gl" => "(A rolda .* non existe|Non existe esa rolda)", + "he" => "(אין רשימה בשם|אין כזו רשימה)", + "hr" => "Takva lista ne postoji <em>%(safelistname)s</em>", + "hu" => "Nincs .* nev.* lista", + "ia" => "(Le lista .* non existe|Nulle tal lista)", + "it" => "Non esiste .*la lista", + # | recode EUC-JP..utf8 + "ja" => "ȤꥹȤϤޤ|というリストはありません", + # | recode EUC-KR..utf8 + "ko" => " ϸ Ʈ ʽϴ|라는 메일링 리스트가 존재하지 않습니다.", + "lt" => "N.*ra forumo", + "nl" => "Er is geen lijst met de naam", + "no" => "Listen finnes ikke", + "pl" => "Nie znaleziono listy|Nie ma takiej listy", + "pt" => "N.*o existe essa lista|Lista inexistente", + "pt_BR" => "Lista .*inexistente", + "ro" => "Nu exist.* lista|Lista aceata nu exist.*", + # | recode koi8-r..utf8 + "ru" => " .* |Список рассылки .*не существует", + "sk" => "Neznáma .*konferencia", + "sl" => "Seznam .*ne obstaja", + "sr" => "Нема листе", + "sv" => "Listan finns inte", + "tr" => "ad.*nda bir liste yok", + "uk" => "Список розсилки .*не існує", + "vi" => "Không có hộp thư (chung|như vậy)", + "zh_CN" => "没有类似的列表|没有这个列表", + "zh_TW" => "(沒有.*這個|無此)論壇", }, + # head -n 2 templates/*/admindbsummary.html + # grep -r -A 1 'msgid "There are no pending requests."' messages/* "pending_req" => { - "en" => "(current set of administrative|pending request)", - "de" => "(gegenwärtigen administrativen|unbearbeiteten Anfragen)", + "C" => "There are no pending requests", + "ar" => "تحتوي هذه الصفحة على تلخيص للطلبات الإشرافية|لا يوجد طلبات معلقة", + "ca" => "Aquesta p.*gina cont.* un sumari del conjunt actual de peticions administratives|No hi ha peticions pendents", + "cs" => "P.*ehled po.*adavk.* pro konferenci|.*dn.* po.*adavky ne.*ekaj.* na vy.*zen.*", + "da" => "Her finder du en oversigt over anmodninger der skal vurderes for maillisten|Der venter ingen anmodninger", + "de" => "Diese Seite zeigt eine .*bersicht der gegenw.*rtigen administrativen|Keine unbearbeiteten Anfragen", + "en" => "This page contains a summary of the current set of administrative", + "es" => "Esta página contiene un sumario de las solicitudes administrativas que|No hay peticiones pendientes", + "et" => "Sellel lehel on ülevaade kõigist||Taotlusi pole", + "eu" => "Orri honetan .* posta zerrendan|Ez dago eskaerarik zain", + "fi" => "Tällä sivulla on lista toimiasi vaativista|Ei odottavia pyynt.*j.*", + "fr" => "Cette page contient un r.*sum.* de l'ensemble des requ.*tes|Pas de requ.*tes en instance", + "gl" => "Esta páxina cont.*n un sumario das solicitudes administrativas que|Non hai ningunha solicitude pendente", + "he" => "עמוד זה מכיל סיכום של קבוצת כל הבקשות המנהלתיות שדורשות|אין בקשות ממתינות", + "hr" => "Ova stranica sadr.*i sa.*etak trenutnog skupa administrativnih zahtjeva|Nema zahtjeva na .*ekanju", + "hu" => "Ezen az oldalon .* levelezõlistához.* tartozó beavatkozásra|Nincsen beavatkoz.*sra v.*r.* teend.*", + "ia" => "Iste pagina contine un summario del collection del requestas|Il non ha requestas pendente", + "it" => "Questa pagina contiene la lista delle richieste amministrative|Non ci sono richieste in attesa", + "ja" => "Υڡ|このページは|αοϤޤ|保留中の申請はありません", + "ko" => " .* ϸ Ʈ|이 페이지는 .* 메일링 리스트| û ϴ|대기중인 요청이 없습니다", + "lt" => "Sprendimo laukian.*i.* lai.*k.* santrauka|There are no pending requests", + "nl" => "Deze pagina toont een overzicht van alle administratieve verzoeken m.b.t. de .* maillijst die wachten op uw goedkeuring|Er zijn geen wachtende verzoeken", + "no" => "Her finner du en oversikt over foresp.*rsler som skal vurderes for epostlisten|Det venter ingen foresp.*rsler eller s.*knader", + "pl" => "This page contains a summary of the current set of administrative|Brak skolejkowanych zada.*", + "pt" => "Esta p.*gina cont.*m um sum.*rio dos pedidos administrativos da lista|N.*o h.* pedidos pendentes", + "pt_BR" => "Esta p.*gina cont.*m um resumo do conjunto atual de requisi.*es|N.*o existem requisi.*es pendentes", + "ro" => "Aceast.* pagin.* con.*ine un sumar al setului curent de cereri administrative|Nu sunt cereri .*n a.*teptare", + "ru" => " |Эта страница содержит сводный список требующих обработки административных| , |Нет запросов, требующих обработки", + "sk" => "Preh.*ad po.*iadaviek pre konferenciu|.*iadne .*iadosti ne.*akaj.* na spracovanie", + "sl" => "Ta stran vsebuje povzetek trenutnih skrbni.*kih zahtev, ki .*akajo|Ni .*akajo.*ih zahtev", + "sr" => "Ова страна садржи преглед тренутних услова за ваше укључење у листу слања|Нема захтјева на чекању", + "sv" => "H.*r finns en .*versikt .*ver f.*rfr.*gningar som ska avg.*ras f.*r e-postlistan|Inga ans.*kningar v.*ntar", + "tr" => "Bu sayfa|Bekleyen istek yok", + "uk" => "Ця сторінка містить загальний список адміністративних запитів|Відсутні запити, що очікують рішень", + "vi" => "Trang này chứa bản tóm tắt các yêu cầu quản trị cần thiết bạn tán thành cho|Không có yêu cầu bị hoãn nào", + "zh_CN" => "此页面包含.*邮件列表|没有挂起的请求", + "zh_TW" => "沒有待決的事項", }, + # TODO: get strings from older Mailman (pre 2.1) containing this one "headline_subscr" => { "en" => "subscription", + "da" => "medlemskab", }, + # TODO: get strings from older Mailman (pre 2.1) containing this one "held_for_approval" => { "en" => "held for approval", }, + # grep -r -A 1 'msgid "Already a member"' messages/* "already_member" => { - "en" => "Already a member", + "C" => "Already a member", + "ar" => "مشترك أصلاً", + "ca" => "Ja ets membre", + "cs" => "Je ji.* .*astn.*kem", + "da" => "Allerede medlem", + "de" => "Bereits Mitglied", + "es" => "Ya est.* suscrito", + "et" => "On juba liige", + "eu" => "Dagoeneko harpidetuta", + "fi" => "Jo j.*sen", + "fr" => "D.*j.* abonn.*", + "gl" => "Xa está subscrito", + "he" => "הנו כבר מנוי", + "hr" => "Ve.* je .*lan", + "hu" => "M.*r tag", + "ia" => "Ja es un membro", + "it" => "Gi.* iscritto", + # | recode EUC-JP..utf8 + "ja" => "˲Ǥ|既に会員です", + # | recode EUC-KR..utf8 + "ko" => "̹ ȸԴϴ|이미 회원입니다", + "lt" => "Jau dalyvis", + "nl" => "Is al lid", + "no" => "Allerede medlem", + "pl" => "Ju.* jest zapisany", + "pt" => "J.* .* um membro", + "pt_BR" => "J.* .* um membro", + "ro" => "Este membru deja", + # | recode koi8-r..utf8 + "ru" => " |Уже является подписчиком", + "sk" => "Je už účastníkom", + "sl" => "Je .*e .*lan", + "sr" => "Корисник је већ учлањен.", + "sv" => "Redan medlem", + "tr" => "Zaten listeye .*ye", + "uk" => "Вже є учасником", + "vi" => "Đã thành viên", + "zh_CN" => "已经是成员了", + "zh_TW" => "已是訂戶", }, ); --- listadmin-2.40.orig/debian/control +++ listadmin-2.40/debian/control @@ -0,0 +1,19 @@ +Source: listadmin +Section: net +Priority: optional +Maintainer: Noèl Köthe <noel@debian.org> +Build-Depends: debhelper (>= 5.0.0), quilt +Standards-Version: 3.8.2 +Homepage: http://heim.ifi.uio.no/kjetilho/hacks/#listadmin + +Package: listadmin +Architecture: all +Depends: ${shlibs:Depends}, ${misc:Depends}, libwww-perl, libcrypt-ssleay-perl, libtext-reform-perl +Description: command line mailman moderator queue manipulation + listadmin is a command line tool to manipulate the queues of messages + held for moderator approval by mailman. It is designed to keep user + interaction to a minimum, in theory you could run it from cron to + prune the queue. It can use the score from a header added by + SpamAssassin to filter, or it can match specific senders, subjects, or + reasons. + --- listadmin-2.40.orig/debian/copyright +++ listadmin-2.40/debian/copyright @@ -0,0 +1,12 @@ +This package was debianized by +Noèl Köthe <noel@debian.org> on Tue, 12 Oct 2004 20:32:04 +0200. + +It was downloaded from http://heim.ifi.uio.no/~kjetilho/hacks/ + +Copyright: + +Upstream Author: Kjetil Torgrim Homme <kjetilho+listadmin@ifi.uio.no> + +License: + +Released into public domain. --- listadmin-2.40.orig/debian/changelog +++ listadmin-2.40/debian/changelog @@ -0,0 +1,172 @@ +listadmin (2.40-4) unstable; urgency=low + + * updated Standards-Version to 3.8.4 without changes + * Do not try to write bogus log file if none is defined (Closes: #461210) + Thanks Joachim "nomeata" Breitner for the patch/work. + + -- Noèl Köthe <noel@debian.org> Fri, 09 Apr 2010 23:55:09 +0200 + +listadmin (2.40-3) unstable; urgency=low + + * updated Standards-Version (no changes needed) + * debian/compat updated to 5 + * added listadmin-discard.patch from Alexander Wirt + <formorer@debian.org> Thanks! (closes: #530385) + + -- Noèl Köthe <noel@debian.org> Tue, 21 Jul 2009 00:36:37 +0200 + +listadmin (2.40-2.2) unstable; urgency=low + + * Fix regression in earlier NMU (in some cases ignored pending + actions). Closes bug#495006, thanks to Johannes Stezenbach and + Michel Dänzer. + + -- Jonas Smedegaard <dr@jones.dk> Fri, 15 Aug 2008 10:27:38 +0200 + +listadmin (2.40-2.1) unstable; urgency=low + + * Non-maintainer upload, requested by maintainer. Re-upload of + earlier NMU, so closes: bug#494484. + * Make admin page parsing more flexible, fixing crash at line 802 with + recent versions of Mailman. Closes: bug#494672. + * Extend l10n parsing by adding strings from source of Mailman 2.1.10, + making it (hopefully) support all 35 languages included with recent + Debian release of Mailman (successfully tested against english, + danish and norwegian lists). Closes: bug#494670. + * Fix possible typo: use new parser logic not only for Mailman 2.1 but + also greater versions (unlikely that Mailman will go back to usin + pre-2.1 html coding style in future releases). + + -- Jonas Smedegaard <dr@jones.dk> Mon, 11 Aug 2008 23:33:14 +0200 + +listadmin (2.40-2) unstable; urgency=low + + * debian/control + - updated Standards-Version + - added Homepage: + * added french admin translation (closes: Bug#446350) + Thanks The Anarcat <anarcat mumia.anarcat.ath.cx> + * added danish patch (closes: Bug#473567) + Thanks Soren Hansen <soren ubuntu.com> + + -- Noèl Köthe <noel@debian.org> Sat, 09 Aug 2008 22:54:50 +0200 + +listadmin (2.40-1) unstable; urgency=low + + * new upstream release + + -- Noèl Köthe <noel@debian.org> Fri, 26 Oct 2007 18:45:18 +0200 + +listadmin (2.39-1) unstable; urgency=low + + * new upstream release (Thank you Kjetil for looking at the Debian BTS) + - added {list} and {domain} expansion (closes: Bug#440542) + - some support for non-english lists (closes: Bug#442027) + + -- Noèl Köthe <noel@debian.org> Mon, 01 Oct 2007 21:01:13 +0200 + +listadmin (2.37-1) unstable; urgency=low + + * new upstream release + + -- Noèl Köthe <noel@debian.org> Fri, 15 Jun 2007 13:16:00 +0200 + +listadmin (2.36-1) unstable; urgency=low + + * new upstream release + (Closes: Bug#406603) + * added libtext-reform-perl dependency + + -- Noèl Köthe <noel@debian.org> Sat, 20 Jan 2007 21:21:17 +0100 + +listadmin (2.32-1) unstable; urgency=medium + + * new upstream release + (Closes: Bug#399730) + * this package should fix wrong spam flagging + (Closes: Bug#379915) + * updated Standard-Version + + -- Noèl Köthe <noel@debian.org> Sun, 26 Nov 2006 20:05:26 +0100 + +listadmin (2.30-1) unstable; urgency=low + + * new upstream release from 2006-02-19 + + -- Noèl Köthe <noel@debian.org> Tue, 21 Feb 2006 22:23:56 +0100 + +listadmin (2.29-1) unstable; urgency=low + + * new upstream release from 2006-02-17 + + -- Noèl Köthe <noel@debian.org> Sat, 18 Feb 2006 00:39:55 +0100 + +listadmin (2.28-1) unstable; urgency=low + + * new upstream release from 2006-02-15 + + -- Noèl Köthe <noel@debian.org> Thu, 16 Feb 2006 21:29:01 +0100 + +listadmin (2.27-2) unstable; urgency=low + + * applied mailman 2.1 patch from Sam Watkins <sam nipl.net> + with a correction from Petter Reinholdtsen <pere hungry.com> + Thanks alot for your work. + (closes: Bug#292929) + + -- Noèl Köthe <noel@debian.org> Fri, 30 Dec 2005 08:21:36 +0100 + +listadmin (2.27-1) unstable; urgency=low + + * new upstream version + + -- Noèl Köthe <noel@debian.org> Fri, 30 Sep 2005 07:31:27 +0200 + +listadmin (2.26-1) unstable; urgency=low + + * new upstream version + + -- Noèl Köthe <noel@debian.org> Sat, 25 Jun 2005 23:00:09 +0200 + +listadmin (2.24-2) unstable; urgency=medium + + * urgency=medium + 2.24 fixes mail loose, when you first mark a mail to be discard + and then jump back to it and mark it skip. + * renamed binary from listadmin.pl to listadmin in usr/bin + + -- Noèl Köthe <noel@debian.org> Tue, 08 Mar 2005 09:30:12 +0100 + +listadmin (2.24-1) unstable; urgency=low + + * new upstream relase from 2005-02-25 + + -- Noèl Köthe <noel@debian.org> Thu, 03 Mar 2005 14:12:12 +0100 + +listadmin (2.23-1) unstable; urgency=low + + * new upstream relase from 2005-02-21 + * upstream fixed problem with passwords in web logs + (closes: Bug#289915) + + -- Noèl Köthe <noel@debian.org> Mon, 21 Feb 2005 09:43:10 +0100 + +listadmin (2.22-1) unstable; urgency=low + + * new upstream release from 2004-11-02 + * running listadmin gives "uninitialized value" warnings + are fixed + (closes: Bug#278149) + * Name "main::opt_n" used only once + is fixed + (closes: Bug#278330) + + -- Noèl Köthe <noel@debian.org> Wed, 03 Nov 2004 00:46:35 +0100 + +listadmin (2.21-1) unstable; urgency=low + + * Initial Release. + (closes: Bug#274648) + + -- Noèl Köthe <noel@debian.org> Tue, 12 Oct 2004 20:32:04 +0200 + --- listadmin-2.40.orig/debian/dirs +++ listadmin-2.40/debian/dirs @@ -0,0 +1,2 @@ +usr/bin +usr/share/man/man1 --- listadmin-2.40.orig/debian/rules +++ listadmin-2.40/debian/rules @@ -0,0 +1,78 @@ +#!/usr/bin/make -f + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +include /usr/share/quilt/quilt.make + +CFLAGS = -Wall -g + +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +configure: patch configure-stamp +configure-stamp: + dh_testdir + # Add here commands to configure the package. + + touch configure-stamp + + +build: configure build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + #$(MAKE) + #docbook-to-man debian/listadmin.sgml > listadmin.1 + + touch build-stamp + +clean: clean-patched unpatch + +clean-patched: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + #-$(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/listadmin. + #$(MAKE) install DESTDIR=$(CURDIR)/debian/listadmin + cp listadmin.pl $(CURDIR)/debian/listadmin/usr/bin/listadmin + cp listadmin.man $(CURDIR)/debian/listadmin/usr/share/man/man1/listadmin.1 + + +# Build architecture-independent files here. +binary-indep: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep +.PHONY: build clean binary-indep binary install configure patch unpatch + --- listadmin-2.40.orig/debian/compat +++ listadmin-2.40/debian/compat @@ -0,0 +1 @@ +5 --- listadmin-2.40.orig/debian/patches/dont-write-logfile.patch +++ listadmin-2.40/debian/patches/dont-write-logfile.patch @@ -0,0 +1,15 @@ +Index: listadmin-2.40/listadmin.pl +=================================================================== +--- listadmin-2.40.orig/listadmin.pl 2010-03-25 22:32:48.000000000 +0100 ++++ listadmin-2.40/listadmin.pl 2010-03-25 22:32:52.000000000 +0100 +@@ -1635,8 +1635,8 @@ + my $params = mailman_params ($user, $pw); + + my $log = log_timestamp ($list); +- # Expand {list}, {subdomain} and {domain} +- $logfile = mailman_url($list, $logfile); ++ # Expand {list}, {subdomain} and {domain}, if there is something to expand ++ $logfile = mailman_url($list, $logfile) if $logfile; + + for my $id (sort { $a <=> $b } keys %{$change}) { + my ($what, $text) = @{$change->{$id}}; --- listadmin-2.40.orig/debian/patches/listadmin-discard.patch +++ listadmin-2.40/debian/patches/listadmin-discard.patch @@ -0,0 +1,57 @@ +diff --git a/listadmin.pl b/listadmin.pl +index 42b365c..71c7a08 100755 +--- a/listadmin.pl ++++ b/listadmin.pl +@@ -254,7 +254,7 @@ sub process_subscriptions { + } + my $count = keys (%subscribers); + my $def = $config->{"subdefault"}; +- my $prompt = 'Accept/Reject/Skip/Quit'; ++ my $prompt = 'Accept/Discard/Reject/Skip/Quit'; + $prompt .= " [" . uc($def) . "]" if $def; + $prompt .= " ? "; + +@@ -281,6 +281,9 @@ sub process_subscriptions { + } elsif ($ans eq "a") { + $change->{$id} = [ "sa" ]; + last; ++ } elsif ($ans eq "d") { ++ $change->{$id} = [ "sd" ]; ++ last; + } elsif ($ans eq "r") { + my $r = prompt ("Why do you reject? [optional] "); + unless (defined $r) { +@@ -295,6 +298,7 @@ and pressing Return. + + a Accept -- allow the user to join the mailing list + r Reject -- notify sender that the request was turned down ++ d Discard -- silently discard the request + s Skip -- do not decide now, leave it for later + q Quit -- go on to approving messages + +@@ -1377,6 +1381,7 @@ sub set_param_values { + "d" => 3, + "sa" => 4, # subscribe approve + "sr" => 2, # subscribe reject ++ "sd" => 3, # subsribe discard + }; + } else { + $data->{"global"}{"actions"} = { "a" => 0, +@@ -1411,7 +1416,7 @@ sub read_config { + + my %act = ("approve" => "a", "discard" => "d", + "reject" => "r", "skip" => "s", "none" => ""); +- my %sact = ("accept" => "a", ++ my %sact = ("accept" => "a", "discard" => "d", + "reject" => "r", "skip" => "s", "none" => ""); + + return undef unless open (CONF, $file); +@@ -1641,7 +1646,7 @@ sub commit_changes { + for my $id (sort { $a <=> $b } keys %{$change}) { + my ($what, $text) = @{$change->{$id}}; + $params->{$id} = $action->{$what}; +- unless ($what =~ /^s[ar]$/) { ++ unless ($what =~ /^s[ard]$/) { + # we don't log subscription approval or rejects + $log .= sprintf ("%s D:[%s] F:[%s] S:[%s]\n", + $what, --- listadmin-2.40.orig/debian/patches/series +++ listadmin-2.40/debian/patches/series @@ -0,0 +1,3 @@ +listadmin-discard.patch +dont-write-logfile.patch +