debian/0000775000000000000000000000000013237056073007176 5ustar debian/rules0000775000000000000000000001751613174122612010261 0ustar #!/usr/bin/make -f # -*- makefile -*- made with the aid of debmake, by Christoph Lameter, # based on the sample debian/rules file for GNU hello by Ian Jackson. package=mailman PACKAGE=$(package) VERSION=$(shell dpkg-parsechangelog | awk '$$1 == "Version:" {print $$2}') binaries=list_lists find_member config_list mmsitepass newlist rmlist \ add_members list_members remove_members arch clone_member \ sync_members check_db check_perms list_admins withlist #export DH_VERBOSE=1 SHELL=/bin/bash # the '-include' is for compatibility with squeeze. # replace with 'include' after squeeze support is over, or # replace with 'include /usr/share/dpkg/default.mk' to replace vars above export DEB_BUILD_MAINT_OPTIONS = hardening=+all DPKG_EXPORT_BUILDFLAGS = 1 -include /usr/share/dpkg/buildflags.mk ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) CFLAGS += -g endif ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) INSTALL_PROGRAM += -s endif build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp build-stamp: Makefile debian/po/templates.pot $(MAKE) sed 's,@VERSION@,$(VERSION),g' < debian/preinst.in > debian/preinst touch build-stamp debian/po/templates.pot: debian/templates @debconf-updatepo Makefile: ./configure --prefix=/var/lib/$(package) --with-username=list \ --with-groupname=list \ --with-mail-gid=daemon --with-cgi-gid=www-data \ --without-permcheck --with-mailhost=localhost \ --with-urlhost=localhost clean: dh_testdir dh_testroot [ ! -f Makefile ] || $(MAKE) distclean rm -rf build-stamp Makefile debian/ucffiles debian/mailman.postinst.ucf rm -f debian/mailman.postrm.ucf rm -f debian/preinst dh_clean chmod +x debian/{prerm,postinst} binary-indep: build dh_testdir dh_testroot # There are no architecture-independent files to be uploaded # generated by this package. If there were any they would be # made here. binary-arch: build dh_testdir dh_testroot dh_install dh_installdirs dh_installdocs ACKNOWLEDGMENTS README* TODO FAQ dh_installchangelogs NEWS $(MAKE) doinstall prefix=$$(pwd)/debian/mailman/var/lib/$(package) \ var_prefix=$$(pwd)/debian/mailman/var/lib/$(package) \ icondir=$$(pwd)/debian/mailman/usr/share/images/mailman \ ICONDIR=$$(pwd)/debian/mailman/usr/share/images/mailman rmdir debian/$(package)/var/lib/mailman/pythonlib rm -r debian/$(package)/var/lib/mailman/tests # cruft: msgfmt.py is only used at build time rm debian/$(package)/var/lib/mailman/bin/msgfmt.py # move the nonchanging directories to /usr/lib/mailman, except for # cgi-bin, which goes to /usr/lib/cgi-bin/mailman cd debian/mailman/var/lib/$(package) ; \ mv cgi-bin ../../../usr/lib/cgi-bin/mailman ; \ for i in Mailman bin cron mail scripts ; do \ mv $$i ../../../usr/lib/$(package); \ done # link them back to /var/lib/mailman for i in debian/mailman/usr/lib/$(package)/*; do \ dh_link usr/lib/$(package)/`basename $$i` var/lib/$(package)/`basename $$i`; \ done # Link cgi-bin as well dh_link usr/lib/cgi-bin/$(package) var/lib/$(package)/cgi-bin # Backwards compatibility link dh_link usr/lib/mailman/mail/mailman usr/lib/mailman/mail/wrapper dh_link usr/share/images/mailman usr/share/doc/mailman/images rmdir debian/$(package)/var/lib/mailman/icons dh_link usr/share/images/mailman var/lib/mailman/icons # move the templates to /etc/mailman mv debian/mailman/var/lib/$(package)/templates debian/mailman/etc/mailman # link it back to /var/lib/mailman/templates dh_link etc/mailman var/lib/$(package)/templates # note the current version to avoid aborting on same-version # reinstallations - see the preinst script echo "$(VERSION)" > debian/mailman/var/lib/$(package)/.version dh_installlogrotate dh_installcron install -m 0644 debian/mm_cfg.py debian/mailman/usr/lib/mailman/Mailman/mm_cfg.py.dist rm debian/$(package)/usr/lib/$(package)/Mailman/mm_cfg.py dh_link etc/$(package)/mm_cfg.py \ usr/lib/$(package)/Mailman/mm_cfg.py for bin in $(binaries); \ do dh_link usr/lib/$(package)/bin/$$bin usr/sbin/$$bin; done mv debian/mailman/usr/sbin/arch debian/mailman/usr/sbin/mmarch dh_installman dh_installinit dh_installdebconf dh_installexamples templates/* debian/mm_cfg.py \ debian/mailman/usr/lib/$(package)/Mailman/Defaults.py dh_strip dh_compress -Xmailman-admin.pdf -Xmailman-install.pdf -Xmailman-member-es.pdf -Xmailman-member.pdf dh_fixperms chown -R root:root debian/mailman chown -R root:list \ debian/mailman/{etc/$(package),var/lib/$(package),usr/lib/{$(package),cgi-bin/$(package)}} chown list:list debian/mailman/var/lib/mailman/qfiles chown root:list debian/mailman/var/log/mailman # set 2755 except messages/ find debian/mailman/var/lib/$(package) -path debian/mailman/var/lib/$(package)/messages -prune -o -type d -exec chmod 2775 {} \; # make lintian happy install -m 0644 debian/lintian-overrides debian/mailman/usr/share/lintian/overrides/mailman # Spamassassin plugin install -m 0644 debian/contrib/SpamAssassin.py debian/mailman/usr/lib/$(package)/Mailman/Handlers install -m 0644 debian/contrib/spamd.py debian/mailman/usr/lib/$(package)/Mailman/Handlers # postfix-to-mailman.py install -m 0755 debian/contrib/postfix-to-mailman.py debian/mailman/usr/share/mailman dh_link etc/mailman/postfix-to-mailman.py usr/lib/mailman/bin/postfix-to-mailman.py # apache default config install -m 0644 debian/contrib/apache.conf debian/mailman/etc/mailman # Debian Powered icon install -m 0644 debian/contrib/debianpowered.png debian/mailman/usr/share/images/mailman/ # Move templates mv `find debian/mailman/etc/mailman -mindepth 1 -maxdepth 1 -type d` debian/mailman/usr/share/mailman cp build/contrib/qmail-to-mailman.py debian/mailman/usr/share/mailman find debian/mailman/usr/share/mailman -type f -printf '/etc/mailman/%P\n' > debian/ucffiles dh_link etc/mailman/qmail-to-mailman.py usr/lib/mailman/bin/qmail-to-mailman.py # Fix permissions chmod +x debian/mailman/usr/lib/$(package)/Mailman/Cgi/* # chmod +x debian/mailman/usr/lib/$(package)/scripts/* chmod +x debian/mailman/usr/lib/$(package)/Mailman/Archiver/pipermail.py chmod g+s debian/mailman/usr/lib/cgi-bin/mailman/* \ debian/mailman/usr/lib/mailman/mail/mailman chmod -x debian/mailman/usr/lib/$(package)/scripts/paths.py \ debian/mailman/usr/lib/$(package)/Mailman/Cgi/* chmod o-rx debian/mailman/var/lib/$(package)/archives/private chown list:www-data debian/mailman/var/lib/$(package)/archives/private chmod 0755 debian/mailman/usr/lib/$(package)/cron/* chmod 0644 debian/mailman/usr/lib/$(package)/cron/{crontab.in,paths.py} # Python Policy dh_python2 -a /usr/lib/mailman/Mailman install -d debian/mailman/usr/share/python/runtime.d install debian/mailman.rtupdate debian/mailman/usr/share/python/runtime.d egrep -rslZ '^#!(.*)python' debian/mailman/usr/lib/mailman | xargs -0 chmod a+x -- find debian/mailman/usr/share/doc/mailman -name "*.html" -exec chmod -x {} \; find debian/mailman/usr/share/doc/mailman -name "*.txt" -exec chmod -x {} \; find debian/mailman/usr/share/doc/mailman -name '.svn' -exec rm -rf {} \; || true # Create the /var/lo{g,ck} links last, and wih ln -s, because they need to be # absolute links. Relative links cause trouble for people making multiple levels, # e.g. when /var/log is symlinked to somewhere else. They need to be last because # otherwise dh_link will revert them back to relative ones. # # link it back to /var/lib/mailman/locks rmdir debian/mailman/var/lib/$(package)/locks ln -s /var/lock/mailman debian/mailman/var/lib/$(package)/locks # remove the log directory and link it to /var/log/mailman rmdir debian/mailman/var/lib/$(package)/logs ln -s /var/log/mailman debian/mailman/var/lib/$(package)/logs chown root:list debian/mailman/var/log/mailman chmod 2770 debian/mailman/var/log/mailman dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: binary binary-arch binary-indep clean debian/templates0000664000000000000000000001011613174122612011107 0ustar # $URL: svn+ssh://tg@svn.debian.org/svn/pkg-mailman/branches/experimental/debian/templates $ # $Id: templates 693 2011-10-08 15:30:38Z thijs $ Template: mailman/site_languages Type: multiselect __Choices: ar (Arabic), ca (Catalan), cs (Czech), da (Danish), de (German), en (English), es (Spanish), et (Estonian), eu (Basque), fi (Finnish), fr (French), hr (Croatian), hu (Hungarian), ia (Interlingua), it (Italian), ja (Japanese), ko (Korean), lt (Lithuanian), nl (Dutch), no (Norwegian), pl (Polish), pt (Portuguese), pt_BR (Brasilian Portuguese), ro (Romanian), ru (Russian), sl (Slovenian), sr (Serbian), sv (Swedish), tr (Turkish), uk (Ukrainian), vi (Vietnamese), zh_CN (Chinese - China), zh_TW (Chinese - Taiwan) # You must NOT translate this string, but you can change its value. # The comment between brackets is used to distinguish this msgid # from the one in the Choices list; you do not have to worry about # them, and have to simply choose a msgstr among the English values # listed in the Choices field above, e.g. msgstr "nl (Dutch)". _DefaultChoice: en (English)[ default language ] _Description: Languages to support: For each supported language, Mailman stores default language specific texts in /etc/mailman/LANG/ giving them conffile like treatment with the help of ucf. This means approximately 150kB for each supported language on the root file system. . If you need a different set of languages at a later time, just run dpkg-reconfigure mailman. . NOTE: Languages enabled on existing mailing lists are forcibly re-enabled when deselected and mailman needs at least one language for displaying its messages. Template: mailman/used_languages Type: string Description: for internal use: holding result of scan Template: mailman/create_site_list Type: note _Description: Missing site list Mailman needs a so-called "site list", which is the list from which password reminders and such are sent out from. This list needs to be created before mailman will start. . To create the list, run "newlist mailman" and follow the instructions on-screen. Note that you also need to start mailman after that, using /etc/init.d/mailman start. Template: mailman/default_server_language Type: select Choices: ${site_languages} # You must NOT translate this string, but you can change its value. # The comment between brackets is used to distinguish this msgid # from the one in the Choices list; you do not have to worry about # them, and have to simply choose a msgstr among the English values # listed in the Choices field above, e.g. msgstr "nl (Dutch)". _DefaultChoice: en (English)[ default language ] _Description: Default language for Mailman: The web page will be shown in this language, and in general, Mailman will use this language to communicate with the user. Template: mailman/queue_files_present Type: select __Choices: abort installation, continue regardless DefaultChoice: abort installation _Description: Old queue files present The directory /var/lib/mailman/qfiles contains files. It needs to be empty for the upgrade to work properly. You can try to handle them by: - Stop new messages from coming in (at the MTA level). - Start a mailman queue runner: /etc/init.d/mailman start - Let it run until all messages are handled. If they don't all get handled in a timely manner, look at the logs to try to understand why and solve the cause. - Stop it: /etc/init.d/mailman stop - Retry the upgrade. - Let messages come in again. You can also decide to simply remove the files, which will make Mailman forget about (and lose) the corresponding emails. . If these files correspond to shunted messages, you have to either delete them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages are messages on which Mailman has already abandoned any further processing because of an error condition, but that are kept for admin review. You can use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues. . You have the option to continue installation regardless of this problem, at the risk of losing the messages in question or breaking your Mailman setup. debian/source/0000775000000000000000000000000013174122612010467 5ustar debian/source/format0000664000000000000000000000001413174122612011675 0ustar 3.0 (quilt) debian/source/include-binaries0000664000000000000000000000004113174122612013622 0ustar debian/contrib/debianpowered.png debian/watch0000664000000000000000000000031513174122612010217 0ustar version=3 # this matches only version numbers without suffix (rc, beta etc): opts="dversionmangle=s/^[0-9]+://" \ https://launchpad.net/mailman/2.1 /\d+\.\d+\.?\d*/\+download/mailman-(\d+\.\d+\.?\d*)\.tgz debian/postrm0000664000000000000000000000167013174122612010442 0ustar #! /bin/sh -e # $URL: svn+ssh://tg@svn.debian.org/svn/pkg-mailman/branches/experimental/debian/postrm $ # $Id: postrm 600 2009-01-08 20:54:48Z thijs $ #DEBHELPER# find /usr/lib/mailman -name *.pyc -print0 | xargs -0 rm -f if [ "$1" = purge ]; then # HACK: At present there is no way to ask ucf for registered files # except for directly querying its database. if which ucf >/dev/null; then printf "Purging files from ucf database " >&2 for file in $(sed -e '\|^[0-9a-fA-F]\+[[:space:]]\+/etc/mailman/|!d' -e 's|^[0-9a-fA-F]\+[[:space:]]\+||' /var/lib/ucf/hashfile); do ucf --purge ${file} 2>/dev/null printf . >&2 done ucf --purge /etc/cron.d/mailman 2>/dev/null printf ". done.\n" >&2 fi fi rm -rf /var/lock/mailman if [ "$1" = purge ]; then rm -f /etc/cron.d/mailman rm -rf /etc/mailman rm -rf /var/log/mailman # rm -rf /var/lib/mailman rm -f /var/lib/mailman/data/last_mailman_version fi debian/po/0000775000000000000000000000000013174122612007605 5ustar debian/po/es.po0000664000000000000000000002751513174122612010566 0ustar # mailman debconf translation to spanish # Copyright (C) 2003,2004 Software in the Public Interest # This file is distributed under the same license as the mailman package. # # Changes: # - Initial translation # Carlos Valdivia Yage , 2003, 2004 # - Translation update # Javier Fernandez-Sanguino 2006 # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # # msgid "" msgstr "" "Project-Id-Version: maiman 2.1.4-3\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-28 18:43+0100\n" "Last-Translator: Javier Fernandez-Sanguino \n" "Language-Team: Debian L10n Spanish \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (rabe)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Cataln)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (Checoslovaco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Dans)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Alemn)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Ingls)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Espaol)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (Estonio)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Vasco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Finlands)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Francs)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (Croata)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Hngaro)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Italiano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Japons)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Coreano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (Lituano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Holands)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Noruego)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Polaco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Portugus)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (Portugus brasileo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Rumano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Ruso)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Eslovaco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Serbio)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Sueco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (Turco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (Ucraniano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (Vietnamita)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (Chino - China)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zn_TW (Chino - Taiwn)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "es (Spanish)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Idiomas a soportar:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Mailman guarda los textos especficos para cada idioma soportado en /etc/" "mailman/LANG, dndose soporte de fichero de configuracin para todos ellos " "gracias a ucf. Esto significa que cada lenguaje para el que se active el " "soporte consumir aproximadamente 150kB en el sistema de ficheros raz." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Slo tiene que ejecutar dpkg-reconfigure mailman si necesita un conjunto " "de lenguajes distinto ms adelante." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "NOTA: Se vuelven a activar de forma forzosa los idiomas habilitados en " "listas de correo existentes y mailman necesita al menos un idioma para poder " "mostrar sus mensajes." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Falta la lista del sitio" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman necesita la llamada \"lista del sitio\", que es la lista a partir de " "la que se mandan, por ejemplo, los recordatorios de contrasea. Debe crear " "esta lista antes de iniciar mailman." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Para crear la lista, ejecute newlist mailman y siga las instrucciones que " "aparecern en pantalla. Posteriormente deber reiniciar mailman, ejecutando " "/etc/init.d/mailman start." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Idioma por omisin para Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "La pgina web mostrar el idioma y, por regla general, Mailman utilizar " "este idioma para comunicarse con el usuario." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "abortar la instalacin" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "continuar en cualquier caso" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Se han encontrado ficheros de colas antigos" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "Se han encontrado ficheros en el directorio /var/lib/mailman/qfiles. Este " "directorio debe vaciarse para que la actualizacin funcione correctamente. " "Puede intentar arreglarlo haciendo lo siguiente:\n" " - Impida que entren mensajes a la lista (configurando el MTA).\n" " - Arranque un proceso de tratamiento de colas de mailman: \n" " /etc/init.d/mailman start.\n" " - Deje que se ejecute hasta que gestione todos los mensajes.\n" " Si no puede gestionar todos en un tiempo razonable mire los registros\n" " e intente determinar el por qu y resolver el problema.\n" " - Prelo: /etc/init.d/mailman stop\n" " - Reintente la actualizacin.\n" " - Deje que vuelvan a entrar los mensajes.\n" "Tambin puede decidir directamente eliminar estos ficheros. Si hace sto " "Mailman se olvidar (y borrar) los mensajes correspondientes." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Tendr que borrar o tratar (con /var/lib/mailman/bin/unshunt) los mensajes " "si corresponden a mensajes rechazados. Los mensajes rechazados son aquellos " "que Mailman ha dejado de procesar debido a una condicin de error y se " "guardan para que el administrador los revise. Puede mostrar los contenidos " "de la cola ejecutando /var/lib/mailman/bin/show_qfiles." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Puede elegir continuar la instalacin sin tener en cuenta este problema pero " "corre el riesgo de perder los mensajes antes descritos o romper su " "instalacin de Mailman." #~ msgid "Gate news to mail?" #~ msgstr "Conectar las noticias con el correo?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman puede actuar como pasarela de noticias a correo, es decir, enviar " #~ "todos los mensajes que llegan a un grupo de noticias de Usenet a una " #~ "lista de correo." #~ msgid "Most people won't need this." #~ msgstr "Prcticamente nadie necesita esto." debian/po/pt.po0000664000000000000000000002612313174122612010574 0ustar # Portuguese translation for mailman debconf messages # Copyright (C) 2007 Miguel Figueiredo # This file is distributed under the same license as the mailman package. # Miguel Figueiredo , 2007. # msgid "" msgstr "" "Project-Id-Version: mailman 2.1.9-5\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-28 10:31+0000\n" "Last-Translator: Miguel Figueiredo \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (Arábe)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Catalão)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (Checo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Dinamarquês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Alemão)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Inglês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Espanhol)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (Estónio)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Basco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Finlandês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Françês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (Croata)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Húngaro)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Interlíngua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Italiano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Japonês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Coreano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (Lituano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Holandês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Norueguês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Polaco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Português)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (Português do Brasil)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Romeno)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Russo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Esloveno)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Sérvio)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Sueco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (Turco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (Ucraniano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (Vietnamita)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (Chinês - China)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (Chinês - Formosa)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "pt (Portuguese)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Idiomas a suportar:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Para cada idioma suportado, o Mailman guarda os textos específicos do idioma " "por omissão em /etc/mailman/LANG/ dando-lhes um tratamento tipo conffile com " "a ajuda do ucf. Isto significa aproximadamente 150kB para cada idioma " "suportado no sistema de ficheiros raiz." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Se você necessitar de um conjunto diferente de idiomas noutra altura, apenas " "execute dpkg-reconfigure mailman." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "NOTA: Os idiomas habilitados em listas de correio existentes são " "forçadamente re-habilitados quando os deseleccionar e o mailman necessita de " "pelo menos um idioma para mostrar estas mensagens." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Falta lista de site" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "O Mailman necessita do chamado \"site list\", que é a lista a partir da qual " "os alertas de palavra-chave são enviados. Esta lista necessita ser criada " "antes do mailman iniciar." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Para criar a lista, corra \"newlist mailman\" e siga as instruções no ecrã. " "Note que após isso também tem de iniciar o mailman, utilizando /etc/init.d/" "mailman start." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Idioma por omissão para o Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "A página web será mostrada neste idioma, e em geral, o Mailman irá utilizar " "este idioma para comunicar com o utilizador." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "abortar a instalação" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "continuar de qualquer forma" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Estão presentes ficheiros da fila antiga" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "O directório /var/lib/mailman/qfiles contém ficheiros. Necessita estar vazio " "para a actualização funcionar correctamente. Você pode lidar com eles " "assim:\n" " - Parar novas mensagens de entrar (ao nível do MTA).\n" " - Iniciar uma execução da fila do mailman: /etc/init.d/mailman start\n" " - Deixa-lo correr até as mensagens serem lidadas.\n" " Se não forem todos lidados a tempo, veja os logs para tentar perceber\n" " porquê e resolver a causa.\n" " - Para-lo: /etc/inid.d/mailman stop\n" " - Tentar novamente a actualização.\n" " - Deixar as mensagens entrar novamente.\n" "Pode também decidir simplesmente remover os ficheiros, o que fará o Mailman " "esquecer acerca (e perder) os mails correspondentes." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Se estes ficheiros correspondem a mensagens 'shunted', você tem de apagá-las " "ou fazer unshunt (com /var/lib/mailman/bin/unshunt). Mensagens 'shunted' são " "mensagens nas quais o Mailman já abandonou qualquer processamento por causa " "de uma condição de erro, mas são mantidas para revisão pelo administrador. " "Você pode utilizar var/lib/mailman/bin/show_qfiles para examinar o conteúdo " "das filas." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Tem a opção de continuar a instalação independentemente deste problema, com " "o risco de perder as mensagens em questão ou estragar a configuração do seu " "Mailman." #~ msgid "Gate news to mail?" #~ msgstr "Redireccionar as news para o e-mail?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "O Mailman permite redireccionar as news para o e-mail, isto é, enviar " #~ "todas as mensagens que aparecem num newsgroup Usenet para a lista de " #~ "correio." #~ msgid "Most people won't need this." #~ msgstr "A maioria das pessoas não necessitará disto." debian/po/sk.po0000664000000000000000000002621213174122612010565 0ustar # Slovak translation of the mailman debconf template. # Copyright (C) 2005 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the udev package. # Ivan Masár , 2009. # msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2009-06-02 16:13+0100\n" "Last-Translator: Ivan Masár \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (arabčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (katalánčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (čeština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (dánčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (nemčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (angličtina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (španielčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (estónčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (baskičtina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (fínčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (francúzština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (chorvátčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (maďarčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (taliančina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (japončina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (kórejčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (litovčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (holandčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (nórčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (poľština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (portugalčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (brazílska portugalčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (rumunčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (ruština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (slovinčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (srbčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (švédčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (turečtina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (ukrajinčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (vietnamčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (zjednodušená čínština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (tradičná čínština)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "en (angličtina)[ predvolený jazyk ]" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Podporované jazyky:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Pre každý podporovaný jazyk ukladá Mailman texty špecifické pre predvolený " "jazyk v /etc/mailman/LANG/ a s pomocou ucf sa s nimi zaobchádza ako s conf " "súbormi. To znamená približne 150 kB pre každý podporovaný jazyk na " "koreňovom súborovom systéme." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Ak budete neskôr potrebovať odlišnú sadu jazykov, jednoducho spustite „dpkg-" "reconfigure mailman“." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "POZN.: Jazyky zapnuté na existujúcich konferenciách sa násilne znova zapnú " "jeď je ich výber zrušený a mailman potrebuje aspoň jeden jazyk na zobrazenie " "svojich správ." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Chýba konferencia lokality" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman potrebuje tzv. „konferenciu lokality“, čo je zoznam z ktorého sa " "posielajú pripomenutiahesiel a pod. Túto konferenciu je potrebné vytvoriť " "pred spustením Mailmanu." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Ak chcete túto konferenciu vytvoriť, spustite „newlist mailman“ a nsaledujte " "pokyny na obrazovke. Pamätajte, že následne musíte spustiť mailman použitím " "„/etc/init.d/mailman start“." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Predvolený jazyk pre Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "Webstránka sa zobrazí v tomto jazyku a vo všeobecnosti bude Mailman používať " "tento jazyk na komunikáciu s používateľom." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "zrušiť inštaláciu" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "pokračovať napriek tomu" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Sú prítomné staré súbory frontu" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "Adresár /var/lib/mailman/qfiles obsahuje súbory. Aby aktualizácia fungovala, " "musí byť prázdny. Môžete skúsiť sa o ne postarať nasledovne:\n" " - Zastaviť príjem nových správ (na úrovni MTA).\n" " - Spustiť spracovanie frontu mailman: /etc/init.d/mailman start\n" " - nechať ho bežať kým nebudú spracované všetky správy.\n" " Ak nebudú všetky včas spracované, pozrite sa do záznamov\n" " a pokúste sa pochopiť príčinu.\n" " - Zastavte ho: /etc/init.d/mailman stop\n" " - Znova sa pokúste o aktualizáciu.\n" " - Opäť povoľte príchod nových správ.\n" "Tiež sa môžete rozhodnúť, že súbory jednoducho odstránite, a teda sa Mailman " "nikdy nedozvie (a stratia sa) o zodpovedajúcich emailoch." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Ak tieto súbory zodpovedajú odsunutým správam, musíte ich buď zmazať alebo " "zrušiť odsunutie (pomocou /var/lib/mailman/bin/unshunt). Odsunuté správy sú " "také, ktorých spracovanie Mailman už vzdal z dôvodu chyby, ale sú ponechané " "na kontrolu pre správcu. Na preskúmanie obsahu front môžete použiť /var/lib/" "mailman/bin/show_qfiles." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Máte možnosť pokračovať v inštalácii bez ohľadu na tento problém, pričom " "však riskujete stratu dotyčných správ alebo poškodenie svojej konfigurácie " "Mailmanu." #~ msgid "Gate news to mail?" #~ msgstr "Brána news (nntp) na poštu?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman umožňuje prekladať novinky na poštu, t.j. posielať všetky správy, " #~ "ktoré sa objavia v Usenetových skupinách do konferencie." #~ msgid "Most people won't need this." #~ msgstr "Väčšina ľudí to nebude potrebovať." debian/po/POTFILES.in0000664000000000000000000000004413174122612011360 0ustar [type: gettext/rfc822deb] templates debian/po/gl.po0000664000000000000000000002631013174122612010551 0ustar # translation of gl.po_[koEpJb].po to galician # Galician translation of mailman's debconf templates # This file is distributed under the same license as the mailman package. # # Jacobo Tarrio , 2008. # Marce Villarino , 2008. msgid "" msgstr "" "Project-Id-Version: mailman\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-28 14:33+0100\n" "Last-Translator: Marce Villarino \n" "Language-Team: galician \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (árabe)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (catalán)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (checo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (dinamarqués)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (alemán)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (inglés)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (español)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (estoniano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (eúscaro)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (finés)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (francés)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (croata)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (húngaro)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (italiano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (xaponés)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (coreano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (lituano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (holandés)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (noruegués)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (polaco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (portugués)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (portugués do Brasil)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (romanés)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (ruso)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (esloveno)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (serbio)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (sueco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (turco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (ucraíno)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (vietnamita)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (chinés de China)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (chinés de Taiwan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "es (español)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Idiomas a soportar:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Para cada idioma soportado, Mailman almacena os textos predeterminados " "específicos de cada idioma en /etc/mailman/IDIOMA/, dándolles un tratamento " "equivalente ao dos ficheiros de configuración coa axuda de ucf. Isto implica " "que se han usar aproximadamente 150 kB no sistema de ficheiros raíz por cada " "idioma soportado." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Se máis adiante precisa dun conxunto de idiomas diferente, execute \"dpkg-" "reconfigure mailman\"." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "NOTA: Os idiomas activados nas listas de correo existentes reactívanse " "obrigatoriamente se se deseleccionan, e ademáis mailman precisa de alomenos " "un idioma no que mostrar as mensaxes." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Falla a lista do sitio" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman precisa dunha \"lista do sitio\", que é a lista desde a que se " "envían os lembretes de contrasinal e todo iso. É necesario crear esa lista " "antes de iniciar mailman." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Para crear a lista, execute \"newlist mailman\" e siga as instrucións da " "pantalla. Teña en conta que tamén ha ter que iniciar mailman despois de " "facelo, empregando \"/etc/init.d/mailman start\"." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Idioma predeterminado para Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "A páxina web hase mostrar neste idioma e, en xeral, Mailman ha empregalo " "para se comunicar co usuario." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "cancelar a instalación" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "continuar de calquera maneira" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Existen ficheiros de fila antigos" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "O directorio /var/lib/mailman/qfiles contén ficheiros. É preciso que estea " "baleiro para que funcione a actualización. Pode xestionalos deste xeito:\n" " - Impida que cheguen novas mensaxes (ao nivel do MTA).\n" " - Poña en marcha a fila de mailman: /etc/init.d/mailman start\n" " - Deixe que funcione até que todas as mensaxes estean xestionadas.\n" " Se non se xestionan todas nun tempo razonábel, consulte os rexistros\n" " para ver a causa e solucionala.\n" " - Deteña a fila: /etc/init.d/mailman stop\n" " - Volva tentar a actualización.\n" " - Deixe que cheguen as mensaxes outra vez.\n" "Tamén pode, simplemente, eliminar os ficheiros, o que ha facer que Mailman " "esqueza (e perda) as mensaxes correspondentes." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Se estes ficheiros se corresponden a mensaxes apartadas, ha ter que borralas " "ou repoñelas (mediante /var/lib/mailman/bin/unshunt). As mensaxes apartadas " "son mensaxes que Mailman renunciou a procesar debido a un erro, pero que se " "conservan para que os administradores lles boten unha ollada. Pode empregar /" "var/lib/mailman/bin/show_qfiles para examinar o contido das filas." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Pode continuar coa instalación malia este problema, co risco de perder as " "mensaxes en cuestión ou estragar a configuración de Mailman." #~ msgid "Gate news to mail?" #~ msgstr "Desexa facer unha pasarela de novas a correo?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman permite crear unha pasarela de novas a correo, é dicir, enviar " #~ "todas as mensaxes que aparecen nun grupo de novas de Usenet a unha lista " #~ "de correo." #~ msgid "Most people won't need this." #~ msgstr "A maioría da xente non precisa disto." debian/po/ru.po0000664000000000000000000003361613174122612010604 0ustar # translation of mailman-ru.po to Russian # Russian messages: # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry'# # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans# # Developers do not need to manually edit POT or PO files. # # Ilgiz Kalmetev , 2003. # Yuri Kozlov , 2006. # Sergey Alyoshin , 2009. msgid "" msgstr "" "Project-Id-Version: mailman_1:2.1.11-8\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2013-05-29 10:25+0300\n" "Last-Translator: Ivan Krylov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.2\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (арабский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (каталонский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (чешский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (датский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (немецкий)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (английский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (испанский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (эстонский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (баскский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (финский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (французский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (хорватский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (венгерский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (интерлингва)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (итальянский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (японский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (корейский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (литовский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (голландский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (норвежский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (польский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (португальский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (португальский в Бразилии)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (румынский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (русский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (словенский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (сербский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (шведский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (турецкий)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (украинский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (вьетнамский)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (китайский в Китае)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (китайский в Тайване)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 #: ../templates:4001 msgid "en (English)[ default language ]" msgstr "ru (Russian)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Поддерживаемые языки:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Mailman хранит переведённые тексты сообщений в каталоге /etc/mailman/ЯЗЫК/, " "давая возможность работать с ними как с конфигурационными при помощи ucf. " "Каждый язык занимает приблизительно 150 кБ в корневой файловой системе." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Если позже вам захочется изменить список языков, просто запустите dpkg-" "reconfigure mailman." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "ЗАМЕЧАНИЕ: При повторной настройке в списке отмечаются языки, которые уже " "отмечены в существующих списках рассылки, и Mailman требует по крайней мере " "один язык для отображения своих сообщений." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Отсутствует список рассылки сайта" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Для работы Mailman нужен так называемый \"список рассылки сайта\", " "являющийся списком рассылки, из которого отправляются напоминания паролей. " "Этот список рассылки должен быть создан до запуска Mailman." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Чтобы создать список рассылки, выполните команду \"newlist mailman\" и " "следуйте инструкциям на экране. Заметим, что после этого вы также должны " "запустить Mailman с помощью команды /etc/init.d/mailman start." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Язык по умолчанию для Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "На этом языке будет отображаться веб-страница, и Mailman будет использовать " "этот язык для общения с пользователем." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "прервать установку" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "продолжить" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Найдены старые файлы очереди" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman forget about (and lose) the corresponding emails." msgstr "" "Найдены файлы в каталоге /var/lib/mailman/qfiles. Для правильного выполнения " "процедуры обновления он должен быть пуст. Вы можете попытаться обработать их:\n" " - Остановить появление новых сообщений в очереди (на уровне MTA).\n" " - Запустить обработчик очереди Mailman: /etc/init.d/mailman start\n" " - Дождаться, пока все сообщения не будут обработаны.\n" " Если они не обработаются за приемлемое время, посмотрите в файлы\n" " журнала, чтобы попытаться понять, в чём причина, и решить проблему.\n" " - Остановить его: /etc/init.d/mailman stop\n" " - Повторить процедуру обновления.\n" " - Позволить сообщениям поступать снова.\n" "Также вы можете просто удалить эти файлы, и Mailman забудет (и потеряет) " "соответствующие почтовые сообщения." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Если эти файлы соответствуют отложенным сообщениям, вы можете удалить их или " "сделать их обычными сообщениями (с помощью /var/lib/mailman/bin/unshunt). " "Отложенные сообщения -- это сообщения, для которых Mailman уже отменил " "обработку, так как возникла ошибка, но они хранятся для просмотра " "администратором. Для просмотра содержимого очередей вы можете " "воспользоваться программой /var/lib/mailman/bin/show_qfiles." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "У вас есть возможность, несмотря на эту проблему, продолжить установку, " "рискуя потерять данные сообщения или сломать вашу настройку Mailman." #~ msgid "Gate news to mail?" #~ msgstr "Шлюзовать новости в почту?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman позволяет шлюзовать новости в почту, то есть отправлять все " #~ "сообщения, которые приходят из групп новостей Usenet, в список почтовой " #~ "рассылки." #~ msgid "Most people won't need this." #~ msgstr "Большинству людей это не нужно." debian/po/it.po0000664000000000000000000002577513174122612010601 0ustar # Italian (it) translation of debconf templates for mailman # Copyright (C) 2006 Software in the Public Interest # This file is distributed under the same license as the mailman package. # Luca Monducci , 2004-2008. # msgid "" msgstr "" "Project-Id-Version: mailman 2.1.11 italian debconf templates\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-29 11:17+0100\n" "Last-Translator: Luca Monducci \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (Arabo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Catalano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (Ceco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Danese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Tedesco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Inglese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Spagnolo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (Estone)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Basco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Finlandese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Francese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (Croato)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Ungherese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Italiano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Giapponese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Coreano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (Lituano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Olandese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Norvegese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Polacco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Portoghese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (Portoghese brasiliano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Rumeno)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Russo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Sloveno)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Serbo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Svedese)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (Turco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (Ucraino)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (Vietnamita)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (Cinese - Cina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (Cinese - Taiwan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "it (Italian)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Lingue da supportare:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Per ciascuna lingua supportata, Mailman memorizza i messaggi predefiniti in /" "etc/mailman/LANG/ trattandoli, con l'aiuto di ucf, come conffile. Questo " "comporta circa 150 kB per ogni lingua supportata nel file system di root." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Se in seguito è necessario utilizzare un diverso insieme di lingue eseguire " "dpkg-reconfigure mailman." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "NOTA: Le lingue attivate per le mailing list esistenti sono forzatamente " "riattivate se deselezionate, mailman necessita almeno una lingua in cui " "mostrare i propri messaggi." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "\"Site list\" mancante" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman necessita di una cosiddetta \"site list\", cioè di un elenco da cui " "prendere i dati per inviare i promemoria della password. Questo elenco deve " "essere creata prima dell'avvio di mailman." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Per creare l'elenco eseguire \"newlist mailman\" e seguire le istruzioni " "sullo schermo. Ricordarsi che poi è necessario attivare mailman usando /etc/" "init.d/mailman start." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Lingua predefinita per Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "La pagina web verrà mostrata in questa lingua e Mailman userà questa lingua " "per comunicare con gli utenti." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "interrompi l'installazione" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "continua ugualmente" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Vecchi file nella coda" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "La directory /var/lib/mailman/qfiles contiene dei file, per il corretto " "funzionamento dell'aggiornamento deve essere vuota. È possibile gestirli in " "questo modo:\n" " - Fermare l'arrivo di nuovi messaggi (a livello del MTA).\n" " - Avviare il gestore della coda di mailman: /etc/init.d/mailman start\n" " - Lasciarlo in esecuzione fino a quando tutti i messaggi sono stati\n" " elaborati. Se alcuni messaggi non escono, controllare i log e provare a\n" " capire la causa per poi risolverla.\n" " - Fermare il gestore della coda: /etc/init.d/mailman stop\n" " - Riprovare l'aggiornamento.\n" " - Riattivare l'arrivo dei messaggi.\n" "I file possono anche essere semplicemente eliminati, però questo comporta la " "perdita dei messaggi." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Se i file corrispondono a messaggi sospesi è possibile eliminarli oppure " "revocarne la sospensione (con /var/lib/mailman/bin/unshunt). I messaggi " "sospesi sono messaggi la cui elaborazione da parte di Mailman ha prodotto un " "errore e che sono in attesa della revisione da parte dell'amministratore. " "Per esaminare il contenuto delle code si può usare /var/lib/mailman/bin/" "show_qfiles." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "È possibile continuare l'installazione senza preoccuparsi di questo problema " "col rischio di perdere i messaggi in questione oppure interrompere la " "configurazione di Mailman." #~ msgid "Gate news to mail?" #~ msgstr "Trasformare news in email?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman è in grado di fare da ponte fra news ed email, cioè inviare tutti " #~ "i messaggi che appaiono in un newsgroup Usenet a una mailing list." #~ msgid "Most people won't need this." #~ msgstr "Non serve alla maggior parte delle persone." debian/po/ca.po0000664000000000000000000002660313174122612010537 0ustar # mailman (debconf) translation to Catalan. # Copyright (C) 2004 Free Software Foundation, Inc. # Aleix Badia i Bosch , 2004 # Josep Monés i Teixidor , 2004 # David Planella Molas , 2008 # msgid "" msgstr "" "Project-Id-Version: mailman_2.1.2-7_templates\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2009-01-06 17:15+0100\n" "Last-Translator: David Planella Molas \n" "Language-Team: Debian L10n Catalan \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (àrab)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (català)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (txec)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (danès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (alemany)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (anglès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (espanyol)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (estonià)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (basc)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (finès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (francès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (croat)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (hongarès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (italià)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (japonès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (coreà)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (lituà)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (holandès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (noruec)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (polac)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (portuguès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (portuguès del Brasil)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (romanès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (rus)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (eslovè)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (serbi)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (suec)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (turc)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "us (ucraïnès)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (vietnamita)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (xinès - Xina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (xinès - Taiwan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "ca (Catalan)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Llengües a implementar:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Per a cada llengua implementada, el Mailman n'emmagatzemarà els textos " "específics al directori /etc/mailman/LANG/, els quals es tractaran com a " "fitxers conffile a través de l'ucf. Això significa que s'utilitzaran " "aproximadament 150kB al sistema de fitxers arrel per a cada llengua " "implementada." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Si us cal un altre conjunt de llengües més endavant, simplement haureu " "d'executar l'ordre «dpkg-reconfigure mailman»." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "NOTA: les llengües habilitades en llistes de correu existents es tornaran a " "habilitar quan no estiguin seleccionades i en cas que el Mailman requereixi " "almenys una llengua per a mostrar els seus missatges." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Manca la llista del lloc" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "El Mailman necessita una llista anomenada «llista del lloc» des d'on enviar " "els recordatoris de contrasenya i similars. Aquesta llista s'ha de crear " "abans d'iniciar l'execució del programa." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Executeu «newlist mailman» per a crear la llista i seguiu les instruccions " "que apareguin a la pantalla. Tingueu en compte que haureu d'iniciar el " "Mailman després de crear-la (amb l'ordre «/etc/init.d/mailman start»)." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Llengua per defecte del Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "La pàgina web es mostrarà en aquesta llengua, i, en general, el Mailman " "també l'utilitzarà per a comunicar-se amb l'usuari." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "cancel·la la instal·lació" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "continua de totes maneres" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Hi ha fitxers de cua antics" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "El directori /var/lib/mailman/qfiles conté fitxers, però hauria d'estar buit " "perquè l'actualització funcioni correctament. Podeu intentar gestionar-los " "de la manera següent:\n" " - Atureu la recepció de missatges (al nivell de l'MTA).\n" " - Inicieu un gestor de cua del mailman: /etc/init.d/mailman start\n" " - Deixeu que s'executi fins que tots els missatges s'hagin gestionat.\n" " En cas que no s'hagin gestionat en un interval de temps acceptable,\n" " comproveu els fitxers de registre per a entendre el perquè i\n" " resoldre-ho.\n" " - Atureu el procés: /etc/init.d/mailman stop\n" " - Torneu a intentar dur a terme l'actualització.\n" " - Torneu a habilitar la recepció de missatges.\n" "També podeu suprimir els fitxers, amb la qual cosa es perdran els correus " "corresponents." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Si aquests fitxers es corresponen amb missatges relegats, haureu de suprimir-" "los o bé activar-los (amb l'ordre /var/lib/mailman/bin/unshunt). Els " "missatges relegats són aquells que el Mailman ja no processarà degut a un " "error, però que es desen perquè els pugui revisar un administrador. Podeu " "utilitzar l'ordre /var/lib/mailman/bin/show_qfiles per a examinar els " "continguts de les cues." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Teniu la opció de continuar la instal·lació tot i aquest problema, però " "tingueu en compte que hi ha el risc de perdre els missatges en qüestió o bé " "de malmetre la instal·lació del Mailman." #~ msgid "Gate news to mail?" #~ msgstr "Voleu establir una pasarel·la de notícies a correu?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "El Mailman permet fer de passarel·la de notícies a correu, és a dir, " #~ "enviar tots aquells missatges que apareixen en un grup de notícies de " #~ "l'Usenet a una llista de correu." #~ msgid "Most people won't need this." #~ msgstr "En la majoria de casos no és necessari." debian/po/hu.po0000664000000000000000000002220413174122612010561 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: mailman 2.1.4-1\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2004-02-20 20:06+0100\n" "Last-Translator: Lszl 'GCS' Bszrmnyi \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-2\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 #, fuzzy msgid "ar (Arabic)" msgstr "sr (Szerb)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Kataln)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (Cseh)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Dn)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Nmet)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Angol)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Spanyol)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Baszk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Finn)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Francia)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Magyar)" #. Type: multiselect #. Choices #: ../templates:1001 #, fuzzy msgid "ia (Interlingua)" msgstr "it (Olasz)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Olasz)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Japn)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Kreai)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Holland)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Norvg)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Lengyel)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Portugl)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (Braziliai Portugl)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Romn)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Orosz)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Szlovk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Szerb)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Svd)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "en (Angol)[ alaprtelmezett nyelv ]" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Tmogatni kvnt nyelvek:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Ha meg szeretn vltoztatni a tmogatott nyelvek listjt, futtassa a dpkg-" "reconfigure mailman parancsot." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" # Type: note # Description #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Hinyz site lista" # Type: note # Description #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "A mailman-nak szksge van egy gynevezett site listra, ahonnan majd a " "jelsz emlkeztetket kldi. Ezt a listt ltre kell hozni a mailman " "inditsa eltt." # Type: note # Description #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "A lista ltrehozshoz futtassa a \"newlist mailman\" parancsot, s kvesse " "a kpernyn megjelen utastsokat. A lista ltrehozsa utn el kell " "indtania a mailman-t a \"/etc/init.d/mailman start\" paracs kiadsval." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Alaprtelmezett nyelv a Mailman-ben:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "A weblap ezen a nyelven fog megjelenni s ltalban a Mailman ezt a nyelvet " "fogja hasznlni a felhasznl fel." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Rgi queue llomnyok vannak" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" #~ msgid "Most people won't need this." #~ msgstr "A legtbb felhasznlnak nincs szksge erre." #~ msgid "big5 (Chinese big5)" #~ msgstr "big5 (Knai big5)" debian/po/templates.pot0000664000000000000000000001707413174122612012340 0ustar # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" debian/po/cs.po0000664000000000000000000002730513174122612010561 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: mailman\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-30 18:54+0100\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (arabština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (katalánština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (čeština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (dánština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (němčina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (angličtina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (španělština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (estonština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (baskičtina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (finština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (francouzština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (chorvatština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (maďarština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (italština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (japonština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (korejština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (litevština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (nizozemština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (norština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (polština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (portugalština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (brazilská portugalština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (rumunština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (ruština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (slovinština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (srbština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (švédština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (turečtina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (ukrajinština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (vietnamština)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (čínština - Čína)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (Čínština - Tchai-wan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "cs (Czech)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Podporovat jazyky:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Pro každý podporovaný jazyk uchovává Mailman překlady v /etc/mailman/JAZYK/ " "a s pomocí ucf se o ně stará jako o konfigurační soubory. To mimo jiné " "znamená zhruba 150kB zabraného místa na kořenovém souborovém systému za " "každý podporovaný jazyk." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Budete-li chtít později změnit seznam podporovaných jazyků, jednoduše " "spusťte „dpkg-reconfigure mailman“." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "POZNÁMKA: Jazyky povolené pro stávající poštovní diskuse budou povoleny " "vždy. Pokud tyto jazyky ze seznamu odeberete, budou v případě potřeby zase " "přidány. Mailman totiž potřebuje mít povolen alespoň jeden jazyk, ve kterém " "má zobrazovat hlášky." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Chybějící administrativní konference" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman potřebuje takzvanou „administrativní adresu“, což je adresa, ze " "které posílá například upomínání hesel a podobně. Tato adresa musí být " "vytvořena před startem mailmanu." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Pro vytvoření adresy spusťte „newlist mailman“ a následujte instrukce na " "obrazovce. Poté musíte mailman spustit příkazem /etc/init.d/mailman start." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Výchozí jazyk pro Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "V zadaném jazyce bude zobrazena webová stránka a dále bude Mailman tento " "jazyk používat pro komunikaci s uživatelem." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "přerušit instalaci" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "pokračovat" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Ve frontě jsou přítomny staré soubory" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "Adresář /var/lib/mailman/qfiles obsahuje soubory. Aby aktualizace proběhla " "správně, musí být tento adresář prázdný. Jestliže se jedná o platné zprávy, " "které zatím nebyly doručeny, můžete je zpracovat následovně:\n" " - Zastavte přísun nových zpráv do fronty na úrovni poštovního\n" " serveru (MTA).\n" " - Spusťte mailmanovu správu fronty: /etc/init.d/mailman start.\n" " - Nechte ji běžet, dokud nezpracuje všechny zprávy.\n" " Pokud doručování neskončí v rozumném čase, prozkoumejte logy\n" " a zkuste zjistit a odstranit příčinu.\n" " - Zastavte mailman: /etc/init.d/mailman stop.\n" " - Pokuste se o novou aktualizaci.\n" " - Poté opět nechte proudit zprávy do fronty.\n" "Jinou možností je soubory jednoduše smazat, což způsobí, že na ně Mailman " "zapomene, ovšem také už nikdy nedoručí." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Pokud tyto soubory odpovídají odsunutým zprávám, musíte je buď smazat, nebo " "znovu zapojit do zpracování (příkazem /var/lib/mailman/bin/unshunt). " "Odsunuté zprávy jsou zprávy, u kterých již Mailman upustil od dalšího " "zpracovávání, protože se v nich vyskytla chyba, ale které jsou ponechány ve " "frontě administrátorovi k nahlédnutí. Obsah fronty můžete prozkoumat " "příkazem /var/lib/mailman/bin/show_qfiles." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "I přes tento problém můžete v instalaci pokračovat, nicméně riskujete ztrátu " "zmíněných zpráv, případně nefunkční nastavení Mailmanu." #~ msgid "Gate news to mail?" #~ msgstr "Brána z news do pošty?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman může sloužit jako brána mezi news a poštou. To znamená, že může " #~ "posílat všechny příspěvky, které se objeví v newsové skupině, do poštovní " #~ "konference." #~ msgid "Most people won't need this." #~ msgstr "Většina lidí toto nepotřebuje." debian/po/sv.po0000664000000000000000000003451413174122612010604 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: mailman\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-31 00:01+0100\n" "Last-Translator: Martin Bagge \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (Arabiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Katalanska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (Tjeckiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Danska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Tyska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Engelska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Spanska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (Estniska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Baskiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Finska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Franska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (Kroatiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Ungerska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Italienska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Japanska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Koreanska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (Litauiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Nederlndska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Norska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Polska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Portugisiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (Brasiliansk portugisiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Rumnska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Ryska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Slovenska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Serbiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Svenska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (Turkiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (Ukrainska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (Vietnamesiska)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (Kinesiska - Kina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (Kinesiska - Taiwan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "sv (Swedish)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Sprk som stds:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Mailman lagrar specifik text fr standardsprket i /etc/mailman/LANG/ fr " "varje sprk som stds och ger dem konfigurationsfilsliknande behandling med " "hjlp av ucf. Det hr betyder att ungefr 150kB fr varje sprk som stds " "anvnds p rotfilsystemet." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Om du behver en annan uppsttning sprk vid en senare tidpunkt, kr \"dpkg-" "reconfigure mailman\"." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "OBSERVERA: Aktiverade sprk p existerande sndlistor kommer att tvingas att " "teraktiveras nr de avmarkeras och mailman behver tminstone ett sprk fr " "att visa sina meddelanden." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Saknad \"site list\"" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman behver en s kallad \"site list\" som r en lista frn vilka " "pminnelser om lsenord och liknande skickas ut frn. Denna lista behver " "skapas fre mailman startar upp." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Fr att skapa listan, kr \"newlist mailman\" och flj instruktionerna p " "skrmen. Notera att du ocks behver starta mailman efter det genom att " "kra \"/etc/init.d/mailman start\"." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Standardsprk fr Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "Webbsidan kommer att visas p detta sprk och i allmnhet kommer Mailman att " "anvnda detta sprk fr att kommunicera med anvndaren." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "avbryt installationen" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "fortstt installationen" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Gamla kfiler existerar" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "Katalogen /var/lib/mailman/qfiles innehller filer. Den behver tmmas fr " "att uppgraderingen ska fungera korrekt. Du kan frska att hantera dem genom " "att:\n" " - Stoppa nya meddelanden frn att komma in i kn (p MTA-niv).\n" " - Starta en khanterare fr Mailman. /etc/init.d/mailman start\n" " - Lt khanteraren kra igenom hela kn.\n" " Om inte alla meddelanden hanteras p ett korrekt stt, ls i loggarna\n" " fr att frska frst varfr och lsa problemet.\n" " - Stoppa khanteraren: /etc/init.d/mailman stop\n" " - Frsk uppgradera igen.\n" " - Lt meddelanden komma in igen.\n" "Du kan ocks bestmma att helt enkelt ta bort filerna, vilken kommer att " "gra att Mailman glmmer (och frlorar) motsvarande e-post." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Om dessa filer motsvarar de undanskyfflade meddelandena behver du antingen " "ta bort dem eller skyffla tillbaka dem (med /var/lib/mailman/bin/unshunt). " "Undanskyfflade meddelanden r meddelanden som Mailman redan har vergivet " "all ytterligare behandling av p grund av en felsituation men som hlls kvar " "fr granskning av administratren. Du kan anvnda /var/lib/mailman/bin/" "show_qfiles fr att underska innehllet i kerna." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Du kan fortstta med installationen oberoende av dessa risker. Tnk dock p " "att e-post kan frsvinna och din installation av Mailman kan skadas." #~ msgid "Gate news to mail?" #~ msgstr "Hantera nyhetsgrupper till sndlistor?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman tillter att snda nyhetsgrupper till sndlistor, allts, skicka " #~ "alla meddelanden som dyker upp i en Usenet-nyhetsgrupp till en sndlista." #~ msgid "Most people won't need this." #~ msgstr "De flesta kommer inte att behva detta." #~ msgid "big5 (Chinese big5)" #~ msgstr "big5 (Kinesiska big5)" #~ msgid "big5" #~ msgstr "big5" #~ msgid "ca" #~ msgstr "ca" #~ msgid "cs" #~ msgstr "cs" #~ msgid "da" #~ msgstr "da" #~ msgid "de" #~ msgstr "de" #~ msgid "en" #~ msgstr "en" #~ msgid "es" #~ msgstr "es" #~ msgid "et" #~ msgstr "et" #~ msgid "eu" #~ msgstr "eu" #~ msgid "fi" #~ msgstr "fi" #~ msgid "fr" #~ msgstr "fr" #~ msgid "hr" #~ msgstr "hr" #~ msgid "hu" #~ msgstr "hu" #~ msgid "it" #~ msgstr "it" #~ msgid "ja" #~ msgstr "ja" #~ msgid "ko" #~ msgstr "ko" #~ msgid "lt" #~ msgstr "lt" #~ msgid "nl" #~ msgstr "nl" #~ msgid "no" #~ msgstr "no" #~ msgid "pl" #~ msgstr "pl" #~ msgid "pt" #~ msgstr "pt" #~ msgid "pt_BR" #~ msgstr "pt_BR" #~ msgid "ro" #~ msgstr "ro" #~ msgid "ru" #~ msgstr "ru" #~ msgid "sl" #~ msgstr "sl" #~ msgid "sr" #~ msgstr "sr" #~ msgid "sv" #~ msgstr "sv" #~ msgid "uk" #~ msgstr "uk" #~ msgid "Administrator must update aliases" #~ msgstr "Administratren mste uppdatera alias" #~ msgid "" #~ "The aliases you need for mailman in your MTA's configuration have " #~ "changed. Please run /var/lib/mailman/bin/genaliases to see the new " #~ "aliases you need." #~ msgstr "" #~ "De alias som du behver fr mailman i konfigurationen fr din e-" #~ "postserver har ndrats. Vnligen kr /var/lib/mailman/bin/genaliases fr " #~ "att se de nya alias du behver." #~ msgid "" #~ "Until you do that, some features will stop working and mails will go out " #~ "with an invalid Return-Path." #~ msgstr "" #~ "Fram tills du gr det kommer ngra funktioner att sluta fungera och e-" #~ "post kommer att skickas med en ogiltig Return-Path." #~ msgid "List passwords broken" #~ msgstr "Listornas lsenord r trasiga" #~ msgid "" #~ "List admin and moderator passwords are broken by this upgrade. Use /var/" #~ "lib/mailman/bin/change_pw to have new ones automatically generated and " #~ "emailed to the admins and moderators." #~ msgstr "" #~ "Listadministratrerna och moderatorernas lsenord r trasiga i denna " #~ "uppgradering. Anvnd /var/lib/mailman/bin/change_pw fr att generera nya " #~ "och skicka dem via e-post till administratrerna och moderatorerna." #~ msgid "Which language should be the default for Mailman?" #~ msgstr "Vilket sprk ska vara standard i Mailman?" #~ msgid "" #~ "The directory /var/lib/mailman/qfiles contains files. It needs to be " #~ "empty for the upgrade work properly. Please either flush the queue (by " #~ "way of mailmanctl start, then stopping it and redoing the upgrade when it " #~ "is finished) or remove those files. Note that removing the files will " #~ "lose some emails sent to lists." #~ msgstr "" #~ "Katalogen /var/lib/mailman/qfiles innehller filer. Den behver vara tom " #~ "fr att uppgraderingen ska fungera korrekt. Vnligen antingen rensa kn " #~ "(genom att kra mailmanctl start, sedan stoppa den och gr om " #~ "uppgraderingen nt den r klar) eller ta bort dessa filer. Notera att " #~ "borttagning av filerna kommer att innebra att viss e-post skickad till " #~ "listorna frloras." debian/po/de.po0000664000000000000000000002754213174122612010547 0ustar # Translation of mailman debconf templates to German # Jens Nachtigall , 2004, 2005, 2006. # Holger Wansing , 2006, 2008. # This file is distributed under the same license as the mailman package. # msgid "" msgstr "" "Project-Id-Version: mailman 1:2.1.11-8\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-31 23:06+0100\n" "Last-Translator: Holger Wansing \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (Arabisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Katalanisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cz (Tschechisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Dänisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Deutsch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Englisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Spanisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (Estnisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Baskisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Finnisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Französisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (Kroatisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Ungarisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Italienisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Japanisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Koreanisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (Litauisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Niederländisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Norwegisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Polnisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Portugiesisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (brasilianisches Portugiesisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Rumänisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Russisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Slowenisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Serbisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Schwedisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (Türkisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (Ukrainisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (Vietnamesisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (Chinesisch - China)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (Chinesisch - Taiwan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "de (German)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Sprachen, die unterstützt werden sollen:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Für jede unterstützte Sprache speichert Mailman sprachspezifische " "Standardtexte in /etc/mailmain/LANG/, wobei jedem Text mit Hilfe von ucf das " "für Konfigurationsdateien übliche Verfahren zuteil wird. Pro unterstützter " "Sprache werden auf dem root-Dateisystem rund 150kB benötigt." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Wenn Sie zu einem späteren Zeitpunkt andere Sprachen benötigen, dann starten " "Sie einfach »dpkg-reconfigure mailman«." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "HINWEIS: Werden Sprachen abgewählt, die von existierenden Mailinglisten " "genutzt werden, so werden diese zwangsweise wieder aktiviert. Außerdem " "benötigt mailman wenigstens eine Sprache, um seine Meldungen anzuzeigen." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Fehlende Site-Liste" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman benötigt eine so genannte Site-Liste, welches die Mailingliste ist, " "von der die Passwort-Erinnerungen und Ähnliches abgesendet werden. Diese " "Liste muss erstellt werden, bevor mailman überhaupt erst startet." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Um die Liste zu erzeugen, führen Sie »newlist mailman« aus und folgen den " "Anweisungen auf dem Bildschirm. Beachten Sie, dass mailman danach gestartet " "werden muss, indem »/etc/init.d/mailman start« aufgerufen wird." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Standardsprache für Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "Die Web-Seite wird in dieser Sprache angezeigt und generell wird Mailman " "diese Sprache benutzen, um mit dem Benutzer zu kommunizieren." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "Installation abbrechen" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "Installation trotzdem fortsetzen" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Alte Dateien befinden sich in der Warteschlange" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "Das Verzeichnis /var/lib/mailman/qfiles enthält Dateien. Damit das Upgrade " "sauber funktioniert, sollte es leer sein. Sie können folgendermaßen mit " "ihnen verfahren:\n" " - Verhindern Sie, dass neue Nachrichten in die Warteschlange gelangen\n" " (dies erledigen Sie im MTA).\n" " - Lassen Sie Mailman die Warteschlange abarbeiten:\n" " »/etc/init.d/mailman start«\n" " - Lassen Sie Mailman laufen, bis alle Nachrichten verarbeitet wurden.\n" " Falls nicht alle halbwegs schnell verarbeitet werden, sehen Sie in\n" " die Log-Dateien, um herauszufinden, warum es so lange dauert und wie\n" " Sie das Problem lösen können.\n" " - Stoppen Sie Mailmain: »/etc/init.d/mailman stop«\n" " - Versuchen Sie erneut, das Upgrade durchzuführen.\n" " - Stellen Sie alles wieder so ein, dass Nachrichten wieder eintreffen.\n" "Sie können sich auch dafür entscheiden, die Dateien einfach zu löschen. Das " "würde dazu führen, dass Mailman die dazugehörigen E-Mails vergisst (und " "verliert)." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Falls diese Dateien zu »zwischengeparkten« Nachrichten gehören, dann müssen " "Sie die Dateien entweder löschen oder den »zwischengeparkt«-Status aufheben " "(mit »/var/lib/mailman/bin/unshunt«). Zwischengeparkte Nachrichten sind " "Nachrichten, welche Mailman nicht weiter verarbeitet, da ein Fehler " "aufgetreten ist. Sie wurden jedoch gespeichert, damit der Administrator sie " "begutachten kann. Sie können »/var/lib/mailman/bin/show_qfiles« benutzen, um " "den Inhalt der Warteschlangen zu untersuchen." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Sie haben die Möglichkeit, die Installation trotz dieses Problems " "fortzusetzen, riskieren aber, dadurch die fraglichen Nachrichten zu " "verlieren oder Ihre Mailman-Konfiguration zu beschädigen." #~ msgid "Gate news to mail?" #~ msgstr "Nachrichten aus Newsgroups an Mailinglisten weiterleiten?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman erlaubt Newsgroup-Nachrichten an Mailinglisten weiterzuleiten, " #~ "das heißt, alle Nachrichten, die in einer Usetnet-Newsgroup erscheinen, " #~ "zu einer Mailingliste zu senden." #~ msgid "Most people won't need this." #~ msgstr "Die meisten Leute werden das nicht benötigen." debian/po/da.po0000664000000000000000000002472413174122612010542 0ustar # Danish translation mailman. # Copyright (C) 2012 mailman & nedenstående oversættere. # This file is distributed under the same license as the mailman package. # Joe Hansen (joedalton2@yahoo.dk), 2012. # msgid "" msgstr "" "Project-Id-Version: mailman\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2012-02-11 12:42+0000\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (arabisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (catalansk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (tjekkisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (dansk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (tysk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (engelsk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (spansk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (estisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (baskisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (finsk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (fransk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (kroatisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (ungarsk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (italiensk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (japansk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (koreansk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (litauisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (hollandsk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (norsk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (polsk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (portugisisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (brasiliansk-portugisisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (rumænsk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (russisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (slovensk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (serbisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (svensk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (tyrkisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (ukrainsk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (vietnamesisk)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (kinesisk - Kina)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (kinesisk - Taiwan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "da (Danish)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Sprog at understøtte:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "For hvert understøttet sprog gemmer Mailman specifik tekst for standardsproget " "i /etc/mailman/LANG/ og giver dem dermed en conffile-lignende behandling med " "hjælp fra ucf. Dette udgør cirka 150 kB for hvert understøttet sprog på " "root-filsystemet." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Hvis du skal bruge et andet sprogsæt på et senere tidspunkt, så kør " "dpkg-reconfigure mailman." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "BEMÆRK: Sprog aktiveret på eksisterende postlister bliver med tvang " "genaktiveret når de fravælges og mailman kræver mindst et sprog for at " "vise sine beskeder." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Liste for manglende sider" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman skal bruge en såkaldt »sideliste«, som er listen hvorfra " "påmindelser vedrørende adgangskode og andet sendes fra. Denne liste " "skal oprettes før at mailman vil starte." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "For at oprette listen så kør »newlist mailman« og følg instruktionen på " "skærmen. Bemærk at du derefter også skal starte mailman med brug af " "/etc/init.d/mailman start." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Standardsprog for Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "Internetsiden vil blive vist i dette sprog, og generelt vil Mailman bruge " "dette sprog til at kommunikere med brugeren." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "afbryd installation" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "fortsæt alligevel" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Gamle køfiler til stede" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "Mappen /var/lib/mailman/qfiles indeholder filer. Mappen skal være tom " "for at opgraderingen virker korrekt. Du kan forsøge at håndtere dem ved at:\n" " - Stoppe nye beskeder i at komme ind (på MTA-niveau).\n" " - Starte en køudførsel for mailman: /etc/init.d/mailman start\n" " - Lade programmet køre indtil alle beskeder er håndteret.\n" " - Hvis de ikke alle er håndteret indenfor forventet tid, kig på loggene\n" " for at se hvorfor og løs årsagen.\n" " - Stoppe programmet: /etc/init.d/mailman stop\n" " - Prøv at opgradere en gang mere.\n" " - Lad beskeder komme ind igen.\n" "Du kan også beslutte simpelthen at fjerne filerne, hvilket vil gøre at " "Mailman glemmer (og mister) den tilsvarende e-post." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Hvis dises filer er tilsidesatte beskeder, så skal du enten slette dem " "eller fjerne tilsidesættelsen (med /var/lib/mailman/bin/unshunt). Tilsidesatte " "beskeder er beskeder som Mailman allerede har opgivet yderligere behandling " "af på grund af fejlbetingelser, men de bevares for gennemgang af administratoren. " "Du kan bruge /var/lib/mailman/bin/show_qfiles for at undersøge indholdet i " "køerne." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Du har mulighed for at fortsætte installationen uanset dette problem, med " "risiko for at miste de omtalte beskeder eller ødelægge din opsætning for " "Mailman." debian/po/nl.po0000664000000000000000000002732713174122612010571 0ustar # translation of mailman_1:2.1.9-0_templates.po to Dutch # This file is distributed under the same license as the mailman package. # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # # Luk Claes , 2006 # Kurt De Bree , 2006 # This is an unofficial translation # msgid "" msgstr "" "Project-Id-Version: mailman_1:2.1.9-0\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-27 15:16+0100\n" "Last-Translator: Thijs Kinkhorst \n" "Language-Team: Debian l10n Dutch \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (Arabisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Catalaans)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (Tsjechisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Deens)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Duits)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Engels)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Spaans)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (Ests)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Baskisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Fins)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Frans)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (Kroatisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Hongaars)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Italiaans)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Japans)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Koreaans)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (Litouws)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Nederlands)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Noors)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Pools)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Portugees)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (Braziliaans Portugees)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Roemeens)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Russisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Sloveens)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Servisch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Zweeds)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (Turks)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (Oekraïens)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (Vietnamees)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (Chinees - China)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (Chinees - Taiwan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "nl (Dutch)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Te ondersteunen talen:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Voor elke ondersteunde taal bewaart Mailman standaard taalafhankelijke " "teksten in /etc/mailman/LANG/, en behandelt hen met behulp van ucf als ware " "het conffiles. Dit betekent dat op het hoofdbestandssysteem elke " "ondersteunde taal ongeveer 150kB in beslag neemt." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Als u op een later tijdstip een andere verzameling talen wilt, voer dan " "'dpkg-reconfigure mailman' uit." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "NB: talen die in gebruik zijn op reeds bestaande mailinglijsten worden " "opnieuw geactiveerd indien u ze heeft uitgeschakeld; en mailman heeft ook " "ten minste één taal nodig om zijn boodschappen weer te geven." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Ontbrekende site-lijst" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman heeft een zogenaamde \"site-lijst\" nodig, dit is de lijst van " "waaruit wachtwoordherinneringen en dergelijke worden verstuurd. Deze lijst " "moet aangemaakt worden voordat mailman wordt opgestart." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Om de lijst aan te maken, voert u \"newlist mailman\" uit en volgt u de " "instructies op het scherm. Merk op dat u mailman daarna moet opstarten door /" "etc/init.d/mailman start te gebruiken." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Standaardtaal voor Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "De webpagina's zullen in deze taal worden getoond en Mailman zal in het " "algemeen deze taal gebruiken om te communiceren met de gebruiker." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "installatie afbreken" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "desalniettemin doorgaan" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Oude wachtrij-bestanden zijn aanwezig" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "De map /var/lib/mailman/qfiles bevat bestanden, maar deze moet leeg zijn om " "de opwaardering goed te laten werken. U kunt proberen de wachtende bestanden " "te laten afhandelen door:\n" " - Nieuwe berichten niet meer laten binnenkomen (op het MTA-niveau).\n" " - Een mailman-wachtrijloper te starten: /etc/init.d/mailman start\n" " - Laat de verwerking lopen tot alle berichten zijn afgehandeld.\n" " Als ze niet tijdig worden afgehandeld, kijk dan in de logs\n" " om te begrijpen waarom en los dat dan op.\n" " - Stop het: /etc/init.d/mailman stop\n" " - Probeer nogmaals het pakket op te waarderen.\n" " - Laat opnieuw berichten binnenkomen.\n" "U kunt ook beslissen om de bestanden eenvoudigweg te verwijderen. Mailman " "zal dan de overeenkomende e-mails verliezen." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Als deze bestanden overeenkomen met \"shunted\" boodschappen, dan moet u ze " "ofwel verwijderen ofwel \"unshunten\" (met /var/lib/mailman/bin/unshunt). " "Shunted boodschappen zijn boodschappen waarvan Mailman al elke verdere " "verwerking heeft gestopt door een fouttoestand. Maar ze worden bewaard voor " "controle door een beheerder. U kunt /var/lib/mailman/bin/show_qfiles " "gebruiken om de inhoud van de queues te controleren." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "U kunt de installatie desalniettemin doorzetten. Hierbij loopt u het risico " "dat de betreffende berichten verloren gaan of dat uw Mailman-installatie " "stopt met werken." #~ msgid "Gate news to mail?" #~ msgstr "Nieuws doorsluizen naar e-mail?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman staat u toe nieuws door te sluizen naar e-mail, d.w.z. alle " #~ "boodschappen die verschijnen in een nieuwsgroep verzenden naar een " #~ "mailinglijst." #~ msgid "Most people won't need this." #~ msgstr "De meeste mensen hebben dit niet nodig." debian/po/ja.po0000664000000000000000000003102513174122612010540 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: mailman\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-28 21:29+0900\n" "Last-Translator: Kenshi Muto \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (アラビア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (カタルニア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (チェコ語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (デンマーク語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (ドイツ語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (英語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (スペイン語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (エストニア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (バスク語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (フィンランド語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (フランス語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (クロアチア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (ハンガリー語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (インターリングア)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (イタリア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (日本語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (韓国語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (リトアニア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (オランダ語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (ノルウェー語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (ポーランド語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (ポルトガル語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (ブラジルポルトガル語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (ルーマニア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (ロシア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (スロヴェニア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (セルビア語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (スウェーデン語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (トルコ語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (ウクライナ語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (ベトナム語)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (中国語 - 中国)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (中国語 - 台湾)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "ja (Japanese)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "サポートする言語:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "サポートされている各言語のために、Mailman はデフォルト言語固有のテキストを /" "etc/mailman/言語/ に保有しています。このテキストは、ucf のヘルプなどに使われ" "る設定ファイルを提供します。各サポート言語ごとにおよそ 150kB、ルートファイル" "システム上のスペースを費します。" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "あとになって異なる言語セットが必要になったら、単に dpkg-reconfigure mailman " "を実行してください。" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "注意: 既存のメーリングリストで有効になっている言語は、選択解除されたときに強" "制的に再度有効にされます。また、mailman は、そのメッセージを表示するために少" "なくとも 1 つの言語を必要とします。" #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "サイトリストがありません" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "mailman は、パスワードリマインダとそれがどこから送られるのかのリストである " "\"サイトリスト\" と呼ばれるものを必要とします。このリストは mailman を開始す" "る前に作成されていなければなりません。" #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "リストを作成するには、\"newlist mailman\" を実行して、画面に現れる指示に従っ" "てください。このあと、/etc/init.d/mailman start を使って mailman を開始する必" "要があることにも注意してください。" #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Mailman のデフォルト言語" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "Web ページはこの言語で表示されます。また、概して Mailman はユーザとのやり取り" "にこの言語を使います。" #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "インストールを中止" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "かまわずに継続" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "古いキューファイルが存在します" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "ディレクトリ /var/lib/mailman/qfiles がファイルを含んでいます。更新作業を正し" "く行うために、この中を空にする必要があります。次のようにこの処理を試みること" "ができます。\n" " - キューに新しいメッセージが入ってくるのを停止する (MTA レベルで)。\n" " - mailman キューランナーを起動する: /etc/init.d/mailman start\n" " - すべてのメッセージが処理されるまで実行させておく。\n" " いつになっても処理が終わらない場合には、どのような問題が発生し解決したら\n" " よいかを理解するためにログを参照する。\n" " - キューランナーを停止する: /etc/init.d/mailman stop\n" " - 更新を再試行する。\n" " - 再びメッセージをやってこさせる。\n" "Mailman に対応するメールを忘れさせる (そして失わせる)ことになりますが、単に" "ファイルを削除すると決めることもできます。" #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "これらのファイルが分路されたメッセージに関連付けられている場合、両方を削除す" "るかあるいは (/var/lib/mailman/bin/unshunt で) 主路に戻すかする必要がありま" "す。分路されたメッセージは、Mailman がエラー状態のためにすでにその後の処理を" "放棄してしまったメッセージですが、管理者のレビュー用に保持されます。キューの" "内容の調査には /var/lib/mailman/bin/show_qfiles を使用できます。" #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "該当メッセージを失ったり Mailman セットアップを壊したりというリスクは付きます" "が、この問題にかまわずにインストールを続けることを選択可能です。" #~ msgid "Gate news to mail?" #~ msgstr "ニュースからメールへゲートしますか?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Mailman はニュースをメールにゲート、つまり、Usenet ニュースグループに投稿" #~ "されたすべてのメッセージをメーリングリストに送ることができます。" #~ msgid "Most people won't need this." #~ msgstr "ほとんどの人にはこれは必要ありません。" debian/po/fr.po0000664000000000000000000002702113174122612010556 0ustar # translation of fr-new.po to French # Translation of mailman debconf templates to French # Copyright (C) 2007 Florentin Duneau # This file is distributed under the same license as the mailman package. # # Other translators for this file: # # Christian Perrier , 2008. msgid "" msgstr "" "Project-Id-Version: fr-new\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2008-12-28 17:18+0100\n" "Last-Translator: Florentin Duneau \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (arabe)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (catalan)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (tchèque)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (danois)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (allemand)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (anglais)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (espagnol)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (estonien)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (basque)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (finnois)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (français)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (croate)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (hongrois)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (interlangua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (italien)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (japonais)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (coréen)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (lituanien)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (néerlandais)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (norvégien)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (polonais)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (portugais)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (portugais du Brésil)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (roumain)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (russe)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (slovène)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (serbe)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (suédois)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (turc)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (ukrainien)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (vietnamien)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (chinois simplifié)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (chinois traditionnel)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "fr (French)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Langues à gérer :" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Mailman garde les textes de chaque langue reconnue dans /etc/mailman/LANG/. " "Ces fichiers sont alors gérés comme des fichiers de configuration grâce au " "programme ucf. Chaque langue occupe environ 150 Ko sur le système de " "fichiers racine." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Quand vous voudrez ajouter ou retirer des langues, veuillez exécuter « dpkg-" "reconfigure mailman »." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "Notes : les langues gérées par des listes de discussion existantes sont " "automatiquement réactivées même si vous les désactivez ici. Mailman a besoin " "d'au moins une langue activée pour afficher ses messages." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Pas de liste du site" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Mailman a besoin d'une liste du site (« site list »). Elle permet d'envoyer " "les rappels pour les mots de passe, etc. Elle doit être créée avant le " "lancement de Mailman." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Pour créer cette liste, exécuter « newlist mailman » et suivez les " "instructions qui apparaissent à l'écran. Il est ensuite nécessaire de " "redémarrer mailman avec la commande « /etc/init.d/mailman start »." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Langue par défaut de Mailman :" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "La page web est affichée dans la langue choisie et Mailman se sert aussi de " "cette langue pour communiquer avec les utilisateurs." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "Interrompre l'installation" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "Continuer malgré tout" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Fichiers anciens dans la file d'attente" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "Le répertoire /var/lib/mailman/qfiles contient des fichiers. Il doit être " "vide pour que la mise à jour se déroule correctement. Si ces fichiers sont " "des messages qui n'ont pas encore été traités, vous pouvez procéder comme " "suit :\n" " - stoppez l'arrivée des nouveaux messages (au niveau MTA) ;\n" " - démarrez mailman avec « /etc/init.d/mailman start » pour vider la file " "d'attente ;\n" " - laissez-le s'exécuter jusqu'à ce que tous les messages soient traités ;\n" " - s'il n'a pas traité tous les messages dans un temps raisonnable, " "consultez les fichiers de journaux pour comprendre le dysfonctionnement et " "tenter de le résoudre ;\n" " - arrêtez mailman avec « /etc/init.d/mailman stop » ;\n" " - essayez de nouveau la mise à jour ;\n" " - autorisez de nouveau l'arrivée des messages (au niveau MTA).\n" "Vous pouvez aussi supprimer ces fichiers. Mailman ignorera les messages " "correspondants." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Si ces fichiers correspondent à des messages mis de côté, vous devez les " "détruire ou les traiter à nouveau (avec /var/lib/mailman/bin/unshunt). Les " "messages mis de côté sont des messages que mailman ne traitera plus car ils " "provoquent une erreur. Ils sont conservés pour étude. Vous pouvez utiliser /" "var/lib/mailman/bin/show_qfiles pour examiner le contenu de la file " "d'attente." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Vous pouvez continuer l'installation en ignorant ce problème ce qui pourrait " "provoquer la perte de ces messages ou déstabiliser cette installation de " "Mailman." #~ msgid "Gate news to mail?" #~ msgstr "Faut-il transformer les nouvelles en courriers électroniques ?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Il est possible de transformer les nouvelles (les « news ») en courriers, " #~ "c'est-à-dire envoyer tous les messages qui apparaissent dans un forum " #~ "Usenet vers une liste de diffusion." #~ msgid "Most people won't need this." #~ msgstr "" #~ "La plupart des utilisateurs n'ont pas besoin de cette fonctionnalité." debian/po/pt_BR.po0000664000000000000000000002656513174122612011171 0ustar # # Translators, if you are not familiar with the PO format, gettext # documentation is worth reading, especially sections dedicated to # this format, e.g. by running: # info -n '(gettext)PO Files' # info -n '(gettext)Header Entry' # # Some information specific to po-debconf are available at # /usr/share/doc/po-debconf/README-trans # or http://www.debian.org/intl/l10n/po-debconf/README-trans # # Developers do not need to manually edit POT or PO files. # msgid "" msgstr "" "Project-Id-Version: mailman_2.1.3-2\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2006-10-16 00:53-0200\n" "Last-Translator: André Luís Lopes \n" "Language-Team: Debian-BR Project \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (Arábico)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Catalão)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (Tcheco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Dinamarquês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Alemão)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Inglês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Espanhol)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (Estoniano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Basco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Finlandês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Francês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (Croata)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Húngaro)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Intelíngua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Italiano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Japonês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Coreano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (Lituano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Holandês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Norueguês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Polonês)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Português)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pt_BR (Português Brasileiro)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Romeno)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Russo)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Esloveno)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Sérbio)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Sueco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (Turco)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (Ucraniano)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (Vietnamita)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (Chinês - China)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (Chinês - Taiwan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "pt_BR (Português Brasileiro):" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Idiomas a serem suportados:" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Para cada idioma suportado, o Mailman armazena textos específicos do idioma " "padrão em /etc/mailman/LANG/ dando aos mesmos tratamento de conffile com a " "ajuda do ucf. Isso significa aproximadamente 150kB para cada idioma " "suportado no sistema de arquivos raiz." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Caso você precise de um conjunto diferente de idiomas posteriormente, " "simplesmente execute o comando dpkg-reconfigure mailman." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "NOTA: Idiomas habilitados em listas de discussões existentes são " "forçadamente reabilitados quando deselecionados e o mailman precisa de pelo " "menos um idioma para exibir suas mensagens." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Site list faltando" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "O Mailman precisa de uma \"site list\", que é a lista a partir da qual " "lembretes de senhas e coisas do tipo são enviadas. Esta lista precisa ser " "criada antes que o Mailman seja iniciado." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Para criar a lista, execute o comando \"newlist mailman\" e siga as " "instruções que aparecerão. Note que você também precisa iniciar o mailman " "após isso, usando o comando /etc/init.d/mailman start." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Idioma padrão para o Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "A página Web será exibida neste idioma e, de uma forma geral, o Mailman " "utilizará este idioma para se comunicar com o usuário." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Arquivos de fila antigos presentes" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "O diretório /var/lib/mailman/qfiles contém arquivos. O mesmo precisa estar " "vazio para que a atualização funcione corretamente. Você pode tentar " "gerenciá-los da seguinte forma:\n" " - Faça com que as mensagens parem de chegar (no nível do MTA).\n" " - Inicie um mailman queue runner: /etc/init.d/mailman start\n" " - Deixe-o em execução até que todas as mensagens sejam gerenciadas.\n" " Caso todas não sejam gerenciadas de forma rápida, veja os logs\n" " para tentar entender a razão e resolver o problema.\n" " - Pare-o: /etc/init.d/mailman stop\n" " - Tente a atualização novamente.\n" " - Deixe as mensagens chegarem novamente.\n" "Você pode também optar por simplesmente remover os arquivos, o que fará com " "que o Mailman esqueça (e perca) as mensagens correspondentes." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Caso esses arquivos sejam correspondentes a mensagens substituídas " "(shunted), você precisa removê-las ou abrí-las (com /var/lib/mailman/bin/" "unshunt). Mensagens substituídas são mensagens para as quais o Mailman já " "abandonou qualquer processamento adicional devido a uma condição de erro, " "mas que são mantidas para revisão administrativa. Você pode utilizar /var/" "lib/mailman/bin/show_qfiles para examinar o conteúdo das filas." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" #~ msgid "Gate news to mail?" #~ msgstr "Ligação notícias para mensagens ?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "O Mailman permite uma ligação notícias (news) para mensagens, ou seja. " #~ "envia todas as mensagens que aparecerem em um grupo de notícias Usenet " #~ "para uma lista de discussão." #~ msgid "Most people won't need this." #~ msgstr "A maioria das pessoas não precisará disso." debian/po/vi.po0000664000000000000000000002755213174122612010576 0ustar # Vietnamese Translation for Mailman. # Copyright © 2009 Free Software Foundation, Inc. # Clytie Siddall , 2005-2009. # msgid "" msgstr "" "Project-Id-Version: mailman 1:2.1.11-9\n" "Report-Msgid-Bugs-To: mailman@packages.debian.org\n" "POT-Creation-Date: 2011-10-08 15:13+0000\n" "PO-Revision-Date: 2009-01-26 22:23+1030\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.8\n" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ar (Arabic)" msgstr "ar (A Rập)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ca (Catalan)" msgstr "ca (Ca-ta-lan)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "cs (Czech)" msgstr "cs (Séc)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "da (Danish)" msgstr "da (Đan Mạch)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "de (German)" msgstr "de (Đức)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "en (English)" msgstr "en (Anh)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "es (Spanish)" msgstr "es (Tây Ban Nha)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "et (Estonian)" msgstr "et (Éx-tô-ni-a)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "eu (Basque)" msgstr "eu (Ba-x-quợ)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fi (Finnish)" msgstr "fi (Phần Lan)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "fr (French)" msgstr "fr (Pháp)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hr (Croatian)" msgstr "hr (Cợ-rô-a-ti-a)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "hu (Hungarian)" msgstr "hu (Hung-ga-ri)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ia (Interlingua)" msgstr "ia (Interlingua)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "it (Italian)" msgstr "it (Ý)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ja (Japanese)" msgstr "ja (Nhật)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ko (Korean)" msgstr "ko (Hàn)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "lt (Lithuanian)" msgstr "lt (Li-tu-a-ni)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "nl (Dutch)" msgstr "nl (Hoà Lan)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "no (Norwegian)" msgstr "no (Na Uy)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pl (Polish)" msgstr "pl (Ba Lan)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt (Portuguese)" msgstr "pt (Bồ Đào Nha)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "pt_BR (Brasilian Portuguese)" msgstr "pr_BR (Bồ Đào Nha ở Bra-xin)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ro (Romanian)" msgstr "ro (Rô-ma-ni)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "ru (Russian)" msgstr "ru (Nga)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sl (Slovenian)" msgstr "sl (Xlô-ven)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sr (Serbian)" msgstr "sr (Xéc-bi)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "sv (Swedish)" msgstr "sv (Thuỵ Điển)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "tr (Turkish)" msgstr "tr (Thổ Nhĩ Kỳ)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "uk (Ukrainian)" msgstr "uk (U-cợ-rainh)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "vi (Vietnamese)" msgstr "vi (Việt)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_CN (Chinese - China)" msgstr "zh_CN (Trung Quốc)" #. Type: multiselect #. Choices #: ../templates:1001 msgid "zh_TW (Chinese - Taiwan)" msgstr "zh_TW (Trung - Đài Loan)" #. Type: multiselect #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #. Type: select #. DefaultChoice #. You must NOT translate this string, but you can change its value. #. The comment between brackets is used to distinguish this msgid #. from the one in the Choices list; you do not have to worry about #. them, and have to simply choose a msgstr among the English values #. listed in the Choices field above, e.g. msgstr "nl (Dutch)". #: ../templates:1002 ../templates:4001 msgid "en (English)[ default language ]" msgstr "vi (Vietnamese)" #. Type: multiselect #. Description #: ../templates:1003 msgid "Languages to support:" msgstr "Ngôn ngữ cần hỗ trợ :" #. Type: multiselect #. Description #: ../templates:1003 msgid "" "For each supported language, Mailman stores default language specific texts " "in /etc/mailman/LANG/ giving them conffile like treatment with the help of " "ucf. This means approximately 150kB for each supported language on the root " "file system." msgstr "" "Với mỗi ngôn ngữ được hỗ trợ, trình Mailman lưu vào « /etc/mailman/MÃ/ » một " "số văn bản mặc định đặc trưng cho ngôn ngữ (MÃ là mã ngôn ngữ theo hai chữ), " "xử lý chúng giống như tập tin cấu hình (conffile) dùng « ucf ». Có nghĩa là " "chiếm khoảng 150 kB cho mỗi ngôn ngữ được hỗ trợ trên hệ thống tập tin gốc." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "If you need a different set of languages at a later time, just run dpkg-" "reconfigure mailman." msgstr "" "Lúc nào muốn sửa đổi tập ngôn ngữ thì chỉ hãy chạy câu lệnh cấu hình lại gói " "« dpkg-reconfigure mailman »." #. Type: multiselect #. Description #: ../templates:1003 msgid "" "NOTE: Languages enabled on existing mailing lists are forcibly re-enabled " "when deselected and mailman needs at least one language for displaying its " "messages." msgstr "" "GHI CHÚ : những ngôn ngữ được hiệu lực trong hộp thư chung đã tồn tại thì bị " "hiệu lực lại một cách ép buộc khi bị bỏ chọn. Hơn nữa, trình Mailman cần " "thiết ít nhất một ngôn ngữ để hiển thị thông điệp." #. Type: note #. Description #: ../templates:3001 msgid "Missing site list" msgstr "Thiếu danh sách địa chỉ Web" #. Type: note #. Description #: ../templates:3001 msgid "" "Mailman needs a so-called \"site list\", which is the list from which " "password reminders and such are sent out from. This list needs to be " "created before mailman will start." msgstr "" "Trình Mailman cần thiết một « danh sách địa chỉ Web », để gửi thư nhắc nhở " "mặt khẩu v.v.. Phải tạo danh sách này trước khi có thể khởi chạy trình " "Mailman." #. Type: note #. Description #: ../templates:3001 msgid "" "To create the list, run \"newlist mailman\" and follow the instructions on-" "screen. Note that you also need to start mailman after that, using /etc/" "init.d/mailman start." msgstr "" "Để tạo danh sách này, hãy chạy câu lệnh « newlist mailman », sau đó theo " "những hướng dẫn trên màn hình. Ghi chú rằng bạn cũng cần phải khởi chạy lại " "trình Mailman sau đó, dùng câu lệnh « /etc/init.d/mailman start »." #. Type: select #. Description #: ../templates:4002 msgid "Default language for Mailman:" msgstr "Ngôn ngữ mặc định cho Mailman:" #. Type: select #. Description #: ../templates:4002 msgid "" "The web page will be shown in this language, and in general, Mailman will " "use this language to communicate with the user." msgstr "" "Trang Web sẽ được hiển thị bằng ngôn ngữ này, và thông thường trình Mailman " "sẽ dùng ngôn ngữ này để liên lạc với người dùng." #. Type: select #. Choices #: ../templates:5001 msgid "abort installation" msgstr "hủy bỏ tiến trình cài đặt" #. Type: select #. Choices #: ../templates:5001 msgid "continue regardless" msgstr "tiếp tục bất chấp" #. Type: select #. Description #: ../templates:5002 msgid "Old queue files present" msgstr "Có tập tin hàng đợi cũ" #. Type: select #. Description #: ../templates:5002 msgid "" "The directory /var/lib/mailman/qfiles contains files. It needs to be empty " "for the upgrade to work properly. You can try to handle them by:\n" " - Stop new messages from coming in (at the MTA level).\n" " - Start a mailman queue runner: /etc/init.d/mailman start\n" " - Let it run until all messages are handled.\n" " If they don't all get handled in a timely manner, look at the logs\n" " to try to understand why and solve the cause.\n" " - Stop it: /etc/init.d/mailman stop\n" " - Retry the upgrade.\n" " - Let messages come in again.\n" "You can also decide to simply remove the files, which will make Mailman " "forget about (and lose) the corresponding emails." msgstr "" "Thư mục « /var/lib/mailman/qfiles » chứa một số tập tin. Thư mục này phải " "trống để tiến trình nâng cấp chạy đúng. Bạn có thể thử quản lý chúng bằng " "cách:\n" " • chặn thư mới đến vào (ở cấp MTA)\n" " • khởi chạy một hàm chạy hàng đợi mailman: « /etc/init.d/mailman start ».\n" " • cho phép nó chạy cho đến khi tất cả các thư được xử lý.\n" "\tNếu mọi thư đều chưa được xử lý một cách hợp thời, xem bản ghi\n" "\tđể thử xác định nguyên nhân.\n" " • dừng nó : « /etc/init.d/mailman stop ».\n" " • thử lại việc nâng cấp.\n" " • cho phép thư lại đến vào.\n" "Bạn cũng có thể quyết định đơn giản gỡ bỏ những tập tin này, do đó làm cho " "trình Mailman quên (và mất) những thư tương ứng." #. Type: select #. Description #: ../templates:5002 msgid "" "If these files correspond to shunted messages, you have to either delete " "them or unshunt them (with /var/lib/mailman/bin/unshunt). Shunted messages " "are messages on which Mailman has already abandoned any further processing " "because of an error condition, but that are kept for admin review. You can " "use /var/lib/mailman/bin/show_qfiles to examine the contents of the queues." msgstr "" "Nếu những tập tin này tương ứng với thư đã giữ riêng cho người kiểm tra, bạn " "cần phải hoặc xoá bỏ chúng hoặc gỡ bỏ chúng khỏi nhóm giữ riêng đó. (Thư đã " "giữ riêng cho người kiểm tra [tiếng Anh: shunted message] là thư bị trình " "Mailman hủy bỏ việc xử lý do gặp lỗi, còn giữ nó cho quản trị xem lại.) Bạn " "cũng có khả năng sử dụng « /var/lib/mailman/bin/show_qfiles » để xem nội " "dung của mỗi hàng đợi." #. Type: select #. Description #: ../templates:5002 msgid "" "You have the option to continue installation regardless of this problem, at " "the risk of losing the messages in question or breaking your Mailman setup." msgstr "" "Bạn có tùy chọn tiếp tục tiến trình cài đặt bất chấp vấn đề này mà cũng gặp " "nguy hiểm mất những thư liên quan hoặc phá vỡ thiết lập Mailman." #~ msgid "Gate news to mail?" #~ msgstr "Chuyển tiếp tin tức tới thư ?" #~ msgid "" #~ "Mailman allows to gate news to mail, that is, send all the messages which " #~ "appear in a Usenet newsgroup to a mailing list." #~ msgstr "" #~ "Trình Mailman cho bạn có khả năng chuyển tiếp tin tức tới thư, tức là gửi " #~ "mọi bài tin xuất hiện trong nhóm tin Usenet cho hộp thư chung đã chọn." #~ msgid "Most people won't need this." #~ msgstr "Phần lớn người không cần tính năng này." debian/control0000664000000000000000000000316213174122612010574 0ustar Source: mailman Section: mail Priority: optional Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Mailman for Debian Uploaders: Lionel Elie Mamane , Thijs Kinkhorst , Thorsten Glaser , Hector Garcia Build-Depends: debhelper (>= 7), autoconf, python-dev (>= 2.6.6-3~), gettext Standards-Version: 3.9.4 Homepage: http://www.list.org/ Vcs-Svn: svn://anonscm.debian.org/pkg-mailman/trunk Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-mailman/trunk/ X-Python-Version: >= 2.4 XS-Testsuite: autopkgtest Package: mailman Architecture: any Pre-Depends: debconf | debconf-2.0 Depends: ${shlibs:Depends}, ${python:Depends}, ${misc:Depends}, logrotate (>= 3.8.0), cron, ucf, lsb-base, apache2 | httpd Recommends: default-mta | mail-transport-agent Suggests: spamassassin, lynx, listadmin Description: Powerful, web-based mailing list manager The GNU Mailing List Manager, which manages email discussion lists much like Majordomo and Smartmail. Unlike most similar products, Mailman gives each mailing list a web page, and allows users to subscribe, unsubscribe, etc. over the web. Even the list manager can administer his or her list entirely from the web. . Mailman also integrates most things people want to do with mailing lists, including archiving, mail <-> news gateways, and so on. It has all of the features you expect from such a product, plus integrated support for the web (including web based archiving), automated bounce handling and integrated spam prevention. debian/lintian-overrides0000664000000000000000000000256113174122612012554 0ustar setgid-binary usr/lib/mailman/mail/mailman 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/admindb 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/admin 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/confirm 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/create 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/edithtml 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/listinfo 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/options 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/private 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/rmlist 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/roster 2755 root/list setgid-binary usr/lib/cgi-bin/mailman/subscribe 2755 root/list non-standard-dir-perm var/log/mailman/ 2770 != 0755 non-standard-dir-perm var/lib/mailman/ 2775 != 0755 non-standard-dir-perm var/lib/mailman/archives/ 2775 != 0755 non-standard-dir-perm var/lib/mailman/archives/private/ 2770 != 0755 non-standard-dir-perm var/lib/mailman/archives/public/ 2775 != 0755 non-standard-dir-perm var/lib/mailman/lists/ 2775 != 0755 non-standard-dir-perm var/lib/mailman/data/ 2775 != 0755 non-standard-dir-perm var/lib/mailman/spam/ 2775 != 0755 non-standard-dir-perm var/lib/mailman/qfiles/ 2775 != 0755 symlink-should-be-relative var/lib/mailman/locks /var/lock/mailman symlink-should-be-relative var/lib/mailman/logs /var/log/mailman debian/mailman.logrotate0000664000000000000000000000304713174122612012533 0ustar /var/log/mailman/vette /var/log/mailman/error /var/log/mailman/bounce { su root list weekly missingok create 0664 list list rotate 4 compress delaycompress sharedscripts postrotate [ -f '/var/run/mailman/mailman.pid' ] && /usr/lib/mailman/bin/mailmanctl -q reopen || exit 0 endscript } /var/log/mailman/mischief { su root list monthly missingok create 0664 list www-data rotate 4 compress delaycompress sharedscripts postrotate [ -f '/var/run/mailman/mailman.pid' ] && /usr/lib/mailman/bin/mailmanctl -q reopen || exit 0 endscript } /var/log/mailman/digest { su root list monthly missingok create 0664 list list rotate 4 compress delaycompress sharedscripts postrotate [ -f '/var/run/mailman/mailman.pid' ] && /usr/lib/mailman/bin/mailmanctl -q reopen || exit 0 endscript } /var/log/mailman/subscribe /var/log/mailman/post { su root list monthly missingok create 0664 list list rotate 12 compress delaycompress sharedscripts postrotate [ -f '/var/run/mailman/mailman.pid' ] && /usr/lib/mailman/bin/mailmanctl -q reopen || exit 0 endscript } /var/log/mailman/qrunner /var/log/mailman/fromusenet /var/log/mailman/locks /var/log/mailman/smtp /var/log/mailman/smtp-failure { su root list daily missingok create 0664 list list rotate 7 compress delaycompress sharedscripts postrotate [ -f '/var/run/mailman/mailman.pid' ] && /usr/lib/mailman/bin/mailmanctl -q reopen || exit 0 endscript } debian/README.Debian0000664000000000000000000000444513174122612011237 0ustar Notes for the debian mailman package. ===================================== Getting started --------------- You can access the web interface of mailman on http:///cgi-bin/mailman/listinfo You can create new lists with the newlist command (you have to add the aliases it needs by hand to /etc/aliases or the corresponding database because mailman can not know about configuration of all MTA's, but newlist tells you about the alias it needs, but see the notes on qmail and postfix below). For users of exim: if you want to use the /etc/aliases file for mailman aliases, you'll need to specify a user=list line or something like that in the system_aliases director. gate-news is commented out in the default crontab, since most people will be less interested in gating news-to-mail and vice versa. An example Apache configuration is included in /etc/mailman/apache.conf. It can be copied to or symlinked from e.g. the /etc/apache2/conf.d/ directory (or /etc/apache2/conf-available/mailman in Apache 2.4 and up). Apache + suexec --------------- Since suexec forbids execution of CGIs with gid < 50 and www-data (the default for mailman cgi) is 33, you should execute the cgi with a gid of 50-99 or 65534. It cannot be any other gid since mailman cgi check that gid < 100 or == 65534. Qmail ----- For those using qmail, please see the comments in /etc/mailman/qmail-to-mailman.py and set it up according to those instructions. Additional information may be available in /usr/share/doc/mailman/README.QMAIL.gz Postfix ------- For those using postfix who are able to devote a full subdomain lists.example.com for use by Mailman, please see the comments in /etc/mailman/postfix-to-mailman.py . SpamAssassin ------------ As of Mailman 2.1-1, Mailman includes the SpamAssassin patch from Sourceforge.net. It is not enabled by default. If you want to enable the handler, adding GLOBAL_PIPELINE.insert(1, 'SpamAssassin') at the bottom of your mm_cfg.py should enable it. You can read more documentation about how to configure SpamAssassin and Mailman together at http://www.daa.com.au/~james/articles/mailman-spamassassin/ The current version of this handler used in this package is released on 2003 May 6 by James Henstridge . -- Lionel Elie Mamane , dim, 27 aoû 2006 19:08:42 +0200 debian/copyright0000664000000000000000000000253213174122612011124 0ustar This package was debianized by Johnie Ingram (johnie@debian.org) on Tue, 16 Jun 1998 22:34:13 -0400. It was downloaded from: http://www.list.org/ It is maintained by the Mailman for Debian team. Our mailinglist and Subversion repository are found at Alioth: http://alioth.debian.org/projects/pkg-mailman/ Licence: GNU GPL 2 Mailman - a mailing list management system Copyright (C) 1998 by the Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. This is Mailman, mailing list management system written mostly in Python. Mailman was originally developed by John Viega. Subsequent development (through version 1.1) was by Ken Manheimer. Currently, Mailman development is a group effort, led by John Viega, Ken Manheimer and Barry Warsaw. Initial version of Mailman (v. 0.9) written by John Viega Dec 12-15 1996. Mailman 1.0b3, 2, and 1.1 developments by Ken Manheimer, 4/98 and 5/98. Autoconf support added 5/98 by Barry Warsaw. Modifications for Debian are copyright (C) 1998 Johnie Ingram, (C) 1999 Gergely Madarasz, (C) 2001 Tollef Fog Heen, (C) 2005 Lionel Elie Mamane, © 2010, 2012, 2013 Thorsten Glaser (partially sponsored by tarent) and also released under the terms of the GPL -- version 2, or any later version. On Debian GNU/Linux systems, the text of the GPL can be found in /usr/share/common-licenses/GPL-2. debian/preinst.in0000664000000000000000000000340613174122612011206 0ustar #!/bin/sh -e # $URL: svn+ssh://tg@svn.debian.org/svn/pkg-mailman/branches/experimental/debian/preinst.in $ # $Id: preinst.in 704 2012-03-18 13:14:40Z thijs $ . /usr/share/debconf/confmodule # If we encounter a cron.d file that was originally installed by this package, # we remove it here so it will be replaced by a properly managed one after # the package upgrade. # This can be removed after wheezy's release. if [ -e /etc/cron.d/mailman ] && dpkg --compare-versions "$2" le "1:2.1.14-3"; then md5sum="$(md5sum /etc/cron.d/mailman | sed -e 's/ .*//')" if [ "$md5sum" = "06648bbab6cf2c5c1f542b31a51d8338" ]; then rm /etc/cron.d/mailman fi fi #DEBHELPER# abort_install() { db_fset mailman/queue_files_present seen false || true db_input critical mailman/queue_files_present || true db_go db_get mailman/queue_files_present if [ "$RET" = "abort installation" ]; then exit 1 fi } # make sure the qfiles directory is empty. if [ -d /var/lib/mailman/qfiles ] && \ [ "$(find /var/lib/mailman/qfiles -type f | wc -l)" -ne 0 ]; then # Check if the queue files were created by the same version as the one we're about to install if [ -r /var/lib/mailman/.version ]; then # First check the stamp file. # It is more general because it will show the previous version in the # case that /var/lib/mailman is on permanent storage (e.g. a SAN) and # we are being installed for the first time. previous_version=$(cat /var/lib/mailman/.version) else # Fall back to reading dpkg-provided argument (in case previous version did not leave the stamp file) previous_version="$2" fi if [ "@VERSION@" != "${previous_version}" ]; then # we don't know which version the files are from abort_install fi fi exit 0 debian/manpages/0000775000000000000000000000000013174122612010762 5ustar debian/manpages/check_db.80000664000000000000000000000162113174122612012575 0ustar .TH CHECK_DB 8 2006-08-09 .SH NAME check_db \- Check the integrity of a Mailman mailing list's database file .SH SYNOPSIS check_db [options] [listname [listname ...]] .SH DESCRIPTION check_db checks the integrity of a list's config.db and config.db.last database files. .SH OPTIONS .TP \fB\-a\fB, \fB\-\-\fBall\fB Check the databases for all lists. Otherwise only the lists named on the command line are checked. .TP \fB\-v\fB, \fB\-\-\fBverbose\fB Verbose output. The state of every tested file is printed. Otherwise only corrupt files are displayed. .TP \fB\-h\fB, \fB\-\-\fBhelp\fB Print a help text and exit. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/list_members.80000664000000000000000000000400613174122612013540 0ustar .TH LIST_MEMBERS 8 2004-10-17 .SH NAME list_members \- List all the members of a Mailman mailing list .SH SYNOPSIS list_members [\-o file] [\-r] [\-d] [\-p] [\-h] listname .SH OPTIONS .PP .TP \fB\-o\fB \fIfile\fI, \fB\-\-\fBoutput\fB \fIfile\fI Write output to specified file instead of standard out. .TP \fB\-r\fB, \fB\-\-\fBregular\fB Print just the regular (non-digest) members. .TP \fB\-d\fR [\fIkind\fR], \fB\-\-digest\fR[=\fIkind\fR] Print just the digest members. Optional argument can be "\fImime\fR" or "\fIplain\fR" which prints just the digest members receiving that kind of digest. .TP \fB\-\-nomail\fR[=\fIwhy\fR], \fB\-n\fR [\fIwhy\fR] Print the members that have delivery disabled. Optional argument can be "\fIbyadmin\fR", "\fIbyuser\fR", "\fIbybounce\fR", or "\fIunknown\fR" which prints just the users who have delivery disabled for that reason. It can also be "\fIenabled\fR" which prints just those member for whom delivery is enabled. .TP \fB\-f\fR, \fB\-\-fullnames\fR Include the full names in the output. .TP \fB\-p\fB, \fB\-\-\fBpreserve\fB Output member addresses case preserved the way they were added to the list. Otherwise, addresses are printed in all lowercase. .TP \fB\-i\fR, \fB\-\-invalid\fR Print only the addresses in the membership list that are invalid. Ignores \-r, \-d, \-n. .TP \fB\-u\fR, \fB\-\-unicode\fR Print addresses which are stored as Unicode objects instead of normal string objects. Ignores \-r, \-d, \-n. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .TP .PP listname is the name of the mailing list to use. .SH NOTES Note that if neither \-r or \-d is supplied, both regular members are printed first, followed by digest members, but no indication is given as to address status. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/list_lists.80000664000000000000000000000160113174122612013242 0ustar .TH LIST_LISTS 8 2007-07-14 .SH NAME list_lists \- List all Mailman mailing lists on this host .SH SYNOPSIS list_lists [options] .SH OPTIONS .PP .TP \fB\-a\fB, \fB\-\-\fBadvertised\fB List only those mailing lists that are publically advertised .TP \fB\-V\fB \fIdomain\fI, \fB\-\-\fBvirtual-host-overview\fB=\fIdomain\fI List only those mailing lists that are homed to the given virtual domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is set. .TP \fB\-b\fB, \fB\-\-\fBbare\fB Displays only the list name, with no description. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .PP .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/remove_members.80000664000000000000000000000253213174122612014064 0ustar .TH REMOVE_MEMBERS 8 2007-07-14 .SH NAME remove_members \- Remove members from a Mailman mailing list. .SH SYNOPSIS remove_members [options] listname [addr1 ...] .SH OPTIONS .PP .TP \fB\-f\fB \fIfile\fI, \fB\-\-file\fB=\fIfile\fI Remove member addresses found in the given file. If file is `-', read stdin. .TP \fB\-a\fB, \fB\-\-all\fB Remove all members of the mailing list. (mutually exclusive with \-\-fromall) .TP \fB\-\-fromall\fB Removes the given addresses from all the lists on this system regardless of virtual domains if you have any. This option cannot be used with \-a/\-\-all. Also, you should not specify a listname when using this option. .TP \fB\-n\fB, \fB\-\-nouserack\fB Don't send the user acknowledgements. If not specified, the list default value is used. .TP \fB\-N\fB, \fB\-\-noadminack\fB Don't send the admin acknowledgements. If not specified, the list default value is used. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .PP listname is the name of the mailing list to use. addr1 ... are additional addresses to remove. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/clone_member.80000664000000000000000000000331613174122612013505 0ustar .TH CLONE_MEMBER 8 2007-07-14 .SH NAME clone_member \- Clone a Mailman mailing list subscriber address .SH SYNOPSIS clone_member [options] fromoldaddr tonewaddr .SH DESCRIPTION Cloning a member address means that a new member will be added who has all the same options and passwords as the original member address. Note that this operation is fairly trusting of the user who runs it -- it does no verification to the new address, it does not send out a welcome message, etc. The existing member's subscription is usually not modified in any way. If you want to remove the old address, use the \-r flag. If you also want to change any list admin addresses, use the \-a flag. .SH OPTIONS .PP .TP \fB\-l\fB \fIlistname\fI, \fB\-\-listname\fB=\fIlistname\fI Check and modify only the named mailing lists. If \-l is not given, then all mailing lists are scanned from the address. Multiple \-l options can be supplied. .TP \fB\-r\fB, \fB\-\-remove\fB Remove the old address from the mailing list after it's been cloned. .TP \fB\-a\fB, \fB\-\-admin\fB Scan the list admin addresses for the old address, and clone or change them too. .TP \fB\-q\fB, \fB\-\-quiet\fB Do the modifications quietly. .TP \fB\-n\fB, \fB\-\-nomodify\fB Print what would be done, but don't actually do it. Inhibits the \Bf\-\-quiet\Bf flag. .PP fromoldaddr (`from old address') is the old address of the user. tonewaddr (`to new address') is the new address of the user. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/check_perms.80000664000000000000000000000125713174122612013343 0ustar .TH CHECK_PERMS 8 2007-07-14 .SH NAME check_perms \- Check permissions of Mailman's files .SH SYNOPSIS check_perms [\-f] [\-v] [\-h] .SH OPTIONS .TP \fB\-f\fB Fix any problems found (when run as root) .TP \fB\-v\fB Be verbose .TP \fB\-h\fB Print a help message and exit .PP .SH DESCRIPTION With no arguments, just check and report all the files that have bogus permissions or group ownership. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/rmlist.80000664000000000000000000000156113174122612012370 0ustar .TH RMLIST 8 2006-08-09 .SH NAME rmlist \- Remove the components of a Mailman mailing list with impunity \- beware! .SH SYNOPSIS rmlist [\-a] [\-h] listname .SH DESCRIPTION This removes (almost) all traces of a mailing list. By default, the lists archives are not removed, which is very handy for retiring old lists. .SH OPTIONS .PP .TP \fB\-a\fB, \fB\-\-archives\fB Remove the list's archives too, or if the list has already been deleted, remove any residual archives. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .PP listname is the name of the mailing list to use. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/withlist.80000664000000000000000000000774613174122612012740 0ustar .TH withlist 8 2007-07-14 .SH NAME withlist \- General framework for interacting with a Mailman mailing list object. .SH SYNOPSIS withlist [options] listname [args ...] There are two ways to use this script: interactively or programmatically. Using it interactively allows you to play with, examine and modify a MailList object from Python's interactive interpreter. When running interactively, a MailList object called `m' will be available in the global namespace. It also loads the class MailList into the global namespace. Programmatically, you can write a function to operate on a MailList object, and this script will take care of the housekeeping (see below for examples). In that case, the general usage syntax is: .SH OPTIONS .PP .TP \fB\-l\fB, \fB\-\-lock\fB Lock the list when opening. Normally the list is opened unlocked (e.g. for read-only operations). You can always lock the file after the fact by typing `m.Lock()' Note that if you use this option, you should explicitly call m.Save() before exiting, since the interpreter's clean up procedure will not automatically save changes to the MailList object (but it will unlock the list). .TP \fB\-i\fB, \fB\-\-interactive\fB Leaves you at an interactive prompt after all other processing is complete. This is the default unless the \fB\-r\fB option is given. .TP \fB\-r\fB \fI[module.]callable\fI, \fB\-\-run\fB \fI[module.]callable\fI This can be used to run a script with the opened MailList object. This works by attempting to import \fImodule\f[] (which must already be accessible on your sys.path), and then calling \fIcallable\f[] from the module. \fIcallable\f[] can be a class or function; it is called with the MailList object as the first argument. If additional args are given on the command line, they are passed as subsequent positional args to the callable. Note that \fImodule.\f[] is optional; if it is omitted then a module with the name \fIcallable\f[] will be imported. The global variable `r' will be set to the results of this call. .TP \fB\-a\fB, \fB\-\-all\fB This option only works with the \fB\-r\f[] option. Use this if you want to execute the script on all mailing lists. When you use \fB\-a\f[] you should not include a listname argument on the command line. The variable `r' will be a list of all the results. .TP \fB\-q\fB, \fB\-\-quiet\fB Suppress all status messages. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit. .PP .SH EXAMPLES Here's an example of how to use the \fB\-r\f[] option. Say you have a file in the Mailman installation directory called `listaddr.py', with the following two functions: def listaddr(mlist): print mlist.GetListEmail() def requestaddr(mlist): print mlist.GetRequestEmail() Now, from the command line you can print the list's posting address by running the following from the command line: % bin/withlist \-r listaddr mylist Loading list: mylist (unlocked) Importing listaddr ... Running listaddr.listaddr() ... mylist@example.com And you can print the list's request address by running: % bin/withlist \-r listaddr.requestaddr mylist Loading list: mylist (unlocked) Importing listaddr ... Running listaddr.requestaddr() ... mylist-request@example.com As another example, say you wanted to change the password for a particular user on a particular list. You could put the following function in a file called `changepw.py': from Mailman.Errors import NotAMemberError def changepw(mlist, addr, newpasswd): try: mlist.setMemberPassword(addr, newpasswd) mlist.Save() except NotAMemberError: print 'No address matched:', addr and run this from the command line: % bin/withlist \-l \-r changepw mylist somebody@example.org foobar .PP .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written for Debian by Bernd S. Brentrup , but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/mmsitepass.80000664000000000000000000000207713174122612013246 0ustar .TH MMSITEPASS 8 2007-07-14 .SH NAME mmsitepass \- Set the Mailman site password, prompting from the terminal. .SH SYNOPSIS mmsitepass [options] [password] .SH OPTIONS .PP .TP \fB\-c\fB, \fB\-\-listcreator\fB Set the list creator password instead of the site password. The list creator is authorized to create and remove lists, but does not have the total power of the site administrator. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .PP .SH SECURITY Including the admin-password on the command line is a small security risk if you have untrusted users on the system. .SH DESCRIPTION The site password can be used in most if not all places that the list administrator's password can be used, which in turn can be used in most places that a list users password can be used. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/sync_members.80000664000000000000000000000504313174122612013543 0ustar .TH SYNC_MEMBERS 8 2007-07-14 .SH NAME sync_members \- Synchronize a Mailman mailing list's membership with a flat file. .SH SYNOPSIS sync_members [options] \-f file listname .SH DESCRIPTION This script is useful if you have a Mailman mailing list and a sendmail :include: style list of addresses (also as is used in Majordomo). For every address in the file that does not appear in the mailing list, the address is added. For every address in the mailing list that does not appear in the file, the address is removed. Other options control what happens when an address is added or removed. .SH OPTIONS .PP .TP \fB\-n\fB, \fB\-\-no\-change\fB Don't actually make the changes. Instead, print out what would be done to the list. .TP \fB\-w\fB=\fI{ yes | no }\fI, \fB\-\-welcome\-msg\fB=\fI{ yes | no }\fI Sets whether or not to send the newly added members a welcome message, overriding whatever the list's `send_welcome_msg' setting is. With \-w=yes or \-w, the welcome message is sent. With \-w=no, no message is sent. .TP \fB\-g\fB=\fI{ yes | no }\fI, \fB\-\-goodbye\-msg\fB=\fI{ yes | no }\fI Sets whether or not to send the goodbye message to removed members, overriding whatever the list's `send_goodbye_msg' setting is. With \-g=yes or \-g, the goodbye message is sent. With \-g=no, no message is sent. .TP \fB\-d\fB=\fI{ yes | no }\fI, \fB\-\-digest\fB=\fI{ yes | no }\fI Selects whether to make newly added members receive messages in digests. With \-d=yes or \-d, they become digest members. With \-d=no (or if no \-d option given) they are added as regular members. .TP \fB\-a\fB=\fI{ yes | no }\fI, \fB\-\-notifyadmin\fB=\fI{ yes | no }\fI Specifies whether the admin should be notified for each subscription or unsubscription. If you're adding a lot of addresses, you definitely want to turn this off! With \-a=yes or \-a, the admin is notified. With \-a=no, the admin is not notified. With no \-a option, the default for the list is used. .TP \fB\-f\fB=\fIfilename\fI, \fB\-\-file\fB=\fIfilename\fI This option is required. It specifies the flat file to synchronize against. Email addresses must appear one per line. If filename is `\-' then stdin is used. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit. .PP listname specifies the list to synchronize. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/mmarch.80000664000000000000000000000311013174122612012315 0ustar .TH MMARCH 8 2007-07-14 .SH NAME mmarch \- Rebuild a Mailman mailing list's archive. .SH SYNOPSIS mmarch [options] [] .SH DESCRIPTION Use this command to rebuild the archives for a mailing list. You may want to do this if you edit some messages in an archive, or remove some messages from an archive. .TP \fB\-h\fB, \fB\-\-\fBhelp\fB Print this error message and exit. .TP \fB\-q\fB, \fB\-\-\fBquiet\fB Make the archiver output less verbose. .TP \fB\-\-\fBwipe\fB First wipe out the original archive before regenerating. You usually want to specify this argument unless you're generating the archive in chunks. .TP \fB\-s\fB \fIN\fI, \fB\-\-\fBstart=\fB\fIN\fI Start indexing at article N, where article 0 is the first in the mbox. Defaults to 0. .TP \fB\-e\fB \fIM\fI, \fB\-\-\fBend=\fB\fIM\fI End indexing at article M. This script is not very efficient with respect to memory management, and for large archives, it may not be possible to index the mbox entirely. For that reason, you can specify the start and end article numbers. .PP mbox is the path to a list's complete mbox archive. Usually this will be some path in the archives/private directory. For example: % mmarch mylist archives/private/mylist.mbox/mylist.mbox mbox is optional. If it is missing, it is calculated. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/newlist.80000664000000000000000000000651013174122612012542 0ustar .TH NEWLIST 8 2008-06-14 .SH NAME newlist \- Create a new, unpopulated Mailman mailing list. .SH SYNOPSIS newlist [options] [listname] [listadmin-addr] [admin-password] .SH OPTIONS .PP .TP \fB\-l\fR \fIlanguage\fR, \fB\-\-language\fR=\fIlanguage\fR Make the list's preferred language `\fIlanguage\fR', which must be the (mostly two letter) language code as found under /usr/share/mailman. .TP \fB\-u\fR \fIurlhost\fR, \fB\-\-urlhost=\fR\fIurlhost\fR Gives the list's web interface host name. .TP \fB\-e\fR \fIemailhost\fR, \fB\-\-emailhost=\fR\fIemailhost\fR Gives the list's email domain name. .TP \fB\-q\fB, \fB\-\-quiet\fB Normally the administrator is notified by email (after a prompt) that their list has been created. This option suppresses that notification and the prompting. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .PP .SH SECURITY Including the admin-password on the command line is a small security risk if you have untrusted users on the system. .SH NOTES You can specify as many of the arguments as you want on the command line: you will be prompted for the missing ones. Every Mailman list has two parameters which define the default host name for outgoing email, and the default URL for all web interfaces. When you configured Mailman, certain defaults were calculated, but if you are running multiple virtual Mailman sites, then the defaults may not be appropriate for the list you are creating. You also specify the domain to create your new list in by typing the command like so: newlist \-\-urlhost=www.example.com mylist where `www.example.com' should be the base hostname for the URL to this virtual hosts's lists. E.g. with this setting people will view the general list overviews at http://www.example.com/mailman/listinfo. Also, www.example.com should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py if the email hostname to be automatically determined. If you want the email hostname to be different from the one looked up by the VIRTUAL_HOSTS or if urlhost is not registered in VIRTUAL_HOSTS, you can specify `emailhost' like so: newlist \-\-urlhost=www.example.com \-\-emailhost=example.com mylist where `example.com' is the mail domain name. If you don't specify emailhost but urlhost is not in the virtual host list, then mm_cfg.DEFAULT_EMAIL_HOST will be used for the email interface. For backward compatibility, you can also specify the domain to create your new list in by spelling the listname like so: mylist@www.example.com where www.example.com is used for `urlhost' but it will also be used for `emailhost' if it is not found in the virtual host table. Note `\-\-urlhost' and `\-\-emailhost' have precedence to this notation. If you spell the list name as just `mylist', then the email hostname will be taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL (as defined in your Defaults.py file or overridden by settings in mm_cfg.py). Note that listnames are forced to lowercase. The list admin address need to be a fully-qualified address, like owner@example.com, not just owner. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/config_list.80000664000000000000000000000433613174122612013361 0ustar .TH CONFIG_LIST 8 2001-03-10 .SH NAME config_list \- Configure a Mailman mailing list from a text file description .SH SYNOPSIS config_list [options] listname .SH DESCRIPTION This is a very powerful script which lets you view and modify a list's configuration variables from the command line. E.g. you can dump out all the list options into a plain text file (actually a valid Python file!), complete with comments explaining each variable. Or you can apply the configuration from such a file to a particular list. .SH OPTIONS .PP .TP \fB\-i\fB \fIfilename\fI, \fB\-\-inputfile\fB=\fIfilename\fI Configure the list by assigning each module-global variable in the file to an attribute on the list object, then saving the list. The named file is loaded with execfile() and must be legal Python code. Any variable that isn't already an attribute of the list object is ignored (a warning message is printed). See also the \-c option. A special variable named `mlist' is put into the globals during the execfile, which is bound to the actual MailList object. This lets you do all manner of bizarre thing to the list object, but BEWARE! Using this can severely (and possibly irreparably) damage your mailing list! .TP \fB\-o\fB \fIfilename\fI, \fB\-\-\fBoutputfile\fB=\fIfilename\fI Instead of configuring the list, print out a list's configuration variables in a format suitable for input using this script. In this way, you can easily capture the configuration settings for a particular list and imprint those settings on another list. filename is the file to output the settings to. If filename is `-', standard out is used. .TP \fB\-c\fB, \fB\-\-checkonly\fB The modified list is not actually changed. Only useful with \-i. .TP \fB\-v\fB, \fB\-\-verbose\fB Print the name of each attribute as it is being changed. Only useful with \-i. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .PP .SH NOTES The options \-o and \-i are mutually exclusive. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/find_member.80000664000000000000000000000302413174122612013321 0ustar .TH FIND_MEMBER 8 2001-03-10 .SH NAME find_member \- Find all Mailman mailing lists that a member's address is on .SH SYNOPSIS find_member [options] regex [regex [...]] .SH OPTIONS .PP .TP \fB\-l\fB \fIlistname\fI, \fB\-\-\fBlistname\fB=\fIlistname\fI Include only the named list in the search. .TP \fB\-x\fB \fIlistname\fI, \fB\-\-\fBexclude\fB=\fIlistname\fI Exclude the named list from the search. .TP \fB\-w\fB, \fB\-\-owners\fB Search list owners as well as members. .TP \fB\-o\fB \fIfile\fI, \fB\-\-\fBoutput\fB=\fIfile\fI Append the alias setting recommendations to file, in addition to printing them to standard output. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .TP \fBregex\fB A Python regular expression to match against. .PP .SH NOTES The interaction between \-l and \-x is as follows. If any \-l option is given then only the named list will be included in the search. If any \-x option is given but no \-l option is given, then all lists will be search except those specifically excluded. Regular expression syntax is Perl5-like, using the Python re module. Complete specifications are at: http://www.python.org/doc/current/lib/module-re.html Address matches are case-insensitive, but case-preserved addresses are displayed. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/list_admins.80000664000000000000000000000134213174122612013361 0ustar .TH LIST_ADMINS 8 2004-03-24 .SH NAME list_admins \- List all the owners of a Mailman mailing list. .SH SYNOPSIS list_admins [options] listname ... .SH OPTIONS .PP .TP \fB\-v\fB=\fIvhost\fI, \fB\-\-\fBall\-vhost\fB=\fIvhost\fI List the owners of all the mailing lists for the given virtual host. .TP \fB\-a\fB, \fB\-\-all\fB List the owners of all the mailing lists on this system. .TP \fB\-h\fB, \fB\-\-help\fB Print a small help text and exit .PP .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written for Debian by Bernd S. Brentrup , but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/manpages/add_members.80000664000000000000000000000323013174122612013313 0ustar .TH ADD_MEMBERS 8 2006-08-09 .SH NAME add_members \- Add members to a Mailman mailing list from the command line. .SH SYNOPSIS add_members [\-r ] [\-d ] [\-y ] [\-w ] [\-h] listname .SH DESCRIPTION Add members from a file to a mailman list. Listname is the name of the Mailman list you are adding members to. It must already exist. .SH OPTIONS .TP \fB\-r\fB \fIfile\fI, \fB\-\-\fBregular-members-file=\fB\fIfile\fI A file containing addresses of the members to be added, one address per line. This list of people become non-digest members. If file is `-', read addresses from stdin. Note that \-n/\-\-non-digest-members-file are deprecated synonyms for this option. .TP \fB\-d\fB \fIfile\fI, \fB\-\-\fBdigest-members-file=\fB\fIfile\fI Similar to above, but these people become digest members. .TP \fB\-a [y|n]\fB, \fB\-\-admin-notify=[y|n]\fB Set whether or not to send the list administrators a notification on the success/failure of these subscriptions, overriding whatever the list's `admin_notify_mchanges' setting is. .TP \fB\-w [y|n]\fB, \fB\-\-welcome-msg=[y|n]\fB Set whether or not to send the list members a welcome message, overriding whatever the list's `send_welcome_msg' setting is. .TP \fB\-h\fB, \fB\-\-help\fB Print a help message and exit. .SH NOTES You must supply at least one of \-r and \-d options. At most one of the files can be `-'. .SH AUTHOR Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen for Debian, but may be used by others. .SH SEE ALSO Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman. debian/mm_cfg.py0000664000000000000000000001036713174122612011000 0ustar # -*- python -*- # Copyright (C) 1998,1999,2000 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 USA """This is the module which takes your site-specific settings. From a raw distribution it should be copied to mm_cfg.py. If you already have an mm_cfg.py, be careful to add in only the new settings you want. The complete set of distributed defaults, with annotation, are in ./Defaults. In mm_cfg, override only those you want to change, after the from Defaults import * line (see below). Note that these are just default settings - many can be overridden via the admin and user interfaces on a per-list or per-user basis. Note also that some of the settings are resolved against the active list setting by using the value as a format string against the list-instance-object's dictionary - see the distributed value of DEFAULT_MSG_FOOTER for an example.""" ####################################################### # Here's where we get the distributed defaults. # from Defaults import * ############################################################## # Put YOUR site-specific configuration below, in mm_cfg.py . # # See Defaults.py for explanations of the values. # #------------------------------------------------------------- # The name of the list Mailman uses to send password reminders # and similar. Don't change if you want mailman-owner to be # a valid local part. MAILMAN_SITE_LIST = 'mailman' #------------------------------------------------------------- # If you change these, you have to configure your http server # accordingly (Alias and ScriptAlias directives in most httpds) DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/' IMAGE_LOGOS = '/images/mailman/' #------------------------------------------------------------- # Default domain for email addresses of newly created MLs DEFAULT_EMAIL_HOST = 'thunderchild.aszi.sztaki.hu' #------------------------------------------------------------- # Default host for web interface of newly created MLs DEFAULT_URL_HOST = 'thunderchild.aszi.sztaki.hu' #------------------------------------------------------------- # Required when setting any of its arguments. add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST) #------------------------------------------------------------- # The default language for this server. DEFAULT_SERVER_LANGUAGE = 'en' #------------------------------------------------------------- # Iirc this was used in pre 2.1, leave it for now USE_ENVELOPE_SENDER = 0 # Still used? #------------------------------------------------------------- # Unset send_reminders on newly created lists DEFAULT_SEND_REMINDERS = 0 #------------------------------------------------------------- # Uncomment this if you configured your MTA such that it # automatically recognizes newly created lists. # (see /usr/share/doc/mailman/README.Exim4.Debian or # /usr/share/mailman/postfix-to-mailman.py) # MTA=None # Misnomer, suppresses alias output on newlist #------------------------------------------------------------- # Uncomment if you use Postfix virtual domains (but not # postfix-to-mailman.py), but be sure to see # /usr/share/doc/mailman/README.Debian first. # MTA='Postfix' #------------------------------------------------------------- # Uncomment if you want to filter mail with SpamAssassin. For # more information please visit this website: # http://www.jamesh.id.au/articles/mailman-spamassassin/ # GLOBAL_PIPELINE.insert(1, 'SpamAssassin') # Note - if you're looking for something that is imported from mm_cfg, but you # didn't find it above, it's probably in /usr/lib/mailman/Mailman/Defaults.py. debian/tests/0000775000000000000000000000000013174122612010331 5ustar debian/tests/control0000664000000000000000000000014313174122612011732 0ustar Tests: mailman Depends: @, apache2-mpm-prefork, elinks, postfix, procmail Restrictions: needs-root debian/tests/mailman0000664000000000000000000000016213174122612011671 0ustar #!/bin/bash #---------------- # Testing mailman #---------------- set -e python `dirname $0`/test-mailman.py 2>&1 debian/tests/test-mailman.py0000664000000000000000000004322613174122612013305 0ustar #!/usr/bin/python # # test-mailman.py quality assurance test script for mailman # Copyright (C) 2010 Canonical Ltd. # Author: Marc Deslauriers # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # packages required for test to run: # QRT-Packages: apache2-mpm-prefork elinks postfix mailman procmail # packages where more than one package can satisfy a runtime requirement: # QRT-Alternates: # files and directories required for the test to run: # QRT-Depends: testlib_httpd.py # privilege required for the test to run (remove line if running as user is okay): # QRT-Privilege: root # QRT-Conflicts: apache2-mpm-event apache2-mpm-itk apache2-mpm-worker exim4 ''' In general, this test should be run in a virtual machine (VM) or possibly a chroot and not on a production machine. While efforts are made to make these tests non-destructive, there is no guarantee this script will not alter the machine. You have been warned. When installing mailman, be sure to install the english language files When postfix installs, select "local only" How to run in a clean VM: $ sudo apt-get -y install python-unit && sudo ./test-mailman.py -v' How to run in a clean schroot named 'lucid': $ schroot -c lucid -u root -- sh -c 'apt-get -y install python-unit && ./test-mailman.py -v' ''' import unittest, subprocess, sys, os, time, smtplib import urllib, urllib2, cookielib, re, tempfile import testlib import testlib_httpd try: from private.qrt.mailman import PrivateMailmanTest except ImportError: class PrivateMailmanTest(object): '''Empty class''' print >>sys.stdout, "Skipping private tests" class MailmanTest(testlib_httpd.HttpdCommon, PrivateMailmanTest): '''Test Mailman.''' def setUp(self): '''Set up prior to each test_* function''' self.mailman_daemon = testlib.TestDaemon("/etc/init.d/mailman") self.mailman_cfg = '/etc/mailman/mm_cfg.py' self.mailman_aliases = '/var/lib/mailman/data/aliases' self.mailman_pid = '/var/run/mailman/mailman.pid' self.postfix_daemon = testlib.TestDaemon("/etc/init.d/postfix") self.postfix_mastercf = '/etc/postfix/master.cf' self.postfix_maincf = '/etc/postfix/main.cf' self.postfix_transport = '/etc/postfix/transportqrt' self.postfix_aliases = '/etc/aliases' self.apache_pid = "/var/run/apache2.pid" self.ports_file = "/etc/apache2/ports.conf" self.default_site = "/etc/apache2/sites-available/default" self.mailman_site = "/etc/apache2/sites-enabled/mailman" self.tempdir = tempfile.mkdtemp() self.cj = cookielib.LWPCookieJar() self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj)) # Make sure daemons are stopped before we begin self.postfix_daemon.stop() self.mailman_daemon.stop() testlib.config_replace(self.mailman_aliases, "", append=True) testlib.config_set(self.mailman_cfg,'MTA',"'Postfix'") subprocess.call(['/usr/lib/mailman/bin/genaliases'], stdout=subprocess.PIPE) subprocess.call(['chown', 'root:list', self.mailman_aliases]) # Is this a packaging mistake? subprocess.call(['chown', 'list:list', '/var/lib/mailman/archives/private']) self._zap_lists() subprocess.call(['/usr/sbin/newlist', '-q', 'mailman@lists.example.com', 'root@example.com' ,'ubuntu'], stdout=subprocess.PIPE) self._setUp_postfix() self._setUp_apache() self.mailman_daemon.restart() self.user = testlib.TestUser(lower=True) self.s = None # Silently allow for this connection to fail, to handle the # initial setup of the postfix server. try: self.s = smtplib.SMTP('localhost', port=25) except: pass def tearDown(self): '''Clean up after each test_* function''' try: self.s.quit() except: pass self.user = None self._zap_lists() if os.path.exists(self.tempdir): testlib.recursive_rm(self.tempdir) testlib.config_restore(self.mailman_cfg) testlib.config_restore(self.mailman_aliases) self._tearDown_postfix() self._tearDown_apache() self.mailman_daemon.stop() def _zap_lists(self): '''Remove existing mailman lists.''' if os.path.exists('/var/lib/mailman/lists/testlist'): subprocess.call(['/usr/sbin/rmlist', '-a', 'testlist'], stdout=subprocess.PIPE) if os.path.exists('/var/lib/mailman/lists/mailman'): subprocess.call(['/usr/sbin/rmlist', '-a', 'mailman'], stdout=subprocess.PIPE) def _setUp_postfix(self): '''Create Postfix server configs.''' testlib.config_replace(self.postfix_mastercf, "", append=True) testlib.config_set(self.postfix_maincf,'mydestination','example.com, localhost.localdomain, localhost') # Move listener to localhost:25 master = open('/etc/postfix/master.cf.new','w') for cfline in open(self.postfix_mastercf): if cfline.startswith('smtp') and 'smtpd' in cfline and 'inet' in cfline: master.write('127.0.0.1:25 inet n - - - - smtpd\n') else: master.write(cfline) master.write('''mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}''') master.close() os.rename('/etc/postfix/master.cf.new',self.postfix_mastercf) # Use mbox only testlib.config_comment(self.postfix_maincf,'home_mailbox') testlib.config_set(self.postfix_maincf,'mailbox_command','procmail -a "$EXTENSION"') # Config mailman testlib.config_set(self.postfix_maincf,'relay_domains','lists.example.com') testlib.config_set(self.postfix_maincf,'transport_maps','hash:%s' % self.postfix_transport) testlib.config_set(self.postfix_maincf,'mailman_destination_recipient_limit','1') testlib.config_set(self.postfix_maincf,'alias_maps','hash:%s, hash:%s' % (self.postfix_aliases,self.mailman_aliases)) testlib.config_replace(self.postfix_transport, "lists.example.com mailman:") subprocess.call(['postmap', self.postfix_transport], stdout=subprocess.PIPE) testlib.config_replace(self.postfix_aliases, '''mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"''', append=True) subprocess.call(['chown', 'root:list', self.postfix_aliases]) subprocess.call(['newaliases']) # Restart server self.postfix_daemon.restart() # Postfix exits its init script before the master listener has started time.sleep(2) def _tearDown_postfix(self): '''Tear down Postfix''' self.postfix_daemon.stop() testlib.config_restore(self.postfix_mastercf) testlib.config_restore(self.postfix_maincf) testlib.config_restore(self.postfix_aliases) subprocess.call(['chown', 'root:root', self.postfix_aliases]) if os.path.exists(self.postfix_transport): os.unlink(self.postfix_transport) if os.path.exists(self.postfix_transport + ".db"): os.unlink(self.postfix_transport + ".db") def _setUp_apache(self): '''Set up Apache''' # Change the default port, so we can run in a schroot testlib.config_replace(self.ports_file, "", append=True) subprocess.call(['sed', '-i', 's/80/8000/g', self.ports_file]) testlib.config_replace(self.default_site, "", append=True) subprocess.call(['sed', '-i', 's/80/8000/g', self.default_site]) if os.path.exists(self.mailman_site): os.unlink(self.mailman_site) if self.lsb_release['Release'] == 6.06: self._dapper_apache_conf() else: os.symlink("/etc/mailman/apache.conf", self.mailman_site) testlib_httpd.HttpdCommon._setUp(self) def _tearDown_apache(self): '''Tear down Apache''' if os.path.exists(self.mailman_site): os.unlink(self.mailman_site) testlib.config_restore(self.ports_file) testlib.config_restore(self.default_site) testlib_httpd.HttpdCommon._tearDown(self) def _dapper_apache_conf(self): '''Create an example apache conf file for Dapper.''' conf_file = open(self.mailman_site,'w') conf_file.write('''ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/ Alias /pipermail/ /var/lib/mailman/archives/public/ Alias /images/mailman/ /usr/share/images/mailman/ AllowOverride None Options ExecCGI AddHandler cgi-script .cgi Order allow,deny Allow from all Options Indexes FollowSymlinks AllowOverride None Order allow,deny Allow from all AllowOverride None Order allow,deny Allow from all ''') conf_file.close() def _deliver_email(self, from_addr, to_addr, body): '''Perform mail delivery''' result = self.s.sendmail(from_addr, to_addr, body) def _check_email(self, user, pattern, timeout=30): '''Get mailman confirmation email''' re_pattern = re.compile(pattern) spool_file = '/var/mail/%s' % (user.login) result = None contents = '' while timeout > 0: if os.path.exists(spool_file): contents = open(spool_file).read() result = re_pattern.search(contents) if result != None: break time.sleep(1) timeout -= 1 self.assertTrue(timeout > 0, "Reached timeout searching for pattern in '%s'" % contents) return result def _get_confirmation(self, user): '''Get mailman confirmation email''' pattern = 'confirm (\w+)\n' result = self._check_email(user, pattern) return result.group(1) def _test_roundtrip_mail(self, user): '''Send and check email delivery''' body = '''From: Rooty To: "%s" <%s@example.com> Subject: This is test 1 Hello, nice to meet you. ''' % (user.gecos, user.login) self._deliver_email('root', user.login + '@example.com', body) pattern = "Subject: This is test 1" self._check_email(user, pattern) def test_aaa_daemons(self): '''Test daemon''' self.assertTrue(testlib.check_pidfile("apache2", self.apache_pid)) self.assertTrue(testlib.check_pidfile("python", self.mailman_pid)) def test_aaa_status(self): '''Test status (apache2ctl)''' rc, report = testlib.cmd(['apache2ctl', 'status']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) def test_aab_http(self): '''Test http''' self._test_url("http://localhost:8000/") test_str = testlib_httpd.create_html_page(self.html_page) self._test_url("http://localhost:8000/" + \ os.path.basename(self.html_page), test_str) self._test_url("http://localhost:8000/cgi-bin/mailman/listinfo/mailman", "About Mailman") def test_aac_sending_mail_direct(self): '''Test postfix mail delivery''' self._test_roundtrip_mail(self.user) def test_baa_mailman_subscribe(self): '''Test mailman subscription''' password = "Ubuntu" # Try and subscribe to the Mailman list values = { 'email': self.user.login + "@example.com", 'pw': password, 'pw-conf': password, } data = urllib.urlencode(values) req = urllib2.Request('http://localhost:8000/cgi-bin/mailman/subscribe/mailman', data) result = self.opener.open(req).read() self.assertTrue('Mailman Subscription results' in result, result) # Parse the confirmation email conf = self._get_confirmation(self.user) # Now let's confirm via the web page values = { 'cookie': conf, 'realname': '', 'digests': '0', 'language': 'en', 'submit': 'Subscribe to list Mailman', } data = urllib.urlencode(values) req = urllib2.Request('http://localhost:8000/cgi-bin/mailman/confirm/mailman', data) result = self.opener.open(req).read() self.assertTrue('successfully confirmed your subscription request' in result, result) # Send an email to the list body = '''From: "%s" <%s@example.com> To: "Mailman list" Subject: This is mailman test Yay! My first post. Ubuntu rocks! ''' % (self.user.gecos, self.user.login) self._deliver_email(self.user.login + '@example.com', 'mailman@lists.example.com', body) # See if it was delivered pattern = "Ubuntu rocks" self._check_email(self.user, pattern) def test_cve_2010_3089(self): '''Test CVE-2010-3089''' tempconf = os.path.join(self.tempdir, 'templist-config') # Create a test list and insert XSS into description subprocess.call(['/usr/sbin/newlist', '-q', 'testlist@lists.example.com', 'root@example.com' ,'ubuntu'], stdout=subprocess.PIPE) subprocess.call(['/usr/sbin/config_list', '-o', tempconf, 'testlist'], stdout=subprocess.PIPE) testlib.config_set(tempconf,'description',"''") subprocess.call(['/usr/sbin/config_list', '-i', tempconf, 'testlist'], stdout=subprocess.PIPE) request = "GET /cgi-bin/mailman/listinfo/testlist HTTP/1.1\nHost: localhost\nConnection: close\n\n" self._test_raw(request, '', port=8000, invert=True) self._test_raw(request, '<XSSTEST>', port=8000) def test_cve_2011_0707(self): '''Test CVE-2011-0707''' password = "Ubuntu" # Try and subscribe to the Mailman list values = { 'email': self.user.login + "@example.com", 'realname': '', 'pw': password, 'pw-conf': password, } data = urllib.urlencode(values) req = urllib2.Request('http://localhost:8000/cgi-bin/mailman/subscribe/mailman', data) result = self.opener.open(req).read() self.assertTrue('Mailman Subscription results' in result, result) # Parse the confirmation email conf = self._get_confirmation(self.user) # Now let's confirm via the web page values = { 'cookie': conf, 'realname': '', 'digests': '0', 'language': 'en', 'submit': 'Subscribe to list Mailman', } data = urllib.urlencode(values) req = urllib2.Request('http://localhost:8000/cgi-bin/mailman/confirm/mailman', data) result = self.opener.open(req).read() self.assertTrue('successfully confirmed your subscription request' in result, result) # Kill email so we can parse the new confirmation string subprocess.call(['rm','-rf', '/var/mail/'+self.user.login]) # Look at the unsubscribe page values = { 'email': self.user.login + "@example.com", 'password': password, 'language': 'en', 'login-unsub': 'Unsubscribe', } data = urllib.urlencode(values) req = urllib2.Request('http://localhost:8000/cgi-bin/mailman/options/mailman', data) result = self.opener.open(req).read() # Parse the confirmation email conf = self._get_confirmation(self.user) # Now let's confirm via the web page values = { 'cookie': conf, 'email': self.user.login + "@example.com", 'password': password, 'language': 'en', } data = urllib.urlencode(values) req = urllib2.Request('http://localhost:8000/cgi-bin/mailman/confirm/mailman', data) result = self.opener.open(req).read() self._word_find(result, '', invert=True) self._word_find(result, '<XSSTEST>') if __name__ == '__main__': # simple unittest.main() # more configurable #suite = unittest.TestSuite() #suite.addTest(unittest.TestLoader().loadTestsFromTestCase(PkgTest)) #rc = unittest.TextTestRunner(verbosity=2).run(suite) #if not rc.wasSuccessful(): # sys.exit(1) debian/tests/testlib_httpd.py0000664000000000000000000002744513174122612013570 0ustar #!/usr/bin/python # # testlib_httpd.py quality assurance test script # Copyright (C) 2008-2013 Canonical Ltd. # Author: Jamie Strandboge # Author: Marc Deslauriers # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, # as published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # import unittest, subprocess import os import sys import tempfile import testlib import time import socket import shutil import cookielib import urllib2 import re import base64 class HttpdCommon(testlib.TestlibCase): '''Common functions''' def _setUp(self, clearlogs = False): '''Setup''' self.release = self.lsb_release['Codename'] self.html_page = "/var/www/test.html" self.php_page = "/var/www/test.php" self.cgi_page = "/usr/lib/cgi-bin/test-cgi.pl" self.apache2_default = "/etc/default/apache2" self.ssl_key = "/etc/ssl/private/server.key" self.ssl_crt = "/etc/ssl/certs/server.crt" self.ssl_site = "/etc/apache2/sites-enabled/999-testlib" self.ports_file = "/etc/apache2/ports.conf" self.access_log = "/var/log/apache2/access.log" self.error_log = "/var/log/apache2/error.log" if not hasattr(self, 'initscript'): self._set_initscript("/etc/init.d/apache2") # Dapper's apache2 is disabled by default if self.lsb_release['Release'] == 6.06: testlib.config_replace(self.apache2_default, "", append=True) subprocess.call(['sed', '-i', 's/NO_START=1/NO_START=0/', self.apache2_default]) self._stop() if clearlogs == True: self._clearlogs() self._start() def _set_initscript(self, initscript): self.initscript = initscript def _tearDown(self): '''Clean up after each test_* function''' self._stop() time.sleep(2) if os.path.exists(self.html_page): os.unlink(self.html_page) if os.path.exists(self.php_page): os.unlink(self.php_page) if os.path.exists(self.cgi_page): os.unlink(self.cgi_page) if os.path.exists(self.ssl_key): os.unlink(self.ssl_key) if os.path.exists(self.ssl_crt): os.unlink(self.ssl_crt) if os.path.exists(self.ssl_site): os.unlink(self.ssl_site) self._disable_mod("ssl") testlib.config_restore(self.ports_file) testlib.config_restore(self.apache2_default) def _start(self): '''Start httpd''' #print self.initscript,"start" rc, report = testlib.cmd([self.initscript, 'start']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) time.sleep(2) def _stop(self): '''Stop httpd''' #print self.initscript,"stop" rc, report = testlib.cmd([self.initscript, 'stop']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) def _clearlogs(self): '''Clear httpd logs''' if os.path.exists(self.access_log): os.unlink(self.access_log) if os.path.exists(self.error_log): os.unlink(self.error_log) def __disable_mod(self, mod): if not os.path.exists(os.path.join("/etc/apache2/mods-available", mod + \ ".load")): return if not os.path.exists("/usr/sbin/a2dismod"): return rc, report = testlib.cmd(['a2dismod', mod]) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) def _disable_mod(self, mod): self.__disable_mod(mod) self._restart() time.sleep(2) def _disable_mods(self, mods): '''take a list of modules to disable''' for mod in mods: self.__disable_mod(mod) self._restart() time.sleep(2) def __enable_mod(self, mod): rc, report = testlib.cmd(['a2enmod', mod]) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) def _enable_mod(self, mod): self.__enable_mod(mod) # for some reason, force-reload doesn't work # if self.lsb_release['Release'] >= 8.04: # self._reload() # else: self._restart() time.sleep(2) def _enable_mods(self, mods): '''take a list of modules to enable''' for mod in mods: self.__enable_mod(mod) # for some reason, force-reload doesn't work # if self.lsb_release['Release'] >= 8.04: # self._reload() # else: self._restart() time.sleep(2) def _disable_site(self, sitename): rc, report = testlib.cmd(['a2dissite', sitename]) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) self._restart() time.sleep(2) def _enable_site(self, sitename): rc, report = testlib.cmd(['a2ensite', sitename]) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) # for some reason, force-reload doesn't work # if self.lsb_release['Release'] >= 8.04: # self._reload() #else: self._restart() time.sleep(2) def _reload(self): '''Reload httpd''' rc, report = testlib.cmd([self.initscript, 'force-reload']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) def _restart(self): '''Restart httpd''' self._stop() self._start() def _prepare_ssl(self, srvkey, srvcert): '''Prepare Apache for ssl connections''' self._enable_mod("ssl") # copy instead of rename so we don't get invalid cross-device link errors shutil.copy(srvkey, self.ssl_key) shutil.copy(srvcert, self.ssl_crt) if self.lsb_release['Release'] <= 7.04: testlib.config_replace(self.ports_file, "Listen 443", True) # create the conffile entry site_contents = ''' NameVirtualHost *:443 SSLEngine on SSLOptions +StrictRequire SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key ServerAdmin webmaster@localhost DocumentRoot /var/www/ ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On ''' testlib.create_fill(self.ssl_site, site_contents) self._reload() def _test_url_proxy(self, url="http://localhost/", content="", proxy="localhost:3128"): '''Test the given url''' rc, report = testlib.cmd(['elinks', '-verbose', '2', '-no-home', '1', '-eval', 'set protocol.ftp.proxy.host = "%s"' %(proxy), '-eval', 'set protocol.http.proxy.host = "%s"' %(proxy), '-eval', 'set protocol.https.proxy.host = "%s"' %(proxy), '-dump', url]) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) if content != "": self._word_find(report, content) def _test_url(self, url="http://localhost/", content="", invert=False, source=False): '''Test the given url''' if source: report = self._get_page_source(url) else: report = self._get_page(url) if content != "": self._word_find(report, content, invert) def _get_page_source(self, url="http://localhost/", data='', headers=None): '''Fetch html source''' cookies = "/tmp/cookies.lwp" testlib.create_fill(cookies, "#LWP-Cookies-2.0") if headers == None: headers = {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'} clean_url = url if re.search(r'http(|s)://.*:.*@[a-z].*', url): tmp = re.sub(r'^http(|s)://', '', url) username = tmp.split('@')[0].split(':')[0] password = tmp.split('@')[0].split(':')[1] base64_str = base64.encodestring('%s:%s' % (username, password))[:-1] headers['Authorization'] = "Basic %s" % (base64_str) # strip out the username and password from the url clean_url = re.sub(r'%s:%s@' % (username, password), '', url) cj = cookielib.LWPCookieJar(filename=cookies) cj.load() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) urllib2.install_opener(opener) try: if data != '': req = urllib2.Request(clean_url, data, headers) else: req = urllib2.Request(clean_url, headers=headers) except: raise tries = 0 failed = True while tries < 3: try: handle = urllib2.urlopen(req) failed = False break except urllib2.HTTPError, e: raise if e.code != 503: # for debugging #print >>sys.stderr, 'Error retrieving page "url=%s", "data=%s"' % (url, data) raise tries += 1 time.sleep(2) self.assertFalse(failed, 'Could not retrieve page "url=%s", "data=%s"' % (url, data)) html = handle.read() cj.save() return html def _get_page(self, url="http://localhost/"): '''Get contents of given url''' rc, report = testlib.cmd(['elinks', '-verbose', '2', '-no-home', '1', '-dump', url]) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) return report def _test_raw(self, request="", content="", host="localhost", port=80, invert = False, limit=1024): '''Test the given url with a raw socket to include headers''' s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((host, port)) s.send(request) data = s.recv(limit) s.close() if content != "": self._word_find(data, content, invert = invert) def create_php_page(page, php_content=None): '''Create a basic php page''' # complexity here is due to maintaining interface compatability when # php_content is not provided if not php_content: str = "php works" php_content = "echo '" + str + "'; " else: str = php_content script = '''''' %(php_content) testlib.create_fill(page, script) return str def create_perl_script(page): '''Create a basic perl script''' str = "perl works" script = '''#!/usr/bin/perl print "Content-Type: text/plain\\n\\n"; print "''' + str + '''\\n"; ''' testlib.create_fill(page, script, 0755) return str def create_html_page(page): '''Create html page''' str = "html works" testlib.create_fill(page, "" + str + "") return str debian/tests/testlib.py0000664000000000000000000011534213174122612012357 0ustar # # testlib.py quality assurance test script # Copyright (C) 2008-2011 Canonical Ltd. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Library General Public # License as published by the Free Software Foundation; either # version 2 of the License. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Library General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this program. If not, see # . # '''Common classes and functions for package tests.''' import string, random, crypt, subprocess, pwd, grp, signal, time, unittest, tempfile, shutil, os, os.path, re, glob import sys, socket, gzip from stat import * from encodings import string_escape import warnings warnings.filterwarnings('ignore', message=r'.*apt_pkg\.TagFile.*', category=DeprecationWarning) try: import apt_pkg apt_pkg.InitSystem(); except: # On non-Debian system, fall back to simple comparison without debianisms class apt_pkg(object): def VersionCompare(one, two): list_one = one.split('.') list_two = two.split('.') while len(list_one)>0 and len(list_two)>0: if list_one[0] > list_two[0]: return 1 if list_one[0] < list_two[0]: return -1 list_one.pop(0) list_two.pop(0) return 0 bogus_nxdomain = "208.69.32.132" # http://www.chiark.greenend.org.uk/ucgi/~cjwatson/blosxom/2009-07-02-python-sigpipe.html # This is needed so that the subprocesses that produce endless output # actually quit when the reader goes away. import signal def subprocess_setup(): # Python installs a SIGPIPE handler by default. This is usually not what # non-Python subprocesses expect. signal.signal(signal.SIGPIPE, signal.SIG_DFL) class TimedOutException(Exception): def __init__(self, value = "Timed Out"): self.value = value def __str__(self): return repr(self.value) def _restore_backup(path): pathbackup = path + '.autotest' if os.path.exists(pathbackup): shutil.move(pathbackup, path) def _save_backup(path): pathbackup = path + '.autotest' if os.path.exists(path) and not os.path.exists(pathbackup): shutil.copy2(path, pathbackup) # copy2 does not copy ownership, so do it here. # Reference: http://docs.python.org/library/shutil.html a = os.stat(path) os.chown(pathbackup, a[4], a[5]) def config_copydir(path): if os.path.exists(path) and not os.path.isdir(path): raise OSError, "'%s' is not a directory" % (path) _restore_backup(path) pathbackup = path + '.autotest' if os.path.exists(path): shutil.copytree(path, pathbackup, symlinks=True) def config_replace(path,contents,append=False): '''Replace (or append) to a config file''' _restore_backup(path) if os.path.exists(path): _save_backup(path) if append: contents = file(path).read() + contents open(path, 'w').write(contents) def config_comment(path, field): _save_backup(path) contents = "" for line in file(path): if re.search("^\s*%s\s*=" % (field), line): line = "#" + line contents += line open(path+'.new', 'w').write(contents) os.rename(path+'.new', path) def config_set(path, field, value, spaces=True): _save_backup(path) contents = "" if spaces==True: setting = '%s = %s\n' % (field, value) else: setting = '%s=%s\n' % (field, value) found = False for line in file(path): if re.search("^\s*%s\s*=" % (field), line): found = True line = setting contents += line if not found: contents += setting open(path+'.new', 'w').write(contents) os.rename(path+'.new', path) def config_patch(path, patch, depth=1): '''Patch a config file''' _restore_backup(path) _save_backup(path) handle, name = mkstemp_fill(patch) rc = subprocess.call(['/usr/bin/patch', '-p%s' %(depth), path], stdin=handle, stdout=subprocess.PIPE) os.unlink(name) if rc != 0: raise Exception("Patch failed") def config_restore(path): '''Rename a replaced config file back to its initial state''' _restore_backup(path) def timeout(secs, f, *args): def handler(signum, frame): raise TimedOutException() old = signal.signal(signal.SIGALRM, handler) result = None signal.alarm(secs) try: result = f(*args) finally: signal.alarm(0) signal.signal(signal.SIGALRM, old) return result def require_nonroot(): if os.geteuid() == 0: print >>sys.stderr, "This series of tests should be run as a regular user with sudo access, not as root." sys.exit(1) def require_root(): if os.geteuid() != 0: print >>sys.stderr, "This series of tests should be run with root privileges (e.g. via sudo)." sys.exit(1) def require_sudo(): if os.geteuid() != 0 or os.environ.get('SUDO_USER', None) == None: print >>sys.stderr, "This series of tests must be run under sudo." sys.exit(1) if os.environ['SUDO_USER'] == 'root': print >>sys.stderr, 'Please run this test using sudo from a regular user. (You ran sudo from root.)' sys.exit(1) def random_string(length,lower=False): '''Return a random string, consisting of ASCII letters, with given length.''' s = '' selection = string.letters if lower: selection = string.lowercase maxind = len(selection)-1 for l in range(length): s += selection[random.randint(0, maxind)] return s def mkstemp_fill(contents,suffix='',prefix='testlib-',dir=None): '''As tempfile.mkstemp does, return a (file, name) pair, but with prefilled contents.''' handle, name = tempfile.mkstemp(suffix=suffix,prefix=prefix,dir=dir) os.close(handle) handle = file(name,"w+") handle.write(contents) handle.flush() handle.seek(0) return handle, name def create_fill(path, contents, mode=0644): '''Safely create a page''' # make the temp file in the same dir as the destination file so we # don't get invalid cross-device link errors when we rename handle, name = mkstemp_fill(contents, dir=os.path.dirname(path)) handle.close() os.rename(name, path) os.chmod(path, mode) def login_exists(login): '''Checks whether the given login exists on the system.''' try: pwd.getpwnam(login) return True except KeyError: return False def group_exists(group): '''Checks whether the given login exists on the system.''' try: grp.getgrnam(group) return True except KeyError: return False def recursive_rm(dirPath, contents_only=False): '''recursively remove directory''' names = os.listdir(dirPath) for name in names: path = os.path.join(dirPath, name) if os.path.islink(path) or not os.path.isdir(path): os.unlink(path) else: recursive_rm(path) if contents_only == False: os.rmdir(dirPath) def check_pidfile(exe, pidfile): '''Checks if pid in pidfile is running''' if not os.path.exists(pidfile): return False # get the pid try: fd = open(pidfile, 'r') pid = fd.readline().rstrip('\n') fd.close() except: return False return check_pid(exe, pid) def check_pid(exe, pid): '''Checks if pid is running''' cmdline = "/proc/%s/cmdline" % (str(pid)) if not os.path.exists(cmdline): return False # get the command line try: fd = open(cmdline, 'r') tmp = fd.readline().split('\0') fd.close() except: return False # this allows us to match absolute paths or just the executable name if re.match('^' + exe + '$', tmp[0]) or \ re.match('.*/' + exe + '$', tmp[0]) or \ re.match('^' + exe + ': ', tmp[0]) or \ re.match('^\(' + exe + '\)', tmp[0]): return True return False def check_port(port, proto, ver=4): '''Check if something is listening on the specified port. WARNING: for some reason this does not work with a bind mounted /proc ''' assert (port >= 1) assert (port <= 65535) assert (proto.lower() == "tcp" or proto.lower() == "udp") assert (ver == 4 or ver == 6) fn = "/proc/net/%s" % (proto) if ver == 6: fn += str(ver) rc, report = cmd(['cat', fn]) assert (rc == 0) hport = "%0.4x" % port if re.search(': [0-9a-f]{8}:%s [0-9a-f]' % str(hport).lower(), report.lower()): return True return False def get_arch(): '''Get the current architecture''' rc, report = cmd(['uname', '-m']) assert (rc == 0) return report.strip() def get_memory(): '''Gets total ram and swap''' meminfo = "/proc/meminfo" memtotal = 0 swaptotal = 0 if not os.path.exists(meminfo): return (False, False) try: fd = open(meminfo, 'r') for line in fd.readlines(): splitline = line.split() if splitline[0] == 'MemTotal:': memtotal = int(splitline[1]) elif splitline[0] == 'SwapTotal:': swaptotal = int(splitline[1]) fd.close() except: return (False, False) return (memtotal,swaptotal) def is_running_in_vm(): '''Check if running under a VM''' # add other virtualization environments here for search in ['QEMU Virtual CPU']: rc, report = cmd_pipe(['dmesg'], ['grep', search]) if rc == 0: return True return False def ubuntu_release(): '''Get the Ubuntu release''' f = "/etc/lsb-release" try: size = os.stat(f)[ST_SIZE] except: return "UNKNOWN" if size > 1024*1024: raise IOError, 'Could not open "%s" (too big)' % f try: fh = open("/etc/lsb-release", 'r') except: raise lines = fh.readlines() fh.close() pat = re.compile(r'DISTRIB_CODENAME') for line in lines: if pat.search(line): return line.split('=')[1].rstrip('\n').rstrip('\r') return "UNKNOWN" def cmd(command, input = None, stderr = subprocess.STDOUT, stdout = subprocess.PIPE, stdin = None, timeout = None): '''Try to execute given command (array) and return its stdout, or return a textual error if it failed.''' try: sp = subprocess.Popen(command, stdin=stdin, stdout=stdout, stderr=stderr, close_fds=True, preexec_fn=subprocess_setup) except OSError, e: return [127, str(e)] out, outerr = sp.communicate(input) # Handle redirection of stdout if out == None: out = '' # Handle redirection of stderr if outerr == None: outerr = '' return [sp.returncode,out+outerr] def cmd_pipe(command1, command2, input = None, stderr = subprocess.STDOUT, stdin = None): '''Try to pipe command1 into command2.''' try: sp1 = subprocess.Popen(command1, stdin=stdin, stdout=subprocess.PIPE, stderr=stderr, close_fds=True) sp2 = subprocess.Popen(command2, stdin=sp1.stdout, stdout=subprocess.PIPE, stderr=stderr, close_fds=True) except OSError, e: return [127, str(e)] out = sp2.communicate(input)[0] return [sp2.returncode,out] def cwd_has_enough_space(cdir, total_bytes): '''Determine if the partition of the current working directory has 'bytes' free.''' rc, df_output = cmd(['df']) result = 'Got exit code %d, expected %d\n' % (rc, 0) if rc != 0: return False kb = total_bytes / 1024 mounts = dict() for line in df_output.splitlines(): if '/' not in line: continue tmp = line.split() mounts[tmp[5]] = int(tmp[3]) cdir = os.getcwd() while cdir != '/': if not mounts.has_key(cdir): cdir = os.path.dirname(cdir) continue if kb < mounts[cdir]: return True else: return False if kb < mounts['/']: return True return False def get_md5(filename): '''Gets the md5sum of the file specified''' (rc, report) = cmd(["/usr/bin/md5sum", "-b", filename]) expected = 0 assert (expected == rc) return report.split(' ')[0] def dpkg_compare_installed_version(pkg, check, version): '''Gets the version for the installed package, and compares it to the specified version. ''' (rc, report) = cmd(["/usr/bin/dpkg", "-s", pkg]) assert (rc == 0) assert ("Status: install ok installed" in report) installed_version = "" for line in report.splitlines(): if line.startswith("Version: "): installed_version = line.split()[1] assert (installed_version != "") (rc, report) = cmd(["/usr/bin/dpkg", "--compare-versions", installed_version, check, version]) assert (rc == 0 or rc == 1) if rc == 0: return True return False def prepare_source(source, builder, cached_src, build_src, patch_system): '''Download and unpack source package, installing necessary build depends, adjusting the permissions for the 'builder' user, and returning the directory of the unpacked source. Patch system can be one of: - cdbs - dpatch - quilt - quiltv3 - None (not the string) This is normally used like this: def setUp(self): ... self.topdir = os.getcwd() self.cached_src = os.path.join(os.getcwd(), "source") self.tmpdir = tempfile.mkdtemp(prefix='testlib', dir='/tmp') self.builder = testlib.TestUser() testlib.cmd(['chgrp', self.builder.login, self.tmpdir]) os.chmod(self.tmpdir, 0775) def tearDown(self): ... self.builder = None self.topdir = os.getcwd() if os.path.exists(self.tmpdir): testlib.recursive_rm(self.tmpdir) def test_suite_build(self): ... build_dir = testlib.prepare_source('foo', \ self.builder, \ self.cached_src, \ os.path.join(self.tmpdir, \ os.path.basename(self.cached_src)), "quilt") os.chdir(build_dir) # Example for typical build, adjust as necessary print "" print " make clean" rc, report = testlib.cmd(['sudo', '-u', self.builder.login, 'make', 'clean']) print " configure" rc, report = testlib.cmd(['sudo', '-u', self.builder.login, './configure', '--prefix=%s' % self.tmpdir, '--enable-debug']) print " make (will take a while)" rc, report = testlib.cmd(['sudo', '-u', self.builder.login, 'make']) print " make check (will take a while)", rc, report = testlib.cmd(['sudo', '-u', self.builder.login, 'make', 'check']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) def test_suite_cleanup(self): ... if os.path.exists(self.cached_src): testlib.recursive_rm(self.cached_src) It is up to the caller to clean up cached_src and build_src (as in the above example, often the build_src is in a tmpdir that is cleaned in tearDown() and the cached_src is cleaned in a one time clean-up operation (eg 'test_suite_cleanup()) which must be run after the build suite test (obviously). ''' # Make sure we have a clean slate assert (os.path.exists(os.path.dirname(build_src))) assert (not os.path.exists(build_src)) cdir = os.getcwd() if os.path.exists(cached_src): shutil.copytree(cached_src, build_src) os.chdir(build_src) else: # Only install the build dependencies on the initial setup rc, report = cmd(['apt-get','-y','--force-yes','build-dep',source]) assert (rc == 0) os.makedirs(build_src) os.chdir(build_src) # These are always needed pkgs = ['build-essential', 'dpkg-dev', 'fakeroot'] rc, report = cmd(['apt-get','-y','--force-yes','install'] + pkgs) assert (rc == 0) rc, report = cmd(['apt-get','source',source]) assert (rc == 0) shutil.copytree(build_src, cached_src) unpacked_dir = os.path.join(build_src, glob.glob('%s-*' % source)[0]) # Now apply the patches. Do it here so that we don't mess up our cached # sources. os.chdir(unpacked_dir) assert (patch_system in ['cdbs', 'dpatch', 'quilt', 'quiltv3', None]) if patch_system != None and patch_system != "quiltv3": if patch_system == "quilt": os.environ.setdefault('QUILT_PATCHES','debian/patches') rc, report = cmd(['quilt', 'push', '-a']) assert (rc == 0) elif patch_system == "cdbs": rc, report = cmd(['./debian/rules', 'apply-patches']) assert (rc == 0) elif patch_system == "dpatch": rc, report = cmd(['dpatch', 'apply-all']) assert (rc == 0) cmd(['chown', '-R', '%s:%s' % (builder.uid, builder.gid), build_src]) os.chdir(cdir) return unpacked_dir def _aa_status(): '''Get aa-status output''' exe = "/usr/sbin/aa-status" assert (os.path.exists(exe)) if os.geteuid() == 0: return cmd([exe]) return cmd(['sudo', exe]) def is_apparmor_loaded(path): '''Check if profile is loaded''' rc, report = _aa_status() if rc != 0: return False for line in report.splitlines(): if line.endswith(path): return True return False def is_apparmor_confined(path): '''Check if application is confined''' rc, report = _aa_status() if rc != 0: return False for line in report.splitlines(): if re.search('%s \(' % path, line): return True return False def check_apparmor(path, first_ubuntu_release, is_running=True): '''Check if path is loaded and confined for everything higher than the first Ubuntu release specified. Usage: rc, report = testlib.check_apparmor('/usr/sbin/foo', 8.04, is_running=True) if rc < 0: return self._skipped(report) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, result + report) ''' global manager rc = -1 if manager.lsb_release["Release"] < first_ubuntu_release: return (rc, "Skipped apparmor check") if not os.path.exists('/sbin/apparmor_parser'): return (rc, "Skipped (couldn't find apparmor_parser)") rc = 0 msg = "" if not is_apparmor_loaded(path): rc = 1 msg = "Profile not loaded for '%s'" % path # this check only makes sense it the 'path' is currently executing if is_running and rc == 0 and not is_apparmor_confined(path): rc = 1 msg = "'%s' is not running in enforce mode" % path return (rc, msg) def get_gcc_version(gcc, full=True): gcc_version = 'none' if not gcc.startswith('/'): gcc = '/usr/bin/%s' % (gcc) if os.path.exists(gcc): gcc_version = 'unknown' lines = cmd([gcc,'-v'])[1].strip().splitlines() version_lines = [x for x in lines if x.startswith('gcc version')] if len(version_lines) == 1: gcc_version = " ".join(version_lines[0].split()[2:]) if not full: return gcc_version.split()[0] return gcc_version def is_kdeinit_running(): '''Test if kdeinit is running''' # applications that use kdeinit will spawn it if it isn't running in the # test. This is a problem because it does not exit. This is a helper to # check for it. rc, report = cmd(['ps', 'x']) if 'kdeinit4 Running' not in report: print >>sys.stderr, ("kdeinit not running (you may start/stop any KDE application then run this script again)") return False return True def get_pkgconfig_flags(libs=[]): '''Find pkg-config flags for libraries''' assert (len(libs) > 0) rc, pkg_config = cmd(['pkg-config', '--cflags', '--libs'] + libs) expected = 0 if rc != expected: print >>sys.stderr, 'Got exit code %d, expected %d\n' % (rc, expected) assert(rc == expected) return pkg_config.split() class TestDaemon: '''Helper class to manage daemons consistently''' def __init__(self, init): '''Setup daemon attributes''' self.initscript = init def start(self): '''Start daemon''' rc, report = cmd([self.initscript, 'start']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) time.sleep(2) if expected != rc: return (False, result + report) if "fail" in report: return (False, "Found 'fail' in report\n" + report) return (True, "") def stop(self): '''Stop daemon''' rc, report = cmd([self.initscript, 'stop']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) if expected != rc: return (False, result + report) if "fail" in report: return (False, "Found 'fail' in report\n" + report) return (True, "") def reload(self): '''Reload daemon''' rc, report = cmd([self.initscript, 'force-reload']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) if expected != rc: return (False, result + report) if "fail" in report: return (False, "Found 'fail' in report\n" + report) return (True, "") def restart(self): '''Restart daemon''' (res, str) = self.stop() if not res: return (res, str) (res, str) = self.start() if not res: return (res, str) return (True, "") def status(self): '''Check daemon status''' rc, report = cmd([self.initscript, 'status']) expected = 0 result = 'Got exit code %d, expected %d\n' % (rc, expected) if expected != rc: return (False, result + report) if "fail" in report: return (False, "Found 'fail' in report\n" + report) return (True, "") class TestlibManager(object): '''Singleton class used to set up per-test-run information''' def __init__(self): # Set glibc aborts to dump to stderr instead of the tty so test output # is more sane. os.environ.setdefault('LIBC_FATAL_STDERR_','1') # check verbosity self.verbosity = False if (len(sys.argv) > 1 and '-v' in sys.argv[1:]): self.verbosity = True # Load LSB release file self.lsb_release = dict() if not os.path.exists('/usr/bin/lsb_release') and not os.path.exists('/bin/lsb_release'): raise OSError, "Please install 'lsb-release'" for line in subprocess.Popen(['lsb_release','-a'],stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0].splitlines(): field, value = line.split(':',1) value=value.strip() field=field.strip() # Convert numerics try: value = float(value) except: pass self.lsb_release.setdefault(field,value) # FIXME: hack OEM releases into known-Ubuntu versions if self.lsb_release['Distributor ID'] == "HP MIE (Mobile Internet Experience)": if self.lsb_release['Release'] == 1.0: self.lsb_release['Distributor ID'] = "Ubuntu" self.lsb_release['Release'] = 8.04 else: raise OSError, "Unknown version of HP MIE" # FIXME: hack to assume a most-recent release if we're not # running under Ubuntu. if self.lsb_release['Distributor ID'] not in ["Ubuntu","Linaro"]: self.lsb_release['Release'] = 10000 # Adjust Linaro release to pretend to be Ubuntu if self.lsb_release['Distributor ID'] in ["Linaro"]: self.lsb_release['Distributor ID'] = "Ubuntu" self.lsb_release['Release'] -= 0.01 # Load arch if not os.path.exists('/usr/bin/dpkg'): machine = cmd(['uname','-m'])[1].strip() if machine.endswith('86'): self.dpkg_arch = 'i386' elif machine.endswith('_64'): self.dpkg_arch = 'amd64' elif machine.startswith('arm'): self.dpkg_arch = 'armel' else: raise ValueError, "Unknown machine type '%s'" % (machine) else: self.dpkg_arch = cmd(['dpkg','--print-architecture'])[1].strip() # Find kernel version self.kernel_is_ubuntu = False self.kernel_version_signature = None self.kernel_version = cmd(["uname","-r"])[1].strip() versig = '/proc/version_signature' if os.path.exists(versig): self.kernel_is_ubuntu = True self.kernel_version_signature = file(versig).read().strip() self.kernel_version_ubuntu = self.kernel_version elif os.path.exists('/usr/bin/dpkg'): # this can easily be inaccurate but is only an issue for Dapper rc, out = cmd(['dpkg','-l','linux-image-%s' % (self.kernel_version)]) if rc == 0: self.kernel_version_signature = out.strip().split('\n').pop().split()[2] self.kernel_version_ubuntu = self.kernel_version_signature if self.kernel_version_signature == None: # Attempt to fall back to something for non-Debian-based self.kernel_version_signature = self.kernel_version self.kernel_version_ubuntu = self.kernel_version # Build ubuntu version without hardware suffix try: self.kernel_version_ubuntu = "-".join([x for x in self.kernel_version_signature.split(' ')[1].split('-') if re.search('^[0-9]', x)]) except: pass # Find gcc version self.gcc_version = get_gcc_version('gcc') # Find libc self.path_libc = [x.split()[2] for x in cmd(['ldd','/bin/ls'])[1].splitlines() if x.startswith('\tlibc.so.')][0] # Report self if self.verbosity: kernel = self.kernel_version_ubuntu if kernel != self.kernel_version_signature: kernel += " (%s)" % (self.kernel_version_signature) print >>sys.stdout, "Running test: '%s' distro: '%s %.2f' kernel: '%s' arch: '%s' uid: %d/%d SUDO_USER: '%s')" % ( \ sys.argv[0], self.lsb_release['Distributor ID'], self.lsb_release['Release'], kernel, self.dpkg_arch, os.geteuid(), os.getuid(), os.environ.get('SUDO_USER', '')) sys.stdout.flush() # Additional heuristics #if os.environ.get('SUDO_USER', os.environ.get('USER', '')) in ['mdeslaur']: # sys.stdout.write("Replying to Marc Deslauriers in http://launchpad.net/bugs/%d: " % random.randint(600000, 980000)) # sys.stdout.flush() # time.sleep(0.5) # sys.stdout.write("destroyed\n") # time.sleep(0.5) def hello(self, msg): print >>sys.stderr, "Hello from %s" % (msg) # The central instance manager = TestlibManager() class TestlibCase(unittest.TestCase): def __init__(self, *args): '''This is called for each TestCase test instance, which isn't much better than SetUp.''' unittest.TestCase.__init__(self, *args) # Attach to and duplicate dicts from manager singleton self.manager = manager #self.manager.hello(repr(self) + repr(*args)) self.my_verbosity = self.manager.verbosity self.lsb_release = self.manager.lsb_release self.dpkg_arch = self.manager.dpkg_arch self.kernel_version = self.manager.kernel_version self.kernel_version_signature = self.manager.kernel_version_signature self.kernel_version_ubuntu = self.manager.kernel_version_ubuntu self.kernel_is_ubuntu = self.manager.kernel_is_ubuntu self.gcc_version = self.manager.gcc_version self.path_libc = self.manager.path_libc def version_compare(self, one, two): return apt_pkg.VersionCompare(one,two) def assertFileType(self, filename, filetype): '''Checks the file type of the file specified''' (rc, report, out) = self._testlib_shell_cmd(["/usr/bin/file", "-b", filename]) out = out.strip() expected = 0 # Absolutely no idea why this happens on Hardy if self.lsb_release['Release'] == 8.04 and rc == 255 and len(out) > 0: rc = 0 result = 'Got exit code %d, expected %d:\n%s\n' % (rc, expected, report) self.assertEquals(expected, rc, result) filetype = '^%s$' % (filetype) result = 'File type reported by file: [%s], expected regex: [%s]\n' % (out, filetype) self.assertNotEquals(None, re.search(filetype, out), result) def yank_commonname_from_cert(self, certfile): '''Extract the commonName from a given PEM''' rc, out = cmd(['openssl','asn1parse','-in',certfile]) if rc == 0: ready = False for line in out.splitlines(): if ready: return line.split(':')[-1] if ':commonName' in line: ready = True return socket.getfqdn() def announce(self, text): if self.my_verbosity: print >>sys.stdout, "(%s) " % (text), sys.stdout.flush() def make_clean(self): rc, output = self.shell_cmd(['make','clean']) self.assertEquals(rc, 0, output) def get_makefile_compiler(self): # Find potential compiler name compiler = 'gcc' if os.path.exists('Makefile'): for line in open('Makefile'): if line.startswith('CC') and '=' in line: items = [x.strip() for x in line.split('=')] if items[0] == 'CC': compiler = items[1] break return compiler def make_target(self, target, expected=0): '''Compile a target and report output''' compiler = self.get_makefile_compiler() rc, output = self.shell_cmd(['make',target]) self.assertEquals(rc, expected, 'rc(%d)!=%d:\n' % (rc, expected) + output) self.assertTrue('%s ' % (compiler) in output, 'Expected "%s":' % (compiler) + output) return output # call as return testlib.skipped() def _skipped(self, reason=""): '''Provide a visible way to indicate that a test was skipped''' if reason != "": reason = ': %s' % (reason) self.announce("skipped%s" % (reason)) return False def _testlib_shell_cmd(self,args,stdin=None, stdout=subprocess.PIPE, stderr=subprocess.STDOUT): argstr = "'" + "', '".join(args).strip() + "'" rc, out = cmd(args,stdin=stdin,stdout=stdout,stderr=stderr) report = 'Command: ' + argstr + '\nOutput:\n' + out return rc, report, out def shell_cmd(self, args, stdin=None): return cmd(args,stdin=stdin) def assertShellExitEquals(self, expected, args, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, msg=""): '''Test a shell command matches a specific exit code''' rc, report, out = self._testlib_shell_cmd(args, stdin=stdin, stdout=stdout, stderr=stderr) result = 'Got exit code %d, expected %d\n' % (rc, expected) self.assertEquals(expected, rc, msg + result + report) def assertShellExitNotEquals(self, unwanted, args, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, msg=""): '''Test a shell command doesn't match a specific exit code''' rc, report, out = self._testlib_shell_cmd(args, stdin=stdin, stdout=stdout, stderr=stderr) result = 'Got (unwanted) exit code %d\n' % rc self.assertNotEquals(unwanted, rc, msg + result + report) def assertShellOutputContains(self, text, args, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, msg="", invert=False): '''Test a shell command contains a specific output''' rc, report, out = self._testlib_shell_cmd(args, stdin=stdin, stdout=stdout, stderr=stderr) result = 'Got exit code %d. Looking for text "%s"\n' % (rc, text) if not invert: self.assertTrue(text in out, msg + result + report) else: self.assertFalse(text in out, msg + result + report) def assertShellOutputEquals(self, text, args, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, msg="", invert=False, expected=None): '''Test a shell command matches a specific output''' rc, report, out = self._testlib_shell_cmd(args, stdin=stdin, stdout=stdout, stderr=stderr) result = 'Got exit code %d. Looking for exact text "%s" (%s)\n' % (rc, text, " ".join(args)) if not invert: self.assertEquals(text, out, msg + result + report) else: self.assertNotEquals(text, out, msg + result + report) if expected != None: result = 'Got exit code %d. Expected %d (%s)\n' % (rc, expected, " ".join(args)) self.assertEquals(rc, expected, msg + result + report) def _word_find(self, report, content, invert=False): '''Check for a specific string''' if invert: warning = 'Found "%s"\n' % content self.assertTrue(content not in report, warning + report) else: warning = 'Could not find "%s"\n' % content self.assertTrue(content in report, warning + report) def _test_sysctl_value(self, path, expected, msg=None, exists=True): sysctl = '/proc/sys/%s' % (path) self.assertEquals(exists, os.path.exists(sysctl), sysctl) value = None if exists: value = int(file(sysctl).read()) report = "%s is not %d: %d" % (sysctl, expected, value) if msg: report += " (%s)" % (msg) self.assertEquals(value, expected, report) return value def set_sysctl_value(self, path, desired): sysctl = '/proc/sys/%s' % (path) self.assertTrue(os.path.exists(sysctl),"%s does not exist" % (sysctl)) file(sysctl,'w').write(str(desired)) self._test_sysctl_value(path, desired) def kernel_at_least(self, introduced): return self.version_compare(self.kernel_version_ubuntu, introduced) >= 0 def kernel_claims_cve_fixed(self, cve): changelog = "/usr/share/doc/linux-image-%s/changelog.Debian.gz" % (self.kernel_version) if os.path.exists(changelog): for line in gzip.open(changelog): if cve in line and not "revert" in line and not "Revert" in line: return True return False class TestGroup: '''Create a temporary test group and remove it again in the dtor.''' def __init__(self, group=None, lower=False): '''Create a new group''' self.group = None if group: if group_exists(group): raise ValueError, 'group name already exists' else: while(True): group = random_string(7,lower=lower) if not group_exists(group): break assert subprocess.call(['groupadd',group]) == 0 self.group = group g = grp.getgrnam(self.group) self.gid = g[2] def __del__(self): '''Remove the created group.''' if self.group: rc, report = cmd(['groupdel', self.group]) assert rc == 0 class TestUser: '''Create a temporary test user and remove it again in the dtor.''' def __init__(self, login=None, home=True, group=None, uidmin=None, lower=False, shell=None): '''Create a new user account with a random password. By default, the login name is random, too, but can be explicitly specified with 'login'. By default, a home directory is created, this can be suppressed with 'home=False'.''' self.login = None if os.geteuid() != 0: raise ValueError, "You must be root to run this test" if login: if login_exists(login): raise ValueError, 'login name already exists' else: while(True): login = 't' + random_string(7,lower=lower) if not login_exists(login): break self.salt = random_string(2) self.password = random_string(8,lower=lower) self.crypted = crypt.crypt(self.password, self.salt) creation = ['useradd', '-p', self.crypted] if home: creation += ['-m'] if group: creation += ['-G',group] if uidmin: creation += ['-K','UID_MIN=%d'%uidmin] if shell: creation += ['-s',shell] creation += [login] assert subprocess.call(creation) == 0 # Set GECOS assert subprocess.call(['usermod','-c','Buddy %s' % (login),login]) == 0 self.login = login p = pwd.getpwnam(self.login) self.uid = p[2] self.gid = p[3] self.gecos = p[4] self.home = p[5] self.shell = p[6] def __del__(self): '''Remove the created user account.''' if self.login: # sanity check the login name so we don't accidentally wipe too much if len(self.login)>3 and not '/' in self.login: subprocess.call(['rm','-rf', '/home/'+self.login, '/var/mail/'+self.login]) rc, report = cmd(['userdel', '-f', self.login]) assert rc == 0 def add_to_group(self, group): '''Add user to the specified group name''' rc, report = cmd(['usermod', '-G', group, self.login]) if rc != 0: print report assert rc == 0 # Timeout handler using alarm() from John P. Speno's Pythonic Avocado class TimeoutFunctionException(Exception): """Exception to raise on a timeout""" pass class TimeoutFunction: def __init__(self, function, timeout): self.timeout = timeout self.function = function def handle_timeout(self, signum, frame): raise TimeoutFunctionException() def __call__(self, *args, **kwargs): old = signal.signal(signal.SIGALRM, self.handle_timeout) signal.alarm(self.timeout) try: result = self.function(*args, **kwargs) finally: signal.signal(signal.SIGALRM, old) signal.alarm(0) return result def main(): print "hi" unittest.main() debian/postinst0000775000000000000000000001326113174122612011003 0ustar #! /bin/sh -e # # postinst script for Debian python packages # Written 1998 by Gregor Hoffleit . # Updated 2001 by Tollef Fog Heen # mailman modifications 2004 by Bernd S. Brentrup # Other modifications 2004-2007 by other maintainers of the Debian package: # Lionel Elie Mamane, Thijs Kinkhorst, Riccardo Setti, Matej Vela, Hector Garcia, László Böszörményi, Bernd S. Brentrup, ... # # $URL: svn+ssh://tg@svn.debian.org/svn/pkg-mailman/branches/experimental/debian/postinst $ # $Id: postinst 693 2011-10-08 15:30:38Z thijs $ # . /usr/share/debconf/confmodule PACKAGE=mailman DIRLIST="/usr/lib/mailman/Mailman /usr/lib/mailman/bin /usr/lib/mailman/cron /usr/lib/mailman/scripts" PYLIBDIR="/usr/lib/python`python -c 'import sys; print sys.version[:3]'`" if [ "$1" = "configure" ]; then mm_etc=/etc/mailman mm_dist=/usr/share/mailman # Install only languages selected by the administrator # forcing used languages to be always available. db_get mailman/site_languages site_languages="$(echo $RET | sed -e 's/, */ /g' | sed -r 's/ \([^\)]*\)//g')" need_languages="${site_languages}" db_get mailman/used_languages db_fset mailman/used_languages seen true db_fset mailman/used_languages scanned false for lang in ${used_languages} ; do if echo " ${site_languages} " | grep -v -q " ${lang} " ; then need_languages="${need_languages:+${need_languages} }${lang}" fi done if [ "${need_languages}" != "${site_languages}" ]; then db_set mailman/site_languages "$(echo ${need_languages} | sed -e 's/ */, /g')" fi # At present ALL directories in /etc/mailman are language directories # but this may change in the future, better check. # Furthermore, the administrator may have have added other directories for dir in $(find ${mm_etc} -maxdepth 1 -mindepth 1 -type d -printf '%P\n'); do if [ -f ${mm_dist}/${dir}/options.html ]; then old_languages="${old_languages} ${dir}" fi done # Remove languages no longer used, but purging modified files # is a bad thing[TM]. leftover=/etc/mailman/leftover : >${leftover} for lang in ${old_languages}; do if echo " ${site_languages} " | grep -v -q " ${lang} " ; then printf "Removing unmodified files from ${mm_etc}/${lang} " >&2 # UGLY HACK: Since ucf doesn't support conditional removal # we access its hashfile directly md5sums=$(tempfile --prefix=mm_${lang}) grep "^[[:xdigit:]]{32}[[:space:]]\+${mm_etc}/$lang/" /var/lib/ucf/hashfile >${md5sums} || true # Language files are under ucf control, check md5sums for file in $(md5sum -c ${md5sums} 2>&1 | sed -n 's/: *OK$//p'); do ucf --debconf-ok --purge ${file} rm -f ${file} ${file}.dpkg-dist printf . >&2 done # For modified files remove corresponding .dpkg-dist for file in $(grep "^[[:xdigit:]]{32}[[:space:]]\+${mm_etc}/$lang/" /var/lib/ucf/hashfile | awk '{ print $2 }'); do rm -f ${file}.dpkg-dist printf . >&2 done printf " done.\n" >&2 rmdir ${mm_etc}/${lang} 2>/dev/null \ || printf "Directory ${mm_etc}/${lang} not empty, not removed.\n" >&2 rm -f ${md5sums} fi done for lang in ${site_languages}; do printf "Installing site language ${lang} " >&2 mkdir -p ${mm_etc}/${lang} for file in $(ls ${mm_dist}/${lang}); do printf . >&2 langfile=${lang}/${file} ucf --debconf-ok --three-way ${mm_dist}/${langfile} ${mm_etc}/${langfile} 2>/dev/null done printf " done.\n" >&2 done # Done with site language stuff # Don't forget the qmail specific stuff ucf --debconf-ok --three-way ${mm_dist}/qmail-to-mailman.py ${mm_etc}/qmail-to-mailman.py 2>/dev/null # Install postfix-to-mailman.py as well ucf --debconf-ok --three-way ${mm_dist}/postfix-to-mailman.py ${mm_etc}/postfix-to-mailman.py 2>/dev/null if [ -e /etc/mailman/mm_cfg.py ]; then db_get mailman/default_server_language || true if [ -n "$RET" ]; then default_server_language="$(echo $RET | sed -r 's/ \([^\)]*\)//g')" sed -e s/DEFAULT_SERVER_LANGUAGE.*=.*\'..\'/DEFAULT_SERVER_LANGUAGE\ =\ \'${default_server_language}\'/ ${mm_etc}/mm_cfg.py > ${mm_etc}/mm_cfg.py.$$ mv -f ${mm_etc}/mm_cfg.py.$$ ${mm_etc}/mm_cfg.py fi fi fi db_stop || true case "$1" in configure|abort-upgrade|abort-remove|abort-deconfigure) if [ -e /etc/mailname ] then DOMAIN=$(head -n 1 /etc/mailname) # fixme - should we look for a dot in the domainname? else DOMAIN=localhost.localdomain fi if [ ! -e /etc/$PACKAGE/mm_cfg.py ]; then printf "Configuring $PACKAGE for domain $DOMAIN ...\n" sed s/thunderchild.aszi.sztaki.hu/$DOMAIN/g /usr/lib/mailman/Mailman/mm_cfg.py.dist \ > /etc/$PACKAGE/mm_cfg.py fi if grep -q mm_defaults /etc/mailman/mm_cfg.py; then printf "Changing mm_defaults to Defaults in /etc/mailman/mm_cfg.py\n" printf "Fixing host name in /etc/mailman/mm_cfg.py\n" sed s/mm_defaults/Defaults/ "s/'localhost'/$DOMAIN/g" "s#http://localhost#http://$DOMAIN#g" /etc/mailman/mm_cfg.py.new mv /etc/mailman/mm_cfg.py /etc/mailman/mm_cfg.py.old mv /etc/mailman/mm_cfg.py.new /etc/mailman/mm_cfg.py fi if ! [ -d /var/lock/mailman ]; then install -d -o root -g list -m 2775 /var/lock/mailman fi sg list -c "umask 002; /usr/lib/mailman/bin/update;" ;; *) printf "postinst called with unknown argument \`$1'\n" >&2 exit 1 ;; esac #DEBHELPER# debian/mailman.cron.d0000664000000000000000000000303613174122612011714 0ustar # At 8AM every day, mail reminders to admins as to pending requests. # They are less likely to ignore these reminders if they're mailed # early in the morning, but of course, this is local time... ;) 0 8 * * * list [ -x /usr/lib/mailman/cron/checkdbs ] && /usr/lib/mailman/cron/checkdbs # # At 9AM, send notifications to disabled members that are due to be # reminded to re-enable their accounts. 0 9 * * * list [ -x /usr/lib/mailman/cron/disabled ] && /usr/lib/mailman/cron/disabled # # Noon, mail digests for lists that do periodic as well as threshold delivery. 0 12 * * * list [ -x /usr/lib/mailman/cron/senddigests ] && /usr/lib/mailman/cron/senddigests # # 5 AM on the first of each month, mail out password reminders. 0 5 1 * * list [ -x /usr/lib/mailman/cron/mailpasswds ] && /usr/lib/mailman/cron/mailpasswds # # Every 5 mins, try to gate news to mail. You can comment this one out # if you don't want to allow gating, or don't have any going on right now, # or want to exclusively use a callback strategy instead of polling. # */5 * * * * list [ -x /usr/lib/mailman/cron/gate_news ] && /usr/lib/mailman/cron/gate_news # # At 3:27am every night, regenerate the gzip'd archive file. Only # turn this on if the internal archiver is used and # GZIP_ARCHIVE_TXT_FILES is false in mm_cfg.py 27 3 * * * list [ -x /usr/lib/mailman/cron/nightly_gzip ] && /usr/lib/mailman/cron/nightly_gzip # # At 4:30AM daily, cull old entries from the 'bad' and 'shunt' queues. 30 4 * * * list [ -x /usr/lib/mailman/cron/cull_bad_shunt ] && /usr/lib/mailman/cron/cull_bad_shunt debian/mailman.dirs0000664000000000000000000000026513174122612011473 0ustar usr/lib/mailman usr/sbin usr/share/lintian/overrides usr/share/mailman usr/share/images/mailman usr/lib/cgi-bin var/log/mailman var/lib/mailman/templates etc/logrotate.d etc/cron.d debian/README.Exim4.Debian0000664000000000000000000001165613174122612012226 0ustar Here's a way to integrate mailman with Exim4 that will automatically play nice with mailman's virtual domains support and VERP. It does not require dedicating domain(s) to mailman. Configure your Mailman (in /etc/mailman/mm_cfg.py) with: MTA = 'Postfix' POSTFIX_ALIAS_CMD = '/bin/true' POSTFIX_MAP_CMD = 'chgrp Debian-exim' and list all your Mailman domains in "POSTFIX_STYLE_VIRTUAL_DOMAINS": POSTFIX_STYLE_VIRTUAL_DOMAINS = [ 'example.com', 'example.org' ] Please note that the chgrp command above will not work when creating a list in the web interface: the user www-data will not be allowed to do this. You can circumvent this problem by creating new lists with the 'newlist' command line command or using instead: POSTFIX_MAP_CMD = 'chmod o+r' This will allow local users (with shell access to the list server) to see the list of all Mailman mailing lists, but not much more. If you have created lists before making those changes to mm_cfg.py (and you are not going to create others before running the system in production), you need to run /var/lib/mailman/bin/genaliases once; it will be done automatically every time you create / delete a mailing list in the future. And yes, the "Postfix" there is on purpose, it should not be replaced by "exim4". It causes mailman to (among others) create a list of mailman lists, including what virtual domain they should be in. That is the information that is used here; the rest is ignored. Put this in your exim4 main configuration (if you use a split config, for example /etc/exim4/conf.d/main/04_local_mailman_macros) ---------------------- BEGIN EXIM4 MAIN ---------------------------- # Home dir for your Mailman installation -- aka Mailman's prefix # directory. MAILMAN_HOME=/var/lib/mailman MAILMAN_WRAP=MAILMAN_HOME/mail/mailman # User and group for Mailman, should match your --with-mail-gid # switch to Mailman's configure script. MAILMAN_USER=list MAILMAN_GROUP=daemon # Where to store messages sent to mailman-loop - used if the # mailman-owner addressbounces. MAILMAN_LOOP=MAILMAN_HOME/data/owner-bounces.mbox ---------------------- END EXIM4 MAIN ---------------------------- Put this in your exim4 router configuration (if you use a split config, then for example /etc/exim4/conf.d/router/970_local_mailman) ---------------------- BEGIN EXIM4 ROUTER ---------------------------- # Messages get sent out with # envelope from "mailman-bounces@virtual_domain" # But mailman doesn't put such addresses # in the aliases. Recognise these here. mailman_workaround: debug_print = "R: mailman_workaround for $local_part@$domain" domains = +local_domains require_files = MAILMAN_HOME/lists/$local_part/config.pck driver = accept local_parts = mailman local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \ -confirm+* : -join : -leave : \ -subscribe : -unsubscribe : \ -owner : -request : -admin transport = mailman_transport group = MAILMAN_GROUP # We need to handle the mailman-loop separately from the other addresses # since the loop action is not handled by the wrapper. mailman_loop_router: debug_print = "R: mailman_loop for $local_part@$domain" domains = +local_domains require_files = MAILMAN_HOME/lists/$local_part/config.pck driver = accept local_parts = mailman transport = mailman_loop_transport local_part_suffix = -loop group = MAILMAN_GROUP # Mailman lists mailman_router: debug_print = "R: mailman_router for $local_part@$domain" domains = +local_domains condition = ${lookup{$local_part@$domain}lsearch{MAILMAN_HOME/data/virtual-mailman}{1}{0}} require_files = MAILMAN_HOME/lists/$local_part/config.pck driver = accept local_part_suffix_optional local_part_suffix = -bounces : -bounces+* : \ -confirm+* : -join : -leave : \ -subscribe : -unsubscribe : \ -owner : -request : -admin transport = mailman_transport group = MAILMAN_GROUP ---------------------- END EXIM4 ROUTER ---------------------------- Put this in your exim4 transport configuration (if you use a split config, then for example /etc/exim4/conf.d/transport/40_local_mailman) ---------------------- BEGIN EXIM4 TRANSPORT ------------------------- mailman_transport: debug_print = "T: mailman_transport for $local_part@$domain" driver = pipe command = MAILMAN_WRAP \ '${if def:local_part_suffix \ {${sg{$local_part_suffix}{-(\\w+)(\\+.*)?}{\$1}}} \ {post}}' \ $local_part current_directory = MAILMAN_HOME home_directory = MAILMAN_HOME user = MAILMAN_USER group = MAILMAN_GROUP freeze_exec_fail = true mailman_loop_transport: driver = appendfile file = MAILMAN_LOOP delivery_date_add envelope_to_add return_path_add user = MAILMAN_USER group = MAILMAN_GROUP ---------------------- END EXIM4 TRANSPORT ------------------------- You are done! -- Lionel Elie Mamane , Fri, 20 Mar 2009 09:27:39 +0100 debian/prerm0000775000000000000000000000103313174122612010237 0ustar #! /bin/sh -e # # prerm script for Debian python packages. # Written 1998 by Gregor Hoffleit . # # $URL: svn+ssh://tg@svn.debian.org/svn/pkg-mailman/branches/experimental/debian/prerm $ # $Id: prerm 421 2006-10-08 12:50:00Z giskard-guest $ if [ "$1" = "failed-upgrade" ] ; then if [ -x "/etc/init.d/mailman" ]; then if [ -x /usr/sbin/invoke-rc.d ] ; then invoke-rc.d mailman stop || true else /etc/init.d/mailman stop || true fi fi chmod -x /usr/lib/mailman/bin/mailmanctl fi #DEBHELPER# debian/compat0000664000000000000000000000000213174122612010365 0ustar 7 debian/config0000664000000000000000000000657213174122612010371 0ustar #! /bin/sh -e # $URL: svn+ssh://tg@svn.debian.org/svn/pkg-mailman/branches/experimental/debian/config $ # $Id: config 693 2011-10-08 15:30:38Z thijs $ . /usr/share/debconf/confmodule crontab=/etc/cron.d/mailman get_used_languages () { # Python being non-essential it may not be available at preconfigure # time, but then no languages are used either. if python /dev/null ; then # list_lists may fail if mm_cfg is not yet installed ( for ml in $(list_lists -b 2>/dev/null); do ( config_list -o - ${ml} 2>/dev/null cat </dev/null 2>&1; then # For 1st time installers there is no used language. db_set mailman/site_languages "en" db_set mailman/used_languages "" db_fset mailman/used_languages scanned false else if [ "${scanned}" != "true" ] ; then printf "Looking for enabled languages (this may take some time) ..." unset used_languages for l in $(get_used_languages); do used_languages=${used_languages:+${used_languages} }$l done db_set mailman/used_languages "${used_languages}" db_fset mailman/used_languages scanned true db_fset mailman/used_languages seen false printf " done.\n" fi # Install only languages selected by the administrator # forcing used languages to be always available. db_get mailman/site_languages site_languages="$(echo $RET | sed -e 's/, */ /g' | sed -r 's/ \([^\)]*\)//g')" need_languages="${site_languages}" for lang in ${used_languages} ; do if echo " ${site_languages} " | grep -v -q " ${lang} " ; then need_languages="${lang} ${need_languages}" fi done if [ "${need_languages}" != "${site_languages}" ]; then db_set mailman/site_languages "$(echo ${need_languages} | sed -e 's/ */, /g')" fi fi site_languages="" while [ -z "${site_languages}" ]; do db_input high mailman/site_languages || true # Let the db go, and ask the user, so we won't get back a stale setting db_go || true db_get mailman/site_languages && site_languages=${RET} done db_subst mailman/default_server_language site_languages "${site_languages}" db_input high mailman/default_server_language || true if [ ! -e /etc/mailman/mm_cfg.py ] || [ ! -x /var/lib/mailman/bin/list_lists ] || \ [ "$(/var/lib/mailman/bin/list_lists -b | grep ^mailman$ )" = "" ]; then db_input critical mailman/create_site_list || true fi db_go || true debian/NEWS0000664000000000000000000000441513174122612007672 0ustar mailman (1:2.1.16-1exp1) experimental; urgency=low This version has changed the encoding of most strings, templates and pages to UTF-8 to meet the Debian release goal of full UTF-8 support in all packages. It also no longer automatically converts mails to ISO-8859-1. If you have been using any nōn-ASCII strings in places such as the mailing list description, these were be stored wrongly in the list configuration file (config.pck), so you will need to change those (e.g. via the webinterface) again in order to have them be displayed correctly. -- Thorsten Glaser Sun, 29 Dec 2013 14:35:50 +0000 mailman (1:2.1.9-6) unstable; urgency=medium * This version will automatically upgrade indexes of the current archiving volume to the new Unicode format, which can lead to a slight corruption / data loss in the form of non-ASCII characters not being transcoded correctly. If you kept single-mbox archives of your mailing list additionally to the HTML ones (even if this mbox archive was not downloadable from the web), you are probably better off regenerating the archives from scratch with: cd /var/lib/mailman/lists for list in *; do /var/lib/mailman/bin/arch --wipe "${list}" ; done This will use information in the original email to make a better guess at the encoding of the subject and author of a post to the list. Details: Some previous versions tried to use Unicode for new entries, mixing them with old 8 bit character string entries left over from even older versions, leading to a cascade of events that broke archiving for some mailing lists completely for the rest of the archiving volume period (often the calendar month). As the old entries were stored as strings without encoding information, there is no way to automatically reliably convert those to Unicode. The upgrade code will try, in order: - the default Python encoding (usually ASCII) - UTF-8 - windows-1252, a superset of iso-8859-1 You can change the default Python encoding by creating a file called sitecustomize.py in python's loadpath with e.g.: import sys sys.setdefaultencoding('iso-8859-8') -- Lionel Elie Mamane Tue, 27 Feb 2007 21:30:49 +0100 debian/mailman.rtupdate0000664000000000000000000000262213174122612012361 0ustar #!/bin/sh # this script stops mailman before a Python default runtime change and # restarts it afterwards DESC="Mailman MailingList Server" NAME="mailman" SCRIPTNAME="/etc/init.d/$NAME" # Read configuration variable file if it is present [ -r "/etc/default/$NAME" ] && . "/etc/default/$NAME" # Load the VERBOSE setting and other rcS variables [ -f /etc/default/rcS ] && . /etc/default/rcS # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions if [ "$#" != 3 ]; then echo "Usage: $0 {pre-rtupdate|post-rtupdate|rtupdate} " >&2 exit 1 fi action="$1" oldruntime="$2" newruntime="$3" case "$action" in pre-rtupdate) [ "$VERBOSE" != no ] && log_warning_msg "Stopping $DESC during Python runtime change..." if [ -x "$SCRIPTNAME" ]; then if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then invoke-rc.d "$NAME" stop else "$SCRIPTNAME" stop fi fi ;; post-rtupdate) [ "$VERBOSE" != no ] && log_warning_msg "Restarting $DESC after Python runtime change..." if [ -x "$SCRIPTNAME" ]; then if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then invoke-rc.d "$NAME" start else "$SCRIPTNAME" start fi fi ;; rtupdate) ;; *) echo "$0 called with unknown argument \`$action'" >&2 exit 0 ;; esac debian/mailman.manpages0000664000000000000000000000072013174122612012321 0ustar debian/manpages/add_members.8 debian/manpages/clone_member.8 debian/manpages/list_lists.8 debian/manpages/mmsitepass.8 debian/manpages/rmlist.8 debian/manpages/check_db.8 debian/manpages/config_list.8 debian/manpages/list_admins.8 debian/manpages/list_members.8 debian/manpages/newlist.8 debian/manpages/sync_members.8 debian/manpages/check_perms.8 debian/manpages/find_member.8 debian/manpages/mmarch.8 debian/manpages/remove_members.8 debian/manpages/withlist.8 debian/contrib/0000775000000000000000000000000013174122612010627 5ustar debian/contrib/debianpowered.png0000664000000000000000000000531313174122612014147 0ustar PNG  IHDRX쪝 vpAgX8U9 pHYsHHFk> hIDATh{Ƨ&S hD^iLiТ`˪ڪK![ve]."aqu^̲uݹ7̞.fiҤ'_;sg~U`{+++͓=+Y{{kY?z3á`6~+gY@SGǡwkO37v\UٛN̺Y'f޸duֽ e>,DC+p87sZsÆȚ#vc.X]}h|Hd,`]y%_ yb;:j@#w~}cc|{/`xkUP0xBC`v2b䣕iw۸ˢ\Y`_LI܄$qkg64 D, Ep$2>Mg/ ,^Gdzh;>V#j󷫫,f||{} Z fC57b}͸G,(AXTg\ dDDVZ!Du-\+ͽ/ ԐI~𼹗%7.S mgĶm[N8zbp_7c}@ۻ]`x'(ĵ2,Y fo,efxr;^d,!{`׆]]ϕޭWЭ?FV85<<|h'H8D7\^ܳ{ܨ,鑬xE_4! f41I2 `{s/ętߞ .VaeOA\Y-~5^N_ izour{#\V<F\j_zAꫪgX xܲw vQe",Rtث/":y(\@8@&Q j¢J1U#crp ͽCsJH-zu#KZ0::bտsDV 2AD $TM&j[G7`/-s09e&'γuHdi8RQO F  QѢUĂ0_v=Z-#k| 3j1Y,bݐI݋A"_25 H+GY4{2OЂd\I_k  >qUu4U-5G>Xo4a) I0TJjurDi{W+--Չf?$QBႎV,P/b=ϡJ]%R|x(b)x5_;zI%A閡lt0cBZy 4'1yS (щj%35DG2eR !ܹ n7: KmX9+a=rh|f=` BZ;M W+0ld)rx(Y N #^ܳJj%f>Kz̼94Xm6?L{3ix(6=ΛWq# k M)g,˳Wlʪ@S@daV#짢|R#3 d"J "^  X:9A 8r.t߿Oa{ܳbr^IG emFgi*6#fz(0b5 9i~2`lj1,\U], HP =IENDB`debian/contrib/postfix-to-mailman.py0000775000000000000000000001412713174122612014741 0ustar #! /usr/bin/env python # $URL: svn+bsb://svn.winnegan.de/svn/adm/trunk/mailman/postfix-to-mailman.py $ # $Id: postfix-to-mailman.py 38 2004-04-15 19:11:32Z bsb $ # # Interface mailman to a postfix with a mailman transport. Does not require # the creation of _any_ aliases to connect lists to your mail system. # # Dax Kelson, dkelson@gurulabs.com, Sept 2002. # coverted from qmail to postfix interface # Jan 2003: Fixes for Mailman 2.1 # Thanks to Simen E. Sandberg # Feb 2003: Change the suggested postfix transport to support VERP # Thanks to Henrique de Moraes Holschuh # # Mar 2004: Siggy Brentrup # downloaded from http://www.gurulabs.com/files/postfix-to-mailman-2.1.py # and adopted for inclusion in the Debian Mailman package. # (hi Bruce, back to the roots :-) # rewritten for python >= 2.2 taking configuration from mm_cfg # # This script was originally qmail-to-mailman.py by: # Bruce Perens, bruce@perens.com, March 1999. # This is free software under the GNU General Public License. # This script is meant to be called as a postfix transport pipe. # It catches all mail to a virtual domain, eg "lists.example.com". It # looks at the recipient for each mail message and decides if the mail # is addressed to a valid list or not, and optionally bounces the # message with a helpful suggestion if it's not addressed to a # list. It decides if it is a posting, a list command, or mail to the # list administrator, by checking for the -admin, -owner, -request, # -join, -leave, -subscribe and -unsubscribe addresses. It will # recognize a list as soon as the list is created, there is no need to # add _any_ aliases for any list. It recognizes mail to postmaster, # abuse and mailer-daemon, and routes those mails to DEB_LISTMASTER as # defined in mm_cfg.py # INSTALLATION: # # Install this file as /var/lib/mailman/bin/postfix-to-mailman.py # # To configure a virtual domain to connect to mailman, edit Postfix thusly: # # /etc/postfix/main.cf: # relay_domains = ... lists.example.com # relay_recipient_maps = ... hash:/var/lib/mailman/data/virtual-mailman # transport_maps = hash:/etc/postfix/transport # mailman_destination_recipient_limit = 1 # # /etc/postfix/master.cf # mailman unix - n n - - pipe # flags=FR user=list # argv=/var/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} # # /etc/postfix/transport: # lists.example.com mailman: # # /etc/mailman/mm_cfg.py # MTA = None # So that mailman skips aliases generation # POSTFIX_STYLE_VIRTUAL_DOMAINS = ['lists.example.com'] # # alias for postmaster, abuse and mailer-daemon # DEB_LISTMASTER = 'postmaster@example.com' # # Replace lists.example.com above with the name of the domain to be # connected to Mailman. Note that _all_ mail to that domain will go to # Mailman, so you don't want to put the name of your main domain # here. Typically a virtual domain lists.domain.com is used for # Mailman, and domain.com for regular email. # # The recipient map allows Postfix to know which addresses exists. # Thus, if someone tries to send a (spam?) message to an undefined # address in the domain connected to Mailman, Postfix will just refuse # it instead of sending a (backscatter?) bounce. # # When you are done, restart Postfix, and run /usr/lib/mailman/bin/genaliases # to generate the initial recipient map for the existing mailing-lists. # Exit codes accepted by postfix # from postfix-2.0.16/src/global/sys_exits.h EX_USAGE = 64 # command line usage error EX_NOUSER = 67 # addressee unknown EX_SOFTWARE = 70 # internal software error EX_TEMPFAIL = 75 # temporary failure import sys, os sys.path.append("/usr/lib/mailman/bin") import paths from Mailman import mm_cfg def main(): os.nice(5) # Handle mailing lists at non-interactive priority. # delete this if you wish try: MailmanOwner = mm_cfg.DEB_LISTMASTER except AttributeError: MailmanOwner = 'postmaster@localhost' try: domain, local = [ a.lower() for a in sys.argv[1:] ] except: # This might happen if we're not using Postfix or # /etc/postfix/master.cf is badly misconfigured sys.stderr.write('Illegal invocation: %r\n' % ' '.join(sys.argv)) if len(sys.argv) > 3: sys.stderr.write('Did you forget to set ' 'mailman_destination_recipient_limit=1 ' 'in main.cf?') sys.exit(EX_USAGE) # Redirect required addresses to if local in ('postmaster', 'abuse', 'mailer-daemon'): os.execv("/usr/sbin/sendmail", ("/usr/sbin/sendmail", MailmanOwner)) sys.exit(0) # Assume normal posting to a mailing list mlist, func = local, 'post' # Let Mailman decide if a list exists. from Mailman.Utils import list_exists if list_exists(mlist): mm_pgm = os.path.join(paths.prefix, 'mail', 'mailman') os.execv(mm_pgm, (mm_pgm, func, mlist)) # NOT REACHED # Check for control extension on local part for ext in ('-admin', '-owner', '-request', '-bounces', '-confirm', '-join', '-leave', '-subscribe', '-unsubscribe', ): if local.endswith(ext): mlist = local[:-len(ext)] func = ext[1:] break if list_exists(mlist): mm_pgm = os.path.join(paths.prefix, 'mail', 'mailman') os.execv(mm_pgm, (mm_pgm, func, mlist)) # NOT REACHED else: try: sys.stderr.write(mm_cfg.DEB_HELP_TEXT) except AttributeError: sys.exit(EX_NOUSER) sys.exit(1) if __name__ == '__main__': try: main() except SystemExit, argument: sys.exit(argument) except Exception: xt, xv, tb = sys.exc_info() sys.stderr.write("%s %s\n" % (xt, xv)) sys.stderr.write("Line %d\n" % (tb.tb_lineno)) sys.exit(EX_TEMPFAIL) # Soft failure, try again later. debian/contrib/apache.conf0000664000000000000000000000465513174122612012731 0ustar # Sample configuration for Debian mailman with Apache # We can find mailman here: ScriptAlias /cgi-bin/mailman/ /usr/lib/cgi-bin/mailman/ # And the public archives: Alias /pipermail/ /var/lib/mailman/archives/public/ # Logos: Alias /images/mailman/ /usr/share/images/mailman/ # Use this if you don't want the "cgi-bin" component in your URL: # In case you want to access mailman through a shorter URL you should enable # this: #ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ # In this case you need to set the DEFAULT_URL_PATTERN in # /etc/mailman/mm_cfg.py to http://%s/mailman/ for the cookie # authentication code to work. Note that you need to change the base # URL for all the already-created lists as well. AllowOverride None Options ExecCGI AddHandler cgi-script .cgi Order allow,deny Allow from all Options FollowSymlinks AllowOverride None Order allow,deny Allow from all AllowOverride None Order allow,deny Allow from all ## The following describes how to configure mailman on ## a dedicated virtual host, courtesy Marco d'Itri. # Add these lines in /etc/mailman/mm_cfg.py: #DEFAULT_EMAIL_HOST = 'lists.example.net' #DEFAULT_URL_HOST = 'lists.example.net' #DEFAULT_URL_PATTERN = 'http://%s/' # #ServerName lists.example.net #DocumentRoot /var/www/lists #ErrorLog /var/log/apache2/lists-error.log #CustomLog /var/log/apache2/lists-access.log combined # # # Options FollowSymLinks # AllowOverride None # # #Alias /pipermail/ /var/lib/mailman/archives/public/ #Alias /images/mailman/ /usr/share/images/mailman/ #ScriptAlias /admin /usr/lib/cgi-bin/mailman/admin #ScriptAlias /admindb /usr/lib/cgi-bin/mailman/admindb #ScriptAlias /confirm /usr/lib/cgi-bin/mailman/confirm #ScriptAlias /create /usr/lib/cgi-bin/mailman/create #ScriptAlias /edithtml /usr/lib/cgi-bin/mailman/edithtml #ScriptAlias /listinfo /usr/lib/cgi-bin/mailman/listinfo #ScriptAlias /options /usr/lib/cgi-bin/mailman/options #ScriptAlias /private /usr/lib/cgi-bin/mailman/private #ScriptAlias /rmlist /usr/lib/cgi-bin/mailman/rmlist #ScriptAlias /roster /usr/lib/cgi-bin/mailman/roster #ScriptAlias /subscribe /usr/lib/cgi-bin/mailman/subscribe #ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/ # debian/contrib/SpamAssassin.py0000664000000000000000000000731013174122612013607 0ustar # Copyright (C) 2002-2003 by James Henstridge # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, US """Perform spam detection with SpamAssassin. Messages are passed to a spamd (SpamAssassin) daemon for spam checking. Depending on the score returned, messages may be rejected or held for moderation. """ import string import spamd from Mailman import mm_cfg from Mailman import Errors from Mailman.Logging.Syslog import syslog from Mailman.Handlers import Hold from Mailman.Handlers.Moderate import matches_p SPAMD_HOST = getattr(mm_cfg, 'SPAMASSASSIN_HOST', '') DISCARD_SCORE = getattr(mm_cfg, 'SPAMASSASSIN_DISCARD_SCORE', 10) HOLD_SCORE = getattr(mm_cfg, 'SPAMASSASSIN_HOLD_SCORE', 5) MEMBER_BONUS = getattr(mm_cfg, 'SPAMASSASSIN_MEMBER_BONUS', 2) class SpamAssassinDiscard(Errors.DiscardMessage): '''The message was scored above the discard threshold''' reason = 'SpamAssassin identified this message as spam' rejection = 'Your message has been discarded as spam' class SpamAssassinHold(Errors.HoldMessage): '''The message was scored above the hold threshold''' def __init__(self, score=-1, symbols=''): Errors.HoldMessage.__init__(self) self.reason = 'SpamAssassin identified this message as possible ' \ 'spam (score %g)' % score self.rejection = 'Your message was held for moderation because ' \ 'SpamAssassin gave the message a score of %g ' \ 'for the following reasons:\n\n%s' % \ (score, symbols) def check_message(mlist, message): '''Check a message against a SpamAssassin spamd process. Returns a tuple of the form (score, symbols)''' try: connection = spamd.SpamdConnection(SPAMD_HOST) # identify as the mailing list, to allow storing per-list # AWL and bayes databases. connection.addheader('User', mlist.internal_name()) res = connection.check(spamd.SYMBOLS, message) score = connection.getspamstatus()[1] symbols = connection.response_message.replace(',', ', ') return score, symbols except spamd.error, ex: syslog('error', 'spamd: %s' % str(ex)) return -1, '' def process(mlist, msg, msgdata): if msgdata.get('approved'): return score, symbols = check_message(mlist, str(msg)) if MEMBER_BONUS != 0: for sender in msg.get_senders(): if mlist.isMember(sender) or \ matches_p(sender, mlist.accept_these_nonmembers, mlist.internal_name()): score -= MEMBER_BONUS break if score > DISCARD_SCORE: listname = mlist.real_name sender = msg.get_sender() syslog('vette', '%s post from %s discarded: ' 'SpamAssassin score was %g (discard threshold is %g)' % (listname, sender, score, DISCARD_SCORE)) raise SpamAssassinDiscard elif score > HOLD_SCORE: Hold.hold_for_approval(mlist, msg, msgdata, SpamAssassinHold(score, symbols)) debian/contrib/spamd.py0000664000000000000000000001212013174122612012301 0ustar # Copyright (C) 2002-2003 by James Henstridge # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, US '''Module used to communicate with a SpamAssassin spamd process to check or tag messages. Usage is as follows: >>> conn = spamd.SpamdConnection() >>> conn.addheader('User', 'username') >>> conn.check(spamd.SYMBOLS, 'From: user@example.com\n...') >>> print conn.getspamstatus() (True, 4.0) >>> print conn.response_message ... ''' import socket import mimetools, StringIO import __builtin__ if not hasattr(__builtin__, 'True'): __builtin__.True = (1 == 1) __builtin__.False = (1 != 1) del __builtin__ class error(Exception): pass SPAMD_PORT = 783 # available methods SKIP = 'SKIP' PROCESS = 'PROCESS' CHECK = 'CHECK' SYMBOLS = 'SYMBOLS' REPORT = 'REPORT' REPORT_IFSPAM = 'REPORT_IFSPAM' # error codes EX_OK = 0 EX_USAGE = 64 EX_DATAERR = 65 EX_NOINPUT = 66 EX_NOUSER = 67 EX_NOHOST = 68 EX_UNAVAILABLE = 69 EX_SOFTWARE = 70 EX_OSERR = 71 EX_OSFILE = 72 EX_CANTCREAT = 73 EX_IOERR = 74 EX_TEMPFAIL = 75 EX_PROTOCOL = 76 EX_NOPERM = 77 EX_CONFIG = 78 class SpamdConnection: '''Class to handle talking to SpamAssassin spamd servers.''' # default spamd host = 'localhost' port = SPAMD_PORT PROTOCOL_VERSION = 'SPAMC/1.3' def __init__(self, host='', port=0): if not port and ':' in host: host, port = host.split(':', 1) port = int(port) if host: self.host = host if port: self.port = port # message structure to hold request headers self.request_headers = mimetools.Message(StringIO.StringIO(), seekable=False) self.request_headers.fp = None # stuff that will be filled in after check() self.server_version = None self.result_code = None self.response_message = None self.response_headers = mimetools.Message(StringIO.StringIO(), seekable=False) def addheader(self, header, value): '''Adds a header to the request.''' self.request_headers[header] = value def check(self, method='PROCESS', message=''): '''Sends a request to the spamd process.''' try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((self.host, self.port)) except socket.error: raise error('could not connect to spamd on %s' % self.host) # set content length request header del self.request_headers['Content-length'] self.request_headers['Content-length'] = str(len(message)) request = '%s %s\r\n%s\r\n' % \ (method, self.PROTOCOL_VERSION, str(self.request_headers).replace('\n', '\r\n')) try: sock.send(request) sock.send(message) sock.shutdown(1) # shut down the send half of the socket except (socket.error, IOError): raise error('could not send request to spamd') fp = sock.makefile('rb') response = fp.readline() words = response.split(None, 2) if len(words) != 3: raise error('not enough words in response header') if words[0][:6] != 'SPAMD/': raise error('bad protocol name in response string') self.server_version = float(words[0][6:]) if self.server_version < 1.0 or self.server_version >= 2.0: raise error('incompatible server version') self.result_code = int(words[1]) if self.result_code != 0: raise error('spamd server returned error %s' % words[2]) try: # parse header self.response_headers = mimetools.Message(fp, seekable=False) self.response_headers.fp = None except IOError: raise error('could not read in response headers') try: # read in response message self.response_message = fp.read() except IOError: raise error('could not read in response message') fp.close() sock.close() def getspamstatus(self): '''Decode the "Spam" response header.''' if not self.response_headers.has_key('Spam'): raise error('Spam header not found in response') isspam, score = self.response_headers['Spam'].split(';', 1) isspam = (isspam.strip() != 'False') score = float(score.split('/',1)[0]) return isspam, score debian/mailman.init0000664000000000000000000000612413174122612011475 0ustar #! /bin/sh # # mailman starts up the master queue runner for mailman # # Based on skeleton originally by Miquel van Smoorenburg and Ian Murdock, # customisations by Tollef Fog Heen and Thijs Kinkhorst for Debian. # ### BEGIN INIT INFO # Provides: mailman-qrunner # Required-Start: $syslog $local_fs $remote_fs $named $network # Required-Stop: $syslog $local_fs $remote_fs $named $network # Should-Start: # Should-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Mailman Master Queue Runner # Description: Starts and stops the Mailman queue runners, used to # manage the various message queues within the Mailman # mailing list manager. ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/lib/mailman/bin/mailmanctl PIDFILE=/var/run/mailman/mailman.pid test -x $DAEMON || exit 0 set -e if ! [ -d /var/run/mailman ]; then install -d -o list -g list /var/run/mailman fi if ! [ -d /var/lock/mailman ]; then install -d -o root -g list -m 2775 /var/lock/mailman fi . /lib/lsb/init-functions # In rare upgrading cycles python might not be available at some point. # Do not break the upgrade in that case. if ! [ -x /usr/bin/python ]; then log_warning_msg "Python interpreter not available, exiting." exit 0; fi # Just a newline. nl=' ' case "$1" in start) SITE_LIST=$( sed -rne "s/^[[:space:]]*MAILMAN_SITE_LIST[[:space:]]*=[[:space:]]*(['\"])([^'\"]+)\\1/\\2/p" /etc/mailman/mm_cfg.py ) [ -n "$SITE_LIST" ] || SITE_LIST='mailman' case "$nl$(/var/lib/mailman/bin/list_lists -b)$nl" in (*$nl$SITE_LIST$nl*) ;; (*) log_warning_msg "Site list for mailman missing (looking for list named '${SITE_LIST}')." log_warning_msg "Please create it; until then, mailman will refuse to start." exit 0 ;; esac log_daemon_msg "Starting Mailman master qrunner" "mailmanctl" if $DAEMON -s -q start; then log_end_msg 0 else log_end_msg 1 fi ;; stop) log_daemon_msg "Stopping Mailman master qrunner" "mailmanctl" if $DAEMON -q stop; then rm -f $PIDFILE log_end_msg 0 else log_end_msg 1 fi ;; reload) log_begin_msg "Reloading Mailman master qrunner configuration" if $DAEMON -q restart; then log_end_msg 0 else log_end_msg 1 fi ;; restart|force-reload) PID=`cat $PIDFILE 2>/dev/null` || true log_daemon_msg "Restarting Mailman master qrunner" "mailmanctl" $DAEMON -q stop if test -n "$PID" && kill -0 $PID 2>/dev/null ; then log_action_begin_msg "Waiting" for cnt in `seq 1 5`; do sleep 1 kill -0 $PID 2>/dev/null || break done; if kill -0 $PID 2>/dev/null ; then log_action_end_msg 1 else log_action_end_msg 0 fi fi if $DAEMON -q start; then log_end_msg 0 else log_end_msg 1 fi ;; *) echo "Usage: /etc/init.d/mailman {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0 debian/patches/0000775000000000000000000000000013236635506010630 5ustar debian/patches/series0000664000000000000000000000067313236635506012053 0ustar 01_defaults.debian.patch 10_wrapper_uid.patch 16_update_debian.patch 20_qmail_to_mailman.debian.patch 25_site_logo.patch 51_nocompile.pyc.patch 52_check_perms_lstat.patch 53_disable_addons.patch 63_update_default_server_language.patch 66_donot_let_cache_html_pages.patch 79_archiver_slash.patch 80_sync_members_unicode.patch 90_gettext_errors.patch 91_utf8.patch CVE-2015-2775.patch CVE-2016-6893.patch fix-lp1251495.patch CVE-2018-5950.patch debian/patches/fix-lp1251495.patch0000664000000000000000000000127013174122612013611 0ustar Description: Fixed a misspelling in Tagger.py Forwarded: no (Backport) Author: Christian Ehrhardt Original-Author: Mark Sapiro Origin: http://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1433 Bug-Ubuntu: https://bugs.launchpad.net/bugs/1251495 Last-Update: 2017-10-25 --- a/Mailman/Handlers/Tagger.py +++ b/Mailman/Handlers/Tagger.py @@ -71,7 +71,7 @@ def process(mlist, msg, msgdata): if hits: msgdata['topichits'] = hits.keys() change_header('X-Topics', NLTAB.join(hits.keys()), - mlist, msg, msgdata, Delete=False) + mlist, msg, msgdata, delete=False) debian/patches/01_defaults.debian.patch0000664000000000000000000000250613174122612015172 0ustar Author: Tollef Fog Heen Description: Set sane defaults in Defaults.py.in Forwarded: not-needed Index: b/Mailman/Defaults.py.in =================================================================== --- a/Mailman/Defaults.py.in 2012-05-20 14:21:35.818868768 +0200 +++ b/Mailman/Defaults.py.in 2012-05-20 14:21:39.730888293 +0200 @@ -54,7 +54,7 @@ # disable Mailman's logo footer altogther, hack # Mailman/htmlformat.py:MailmanLogo(), which also contains the hardcoded links # and image names. -IMAGE_LOGOS = '/icons/' +IMAGE_LOGOS = '/doc/mailman/images/' # The name of the Mailman favicon SHORTCUT_ICON = 'mm-icon.png' @@ -85,7 +85,7 @@ # because otherwise the default mappings won't be correct. DEFAULT_EMAIL_HOST = '@MAILHOST@' DEFAULT_URL_HOST = '@URLHOST@' -DEFAULT_URL_PATTERN = 'http://%s/mailman/' +DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/' # DEFAULT_HOST_NAME has been replaced with DEFAULT_EMAIL_HOST, however some # sites may have the former in their mm_cfg.py files. If so, we'll believe @@ -1458,7 +1458,7 @@ MAILDIR_DIR = os.path.join(QUEUE_DIR, 'maildir') # Other useful files -PIDFILE = os.path.join(DATA_DIR, 'master-qrunner.pid') +PIDFILE = "/var/run/mailman/mailman.pid" SITE_PW_FILE = os.path.join(DATA_DIR, 'adm.pw') LISTCREATOR_PW_FILE = os.path.join(DATA_DIR, 'creator.pw') debian/patches/CVE-2015-2775.patch0000664000000000000000000000322713174122612013247 0ustar Description: fix path traversal vulnerability Origin: upstream, http://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1553 Bug: https://bugs.launchpad.net/mailman/+bug/1437145 Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781626 Index: mailman-2.1.16/Mailman/Defaults.py.in =================================================================== --- mailman-2.1.16.orig/Mailman/Defaults.py.in 2015-04-03 08:34:42.559865603 -0400 +++ mailman-2.1.16/Mailman/Defaults.py.in 2015-04-03 08:34:42.551865544 -0400 @@ -151,7 +151,7 @@ # A Python regular expression character class which defines the characters # allowed in list names. Lists cannot be created with names containing any -# character that doesn't match this class. +# character that doesn't match this class. Do not include '/' in this list. ACCEPTABLE_LISTNAME_CHARACTERS = '[-+_.=a-z0-9]' Index: mailman-2.1.16/Mailman/Utils.py =================================================================== --- mailman-2.1.16.orig/Mailman/Utils.py 2015-04-03 08:34:42.559865603 -0400 +++ mailman-2.1.16/Mailman/Utils.py 2015-04-03 08:34:42.551865544 -0400 @@ -92,6 +92,12 @@ # # The former two are for 2.1alpha3 and beyond, while the latter two are # for all earlier versions. + # + # But first ensure the list name doesn't contain a path traversal + # attack. + if len(re.sub(mm_cfg.ACCEPTABLE_LISTNAME_CHARACTERS, '', listname)) > 0: + syslog('mischief', 'Hostile listname: %s', listname) + return False basepath = Site.get_listpath(listname) for ext in ('.pck', '.pck.last', '.db', '.db.last'): dbfile = os.path.join(basepath, 'config' + ext) debian/patches/91_utf8.patch0000664000000000000000000001234313174122612013041 0ustar Author: Thorsten Glaser Description: Switch mailman to UTF-8 (release goal) Bug-Debian: #398777 Forwarded: no --- a/Mailman/Defaults.py.in +++ b/Mailman/Defaults.py.in @@ -23,6 +23,9 @@ # mm_cfg.py instead, in the designated area. See the comments in that file # for details. +import sys +reload(sys) +sys.setdefaultencoding('utf-8') import os @@ -410,7 +413,7 @@ ARCHIVER_OBSCURES_EMAILADDRS = Yes # is used in MIME to refer to a method of converting a sequence of # octets into a sequence of characters. If you change the default # charset, you might need to add it to VERBATIM_ENCODING below. -DEFAULT_CHARSET = None +DEFAULT_CHARSET = 'utf-8' # Most character set encodings require special HTML entity characters to be # quoted, otherwise they won't look right in the Pipermail archives. However @@ -419,7 +422,7 @@ DEFAULT_CHARSET = None # encodings where the octet 0x26 does not always represent the & character. # This variable contains a list of such characters sets which are not # HTML-quoted in the archives. -VERBATIM_ENCODING = ['iso-2022-jp'] +VERBATIM_ENCODING = ['utf-8', 'iso-2022-jp'] # When the archive is public, should Mailman also make the raw Unix mbox file # publically available? @@ -1537,7 +1540,7 @@ def _(s): LC_DESCRIPTIONS = {} def add_language(code, description, charset, direction='ltr'): - LC_DESCRIPTIONS[code] = (description, charset, direction) + LC_DESCRIPTIONS[code] = (description, 'utf-8', direction) add_language('ar', _('Arabic'), 'utf-8', 'rtl') add_language('ast', _('Asturian'), 'iso-8859-1', 'ltr') --- a/messages/Makefile.in +++ b/messages/Makefile.in @@ -68,7 +68,7 @@ PROG= @PYTHON@ build/bin/pygettext.py .SUFFIXES: .po .mo .po.mo: - -$(MSGFMT) -o $@ $< + -msgconv -t utf-8 $< | tee $<.utf-8 | msgfmt -o $@ - # Rules @@ -107,7 +107,7 @@ doinstall: mofiles po=$(srcdir)/$$d/LC_MESSAGES/mailman.po; \ mo=$(srcdir)/$$d/LC_MESSAGES/mailman.mo; \ dir=$(DESTDIR)$(prefix)/messages/$$d/LC_MESSAGES; \ - $(INSTALL) -m $(FILEMODE) $$po $$dir; \ + $(INSTALL) -m $(FILEMODE) $$po.utf-8 $$dir/mailman.po; \ $(INSTALL) -m $(FILEMODE) $$mo $$dir; \ done @@ -117,6 +117,7 @@ finish: clean: -rm -f */LC_MESSAGES/mailman.mo + -rm -f */LC_MESSAGES/mailman.po.utf-8 fileclean: -rm -f marked.files docstring.files --- a/templates/Makefile.in +++ b/templates/Makefile.in @@ -60,12 +60,61 @@ INSTALL_PROGRAM=$(INSTALL) -m $(EXEMODE) all: install: + # charsets taken from Mailman/Defaults.py.in (all calls to add_language) + # except gl which pretends to be utf-8 but isn’t (except one file which we patch) + CHARSET_ar=utf-8; \ + CHARSET_ast=iso-8859-1; \ + CHARSET_ca=utf-8; \ + CHARSET_cs=iso-8859-2; \ + CHARSET_da=iso-8859-1; \ + CHARSET_de=iso-8859-1; \ + CHARSET_en=us-ascii; \ + CHARSET_es=iso-8859-1; \ + CHARSET_et=iso-8859-15; \ + CHARSET_eu=iso-8859-15; \ + CHARSET_fa=utf-8; \ + CHARSET_fi=iso-8859-1; \ + CHARSET_fr=iso-8859-1; \ + CHARSET_gl=iso-8859-1; \ + CHARSET_el=iso-8859-7; \ + CHARSET_he=utf-8; \ + CHARSET_hr=iso-8859-2; \ + CHARSET_hu=iso-8859-2; \ + CHARSET_ia=iso-8859-15; \ + CHARSET_it=iso-8859-1; \ + CHARSET_ja=euc-jp; \ + CHARSET_ko=euc-kr; \ + CHARSET_lt=iso-8859-13; \ + CHARSET_nl=iso-8859-1; \ + CHARSET_no=iso-8859-1; \ + CHARSET_pl=iso-8859-2; \ + CHARSET_pt=iso-8859-1; \ + CHARSET_pt_BR=iso-8859-1; \ + CHARSET_ro=iso-8859-2; \ + CHARSET_ru=koi8-r; \ + CHARSET_sk=utf-8; \ + CHARSET_sl=iso-8859-2; \ + CHARSET_sr=utf-8; \ + CHARSET_sv=iso-8859-1; \ + CHARSET_tr=iso-8859-9; \ + CHARSET_uk=utf-8; \ + CHARSET_vi=utf-8; \ + CHARSET_zh_CN=utf-8; \ + CHARSET_zh_TW=utf-8; \ for d in $(LANGUAGES); \ do \ + eval cs='$$CHARSET_'$$d; \ + test -n "$$cs" || cs=cp1252; \ $(srcdir)/../mkinstalldirs $(DESTDIR)$(TEMPLATEDIR)/$$d; \ for f in $(srcdir)/$$d/*.html $(srcdir)/$$d/*.txt; \ do \ - $(INSTALL) -m $(FILEMODE) $$f $(DESTDIR)$(TEMPLATEDIR)/$$d; \ + bn=$$(basename $$f); \ + if ! iconv -f $$cs -t utf-8 <$$f; then \ + echo >&2 Warning: broken encoding in $$f; \ + iconv -c -f cp1252 -t utf-8 <$$f; \ + fi >$$f.utf-8; \ + $(INSTALL) -m $(FILEMODE) $$f.utf-8 $(DESTDIR)$(TEMPLATEDIR)/$$d/$$bn; \ + rm -f $$f.utf-8; \ done; \ done --- a/templates/gl/listinfo.html +++ b/templates/gl/listinfo.html @@ -32,7 +32,7 @@

-

Se desexa ver os envíos anteriores á rolda, +

Se desexa ver os envíos anteriores rolda, pode visitar os arquivos de . @@ -61,7 +61,7 @@

- Para se subscribir a só ten de cubrir os datos do + Para se subscribir a s ten de cubrir os datos do formulario seguinte:

    --- a/Mailman/Logging/Logger.py +++ b/Mailman/Logging/Logger.py @@ -28,7 +28,7 @@ from Mailman.Logging.Utils import _logex # Set this to the encoding to be used for your log file output. If set to # None, then it uses your system's default encoding. Otherwise, it must be an # encoding string appropriate for codecs.open(). -LOG_ENCODING = 'iso-8859-1' +LOG_ENCODING = 'utf-8' debian/patches/79_archiver_slash.patch0000664000000000000000000000242713174122612015160 0ustar Author: Lionel Elie Mamane Description: Some non-pipermail archivers require _no_ final slash (Closes: #350388) Bug-Debian: #350388 Forwarded: no Index: b/Mailman/Archiver/Archiver.py =================================================================== --- a/Mailman/Archiver/Archiver.py 2012-05-20 14:21:35.318872203 +0200 +++ b/Mailman/Archiver/Archiver.py 2012-05-20 14:21:42.266900742 +0200 @@ -146,8 +146,6 @@ 'listname': self.internal_name(), 'hostname': hostname } - if not url.endswith('/'): - url += '/' return url def __archive_file(self, afn): Index: b/Mailman/Defaults.py.in =================================================================== --- a/Mailman/Defaults.py.in 2012-05-20 14:21:40.878893858 +0200 +++ b/Mailman/Defaults.py.in 2012-05-20 14:21:42.266900742 +0200 @@ -248,7 +248,7 @@ # interpolate the name of the list into this. You can also include a # "%(hostname)s" in the string, into which Mailman will interpolate # the host name (usually DEFAULT_URL_HOST). -PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/pipermail/%(listname)s' +PUBLIC_ARCHIVE_URL = 'http://%(hostname)s/pipermail/%(listname)s/' # Are archives on or off by default? DEFAULT_ARCHIVE = On debian/patches/80_sync_members_unicode.patch0000664000000000000000000000326613174122612016351 0ustar Description: Fix UnicodeError in sync_members Origin: https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1429 and https://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1437 Bug-Debian: #732741 Forwarded: not-needed Applied-Upstream: in 2.1.18 (2.1.17 contains the bug!) --- a/bin/sync_members +++ b/bin/sync_members @@ -1,6 +1,6 @@ #! @PYTHON@ # -# Copyright (C) 1998-2003 by the Free Software Foundation, Inc. +# Copyright (C) 1998-2013 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -256,6 +256,10 @@ def main(): try: if not dryrun: mlist.ApprovedAddMember(userdesc, welcome, notifyadmin) + # Avoid UnicodeError if name can't be decoded + if isinstance(name, str): + name = unicode(name, errors='replace') + name = name.encode(enc, 'replace') s = email.Utils.formataddr((name, addr)).encode(enc, 'replace') print _('Added : %(s)s') except Errors.MMAlreadyAMember: @@ -276,6 +280,10 @@ def main(): # reasons is in the database. Use a lower level remove to # get rid of this member's entry mlist.removeMember(addr) + # Avoid UnicodeError if name can't be decoded + if isinstance(name, str): + name = unicode(name, errors='replace') + name = name.encode(enc, 'replace') s = email.Utils.formataddr((name, addr)).encode(enc, 'replace') print _('Removed: %(s)s') debian/patches/CVE-2018-5950.patch0000664000000000000000000000426713236635506013267 0ustar Description: An XSS vulnerability in the user options CGI could allow a crafted URL to execute arbitrary javascript in a user's browser. A related issue could expose information on a user's options page without requiring login. These are fixed. Thanks to Calum Hutton for the report. CVE-2018-5950 (LP: #1747209) Author: Mark Sapiro diff --git a/Mailman/Cgi/options.py b/Mailman/Cgi/options.py index 97adbc0..6f8bf26 100644 --- a/Mailman/Cgi/options.py +++ b/Mailman/Cgi/options.py @@ -165,20 +165,6 @@ def main(): doc.set_language(userlang) i18n.set_language(userlang) - # See if this is VARHELP on topics. - varhelp = None - if cgidata.has_key('VARHELP'): - varhelp = cgidata['VARHELP'].value - elif os.environ.get('QUERY_STRING'): - # POST methods, even if their actions have a query string, don't get - # put into FieldStorage's keys :-( - qs = cgi.parse_qs(os.environ['QUERY_STRING']).get('VARHELP') - if qs and type(qs) == types.ListType: - varhelp = qs[0] - if varhelp: - topic_details(mlist, doc, user, cpuser, userlang, varhelp) - return - # Are we processing an unsubscription request from the login screen? if cgidata.has_key('login-unsub'): # Because they can't supply a password for unsubscribing, we'll need @@ -290,6 +276,22 @@ def main(): print doc.Format() return + # See if this is VARHELP on topics. + varhelp = None + if cgidata.has_key('VARHELP'): + varhelp = cgidata['VARHELP'].value + elif os.environ.get('QUERY_STRING'): + # POST methods, even if their actions have a query string, don't get + # put into FieldStorage's keys :-( + qs = cgi.parse_qs(os.environ['QUERY_STRING']).get('VARHELP') + if qs and type(qs) == types.ListType: + varhelp = qs[0] + if varhelp: + # Sanitize the topic name. + varhelp = re.sub('<.*', '', varhelp) + topic_details(mlist, doc, user, cpuser, userlang, varhelp) + return + if cgidata.has_key('logout'): print mlist.ZapCookie(mm_cfg.AuthUser, user) loginpage(mlist, doc, user, language) debian/patches/16_update_debian.patch0000664000000000000000000000544613174122612014742 0ustar Author: Tollef Fog Heen Description: update is called from the Debian maintainer scripts and prints non-appropriate output. Change that. Forwarded: not-needed Index: b/bin/update =================================================================== --- a/bin/update 2012-05-20 14:21:35.710868234 +0200 +++ b/bin/update 2012-05-20 14:21:40.194890466 +0200 @@ -334,37 +334,6 @@ # BAW: Is this still necessary?! mlist.Save() # - # check to see if pre-b4 list-specific templates are around - # and move them to the new place if there's not already - # a new one there - # - # There is a problem with the following if the list name is equal - # to a language code. All the templates get moved from templates/xx - # to lists/xx. To avoid this, test the list name, and if it is 'en' - # or matches a name in the messages directory, just skip this step. - if (mlist._internal_name <> 'en' and - mlist._internal_name not in os.listdir(mm_cfg.MESSAGES_DIR)): - # It's okay to move the templates. - tmpl_dir = os.path.join(mm_cfg.PREFIX, "templates") - list_dir = mm_cfg.LIST_DATA_DIR - b4_tmpl_dir = os.path.join(tmpl_dir, mlist._internal_name) - new_tmpl_dir = os.path.join(list_dir, mlist._internal_name) - if os.path.exists(b4_tmpl_dir): - print _("""\ -- This list looks like it might have <= b4 list templates around""") - for f in os.listdir(b4_tmpl_dir): - o_tmpl = os.path.join(b4_tmpl_dir, f) - n_tmpl = os.path.join(new_tmpl_dir, f) - if os.path.exists(o_tmpl): - if not os.path.exists(n_tmpl): - os.rename(o_tmpl, n_tmpl) - print _('- moved %(o_tmpl)s to %(n_tmpl)s') - else: - print _("""\ -- both %(o_tmpl)s and %(n_tmpl)s exist, leaving untouched""") - else: - print _("""\ -- %(o_tmpl)s doesn't exist, leaving untouched""") # # Move all the templates to the en language subdirectory as required for # Mailman 2.1 @@ -669,12 +638,12 @@ 'Mailman/HyperDatabase.py', 'Mailman/pipermail.py', 'Mailman/smtplib.py', 'Mailman/Cookie.py', 'bin/update_to_10b6', 'scripts/mailcmd', - 'scripts/mailowner', 'mail/wrapper', 'Mailman/pythonlib', + 'scripts/mailowner', 'Mailman/pythonlib', 'cgi-bin/archives', 'Mailman/MailCommandHandler'): remove_old_sources(mod) listnames = Utils.list_names() if not listnames: - print _('no lists == nothing to do, exiting') +# print _('no lists == nothing to do, exiting') return # # for people with web archiving, make sure the directories debian/patches/52_check_perms_lstat.patch0000664000000000000000000000100313174122612015631 0ustar Author: Tollef Fog Heen Description: Use lstat instead of stat in check_perms Forwarded: not-needed Index: b/bin/check_perms =================================================================== --- a/bin/check_perms 2012-05-20 14:21:35.462867016 +0200 +++ b/bin/check_perms 2012-05-20 14:21:41.342896168 +0200 @@ -82,7 +82,7 @@ return os.stat(path)[ST_MODE] def statgidmode(path): - stat = os.stat(path) + stat = os.lstat(path) return stat[ST_MODE], stat[ST_GID] seen = {} debian/patches/90_gettext_errors.patch0000664000000000000000000002223713174122612015235 0ustar Author: Thorsten Glaser Description: Fix bugs in translation files Forwarded: no --- a/messages/es/LC_MESSAGES/mailman.po +++ b/messages/es/LC_MESSAGES/mailman.po @@ -11460,7 +11460,6 @@ msgid "" "\n" "This script is provided for convenience purposes only. It isn't supported.\n" msgstr "" -"\n" "Reduce el espacio usado en disco de los archivos de pipermail.\n" "\n" "Sintaxis: %(PROGRAM)s [opciones] fichero ...\n" @@ -11486,7 +11485,7 @@ msgstr "" "guin cuando est satisfecho con los resultados.\n" "\n" "Este guin se suministra nicamente por motivos de conveniencia. No\n" -"est soportado." +"est soportado.\n" #: bin/remove_members:20 #, fuzzy @@ -11630,7 +11629,7 @@ msgstr "" "\n" "Opciones:\n" " -v / --verbose\n" -" Muestra que es lo que est haciendo el guin." +" Muestra que es lo que est haciendo el guin.\n" #: bin/reset_pw.py:77 msgid "Changing passwords for list: %(listname)s" @@ -11750,7 +11749,7 @@ msgstr "" " -h / --help\n" " Muestra este texto y termina.\n" "\n" -"Ejemplo: show_qfiles qfiles/shunt/*.pck" +"Ejemplo: show_qfiles qfiles/shunt/*.pck\n" #: bin/sync_members:19 msgid "" --- a/messages/fr/LC_MESSAGES/mailman.po +++ b/messages/fr/LC_MESSAGES/mailman.po @@ -7290,7 +7290,7 @@ msgid "" " Incomplete filter rules will be ignored." msgstr "" "Les rgles de filtrage d'en ttes requirent un motif.\n" -"\t\t Les rgles de filtrage incompltes seront ignores.\n" +"\t\t Les rgles de filtrage incompltes seront ignores." #: Mailman/Gui/Privacy.py:500 msgid "" --- a/messages/hr/LC_MESSAGES/mailman.po +++ b/messages/hr/LC_MESSAGES/mailman.po @@ -1776,7 +1776,7 @@ msgstr "" " proces potvrde.\n" "\n" "

    Ili stisnite Zanemari odbaci da biste zanemarili ovu " -"promjenu adrese\n" +"promjenu adrese" #: Mailman/Cgi/confirm.py:602 msgid "Change address" @@ -1812,7 +1812,7 @@ msgstr "" " %(subject)s u zaglavlju nije pronaena. Vjerovatno je\n" " tome razlog taj to je moderator liste ve odobrio ili odbacio " "poruku.\n" -" Niste bili u mogunosti zanemariti istu na vrijeme.\n" +" Niste bili u mogunosti zanemariti istu na vrijeme." #: Mailman/Cgi/confirm.py:657 msgid "Posted message canceled" @@ -4628,7 +4628,7 @@ msgstr "" msgid "" "Remove message attachments that have a matching content\n" " type." -msgstr "Ukloni privitke poruka koji se podudaraju s tipovima sadraja.\n" +msgstr "Ukloni privitke poruka koji se podudaraju s tipovima sadraja." #: Mailman/Gui/ContentFilter.py:82 msgid "" --- a/messages/ia/LC_MESSAGES/mailman.po +++ b/messages/ia/LC_MESSAGES/mailman.po @@ -68,7 +68,7 @@ msgstr "Texto%(sz)s" #: Mailman/Archiver/HyperArch.py:913 msgid "figuring article archives\n" -msgstr "recerca in le archivo pro iste articulo" +msgstr "recerca in le archivo pro iste articulo\n" #: Mailman/Archiver/HyperArch.py:923 msgid "April" @@ -1539,7 +1539,7 @@ msgstr "" "lista\n" " %(listname)s, ma illo debe esser approbate per le\n" " moderator del lista. Tu requesta ha essite reinviate al " -"moderator, e tu essera notificate super su decision.\n" +"moderator, e tu essera notificate super su decision." #: Mailman/Cgi/confirm.py:371 Mailman/Cgi/confirm.py:436 #: Mailman/Cgi/confirm.py:525 Mailman/Cgi/confirm.py:762 @@ -1891,7 +1891,7 @@ msgstr "" " Tu ha rehabilitate con successo tu abonamento al\n" " lista %(listname)s. Tu pote nunc visitar tu pagina de optiones de " -"abonato.\n" +"abonato." #: Mailman/Cgi/confirm.py:784 msgid "Re-enable mailing list membership" @@ -2565,7 +2565,7 @@ msgstr "" "Tu ha essite disabonate con successo del lista %(fqdn_listname)s.\n" " Si tu recipeva summarios, tu forsan va reciper ancora uno.\n" " Si tu ha alicun question super tu disabonamento, per favor\n" -" contacta le proprietarios del lista a %(owneraddr)s.\n" +" contacta le proprietarios del lista a %(owneraddr)s." #: Mailman/Cgi/options.py:676 msgid "" @@ -3206,11 +3206,11 @@ msgstr "Plus informationes: %(listurl)s" #: Mailman/Commands/cmd_join.py:17 msgid "The `join' command is synonymous with `subscribe'.\n" -msgstr "Le commando 'join' (in anglese) es synonyme con 'subscribe'." +msgstr "Le commando 'join' (in anglese) es synonyme con 'subscribe'.\n" #: Mailman/Commands/cmd_leave.py:17 msgid "The `leave' command is synonymous with `unsubscribe'.\n" -msgstr "Le commando 'leave' (in anglese) es synonyme a 'unsubscribe'." +msgstr "Le commando 'leave' (in anglese) es synonyme a 'unsubscribe'.\n" #: Mailman/Commands/cmd_lists.py:17 msgid "" @@ -3303,7 +3303,7 @@ msgstr "" #: Mailman/Commands/cmd_remove.py:17 msgid "The `remove' command is synonymous with `unsubscribe'.\n" -msgstr "Le commando 'remove' (in anglese) es synonyme con 'unsubscribe'." +msgstr "Le commando 'remove' (in anglese) es synonyme con 'unsubscribe'.\n" #: Mailman/Commands/cmd_set.py:26 msgid "" @@ -3598,7 +3598,7 @@ msgstr "fixa option de rememoration" #: Mailman/Commands/cmd_stop.py:17 msgid "stop is synonymous with the end command.\n" -msgstr "'stop' es synonyme con le commando 'end' (fin)." +msgstr "'stop' es synonyme con le commando 'end' (fin).\n" #: Mailman/Commands/cmd_subscribe.py:17 msgid "" @@ -10976,7 +10976,7 @@ msgstr "" "\n" "Optiones:\n" " -v / --verbose\n" -" Imprime lo que le scripto face." +" Imprime lo que le scripto face.\n" #: bin/reset_pw.py:77 msgid "Changing passwords for list: %(listname)s" --- /dev/null +++ b/messages/checkpo.sh @@ -0,0 +1,6 @@ +#!/bin/sh +rv=0 +for x in */LC_MESSAGES/*.po; do + msgfmt -o - "$x" >/dev/null || rv=1 +done +exit $rv --- a/messages/ja/LC_MESSAGES/mailman.po +++ b/messages/ja/LC_MESSAGES/mailman.po @@ -2175,7 +2175,7 @@ msgstr "" "ʤ¸ڡˤ, 桼򥯥ȥץȹ\n" "餹褦ʵ路 HTMLɤޤޤƤޤ.Τ, ѹϵѲޤ" ". ⤷, ɤƤѹɬפǤ, \n" -"Mailman Ф˥륢ʤФʤޤ.\n" +"Mailman Ф˥륢ʤФʤޤ." #: Mailman/Cgi/edithtml.py:172 msgid "See " @@ -5516,7 +5516,7 @@ msgstr "" "Ǥ᡼꡼ϤΥإåꤵƤȴԤϤư򤹤.\n" "(㤨, žȤ˥ɥ쥹ˤʤȤ, ֿפȤ\n" "Υ顼Υɥ쥹ˤȤ) ä, ̵ˤǤ褦ˤ" -".\n" +"." #: Mailman/Gui/General.py:463 msgid "" @@ -5553,7 +5553,7 @@ msgstr "" ". ⤷, ɤƤѹɬפǤ, \n" "Mailman Ф˥륢ʤФʤޤ.\n" "ѹˤ bin/withlist bin/config_list Ȥä\n" -"mlist.info ꤷޤ.\n" +"mlist.info ꤷޤ." #: Mailman/Gui/General.py:512 msgid "" @@ -6362,7 +6362,7 @@ msgstr "" "ʲץɬפȤޤ. 1ԤˤĤ1ĤΥɥ쥹\n" "Ƥ; ɽȤˤϹԤκǽ ^ ǻϤƤ.\n" "Ԥκǽ @ ʸˤ, ˤ Mailman ƥΥꥹ̾³,\n" -"ΥꥹȲǧޤ.\n" +"ΥꥹȲǧޤ." #: Mailman/Gui/Privacy.py:257 msgid "" @@ -8571,7 +8571,7 @@ msgstr "" "ٹ: ¸˥ǥ쥯ȥ꤬ other-executable (o+x) \n" " ʤäƤޤ. ʤΥƥΥ桼¸\n" " ɤळȤǤޤ. 󥹥ȡޥ˥奢ˤ, \n" -" ɤ齤Ǥ뤫񤤤ƤޤΤ, ͤˤƤ.\n" +" ɤ齤Ǥ뤫񤤤ƤޤΤ, ͤˤƤ." #: bin/check_perms:240 msgid "mbox file must be at least 0660:" --- a/messages/nl/LC_MESSAGES/mailman.po +++ b/messages/nl/LC_MESSAGES/mailman.po @@ -2267,6 +2267,7 @@ msgstr "" "wijziging\n" "is daarom geweigerd. Als u toch deze wijzigingen wilt aanbrengen, heeft u\n" "shell access nodig voor uw Mailman server.\n" +" " #: Mailman/Cgi/edithtml.py:172 msgid "See " @@ -3771,7 +3772,7 @@ msgstr "" " en zonder aanhalingstekens!) uw lidmaatschapsadres. Als u het \n" " wachtwoord van de lijstbeheerder of moderator opgeeft, zullen ook " "de\n" -" verborgen leden worden vermeld." +" verborgen leden worden vermeld.\n" #: Mailman/Commands/cmd_who.py:46 msgid "" @@ -5999,6 +6000,7 @@ msgstr "" "Deze wijziiging kan gemaakt worden met bin/withlist of met bin/config_list " "door het\n" "instellen van mlist.info.\n" +" " #: Mailman/Gui/General.py:512 msgid "" --- a/messages/pl/LC_MESSAGES/mailman.po +++ b/messages/pl/LC_MESSAGES/mailman.po @@ -1389,7 +1389,7 @@ msgid "" " confirmation step." msgstr "" "Wprowad kod potwierdzajcy,\n" -" ktry otrzymae w emailu. Nastpnie nacinij OK,\n" +" ktry otrzymae w emailu. Nastpnie nacinij OK," #: Mailman/Cgi/confirm.py:214 msgid "Confirmation string:" @@ -1629,7 +1629,7 @@ msgstr "" " Nacinij Wypisz, aby potwierdzi\n" " wypisanie si.\n" "\n" -"

    Kliknij Anuluj, aby zrezygnowa.\n" +"

    Kliknij Anuluj, aby zrezygnowa." #: Mailman/Cgi/confirm.py:491 Mailman/Cgi/options.py:767 #: Mailman/Cgi/options.py:911 Mailman/Cgi/options.py:921 debian/patches/20_qmail_to_mailman.debian.patch0000664000000000000000000000213013174122612016660 0ustar Author: Tollef Fog Heen Description: Fix some paths in the qmail_to_mailman wrapper (Closes: #217573) Bug-Debian: #217573 Forwarded: not-needed Index: b/contrib/qmail-to-mailman.py =================================================================== --- a/contrib/qmail-to-mailman.py 2012-05-20 14:21:35.642867903 +0200 +++ b/contrib/qmail-to-mailman.py 2012-05-20 14:21:40.422891600 +0200 @@ -28,12 +28,12 @@ # # INSTALLATION: # -# Install this file as ~mailman/qmail-to-mailman.py +# Install this file as ~mailman/bin/qmail-to-mailman.py # # To configure a virtual domain to connect to mailman, create these files: # # ~mailman/.qmail-default -# |preline @PYTHON@ @prefix@/mail-in.py +# |preline /usr/bin/python /usr/lib/mailman/bin/mail-in.py # # /var/qmail/control/virtualdomains: # DOMAIN.COM:mailman @@ -64,7 +64,7 @@ sys.exit(100) local = string.lower(local) - local = re.sub("^mailman-","",local) + local = re.sub("^" + MailmanUser + "-","",local) names = ("root", "postmaster", "mailer-daemon", "mailman-owner", "owner", "abuse") debian/patches/51_nocompile.pyc.patch0000664000000000000000000000133713174122612014727 0ustar Author: Tollef Fog Heen Description: Don't do the compileall dance. It'll just waste CPU cycles. Forwarded: not-needed Index: b/Makefile.in =================================================================== --- a/Makefile.in 2012-05-20 14:21:35.498867180 +0200 +++ b/Makefile.in 2012-05-20 14:21:41.118895048 +0200 @@ -124,7 +124,7 @@ do \ (cd $$d; $(MAKE) DESTDIR=$(DESTDIR) install); \ done - $(PYTHON) -c 'from compileall import *; compile_dir("$(DESTDIR)$(prefix)/Mailman")' + #$(PYTHON) -c 'from compileall import *; compile_dir("$(DESTDIR)$(prefix)/Mailman")' # Only run bin/update if we aren't installing in DESTDIR, as this # means there are probably no lists to deal with, and it wouldn't debian/patches/10_wrapper_uid.patch0000664000000000000000000000261013174122612014457 0ustar Author: Tollef Fog Heen Description: Makes sure we're called with the right UID and GID (Closes: #36010, #89564, #89848, 89818) Bug-Debian: #36010, #89564, #89848, 89818 Forwarded: no Index: b/src/cgi-wrapper.c =================================================================== --- a/src/cgi-wrapper.c 2012-05-20 14:21:35.746868411 +0200 +++ b/src/cgi-wrapper.c 2012-05-20 14:21:39.958889298 +0200 @@ -42,7 +42,8 @@ char* fake_argv[3]; running_as_cgi = 1; - check_caller(logident, parentgroup); + if (getgid() >= 100 && getgid() != 65534) + check_caller(logident, parentgroup); /* For these CGI programs, we can ignore argc and argv since they * don't contain anything useful. `script' will always be the driver Index: b/src/mail-wrapper.c =================================================================== --- a/src/mail-wrapper.c 2012-05-20 14:21:35.746868411 +0200 +++ b/src/mail-wrapper.c 2012-05-20 14:21:39.958889298 +0200 @@ -74,7 +74,8 @@ fatal(logident, MAIL_ILLEGAL_COMMAND, "Illegal command: %s", argv[1]); - check_caller(logident, parentgroup); + if (getgid() >= 100 && getgid() != 65534) + check_caller(logident, parentgroup); /* If we got here, everything must be OK */ status = run_script(argv[1], argc, argv, env); debian/patches/25_site_logo.patch0000664000000000000000000000606213174122612014135 0ustar Author: Paul Wise Description: Allow each mailman site to have a custom text, link and logo. Also fix existing logo linkage. Bug-Debian: http://bugs.debian.org/267243 Forwarded: http://sf.net/support/tracker.php?aid=1615748 Index: b/Mailman/Defaults.py.in =================================================================== --- a/Mailman/Defaults.py.in 2012-05-20 14:21:39.730888293 +0200 +++ b/Mailman/Defaults.py.in 2012-05-20 14:21:40.878893858 +0200 @@ -64,6 +64,12 @@ #MAILMAN_URL = 'http://www.list.org/' #MAILMAN_URL = 'http://mailman.sf.net/' +# The site logo/text presence, site text, site url and site logo +SITE_LINK = Yes +SITE_TEXT = 'Debian Powered' +SITE_URL = 'http://www.debian.org/' +SITE_LOGO = '/images/mailman/debianpowered.png' + # Mailman needs to know about (at least) two fully-qualified domain names # (fqdn); 1) the hostname used in your urls, and 2) the hostname used in email # addresses for your domain. For example, if people visit your Mailman system Index: b/Mailman/htmlformat.py =================================================================== --- a/Mailman/htmlformat.py 2012-05-20 14:21:35.570867546 +0200 +++ b/Mailman/htmlformat.py 2012-05-20 14:21:40.878893858 +0200 @@ -631,24 +631,33 @@ def MailmanLogo(): t = Table(border=0, width='100%') + + version = mm_cfg.VERSION + mmlink = _("Delivered by Mailman") + pylink = _("Python Powered") + gnulink = _("GNU's Not Unix") + if mm_cfg.SITE_LINK: + sitelink = mm_cfg.SITE_TEXT + if mm_cfg.IMAGE_LOGOS: - def logo(file): - return mm_cfg.IMAGE_LOGOS + file - mmlink = 'Delivered by Mailman' \ - '
    version %s' % (logo(DELIVERED_BY), mm_cfg.VERSION) - pylink = 'Python Powered' % \ - logo(PYTHON_POWERED) - gnulink = 'GNU\'s Not Unix' % \ - logo(GNU_HEAD) - t.AddRow([mmlink, pylink, gnulink]) - else: - # use only textual links - version = mm_cfg.VERSION - mmlink = Link(MAILMAN_URL, - _('Delivered by Mailman
    version %(version)s')) - pylink = Link(PYTHON_URL, _('Python Powered')) - gnulink = Link(GNU_URL, _("Gnu's Not Unix")) - t.AddRow([mmlink, pylink, gnulink]) + def logo(file, alt, base=mm_cfg.IMAGE_LOGOS): + return '%s' % \ + (base + file, alt) + mmlink = logo(DELIVERED_BY, mmlink) + pylink = logo(PYTHON_POWERED, pylink) + gnulink = logo(GNU_HEAD, gnulink) + if mm_cfg.SITE_LINK: + sitelink = logo(mm_cfg.SITE_LOGO, sitelink, "") + + mmlink = Link(MAILMAN_URL, mmlink + _('
    version %(version)s')) + pylink = Link(PYTHON_URL, pylink) + gnulink = Link(GNU_URL, gnulink) + links = [mmlink, pylink, gnulink] + if mm_cfg.SITE_LINK: + if mm_cfg.SITE_URL: + sitelink = Link(mm_cfg.SITE_URL, sitelink) + links.append(sitelink) + t.AddRow(links) return t debian/patches/CVE-2016-6893.patch0000664000000000000000000002316013174122612013253 0ustar Description: fix CSRF vulnerability in the user options page Origin: backport, http://bazaar.launchpad.net/~mailman-coders/mailman/2.1/revision/1668 Bug: https://bugs.launchpad.net/mailman/+bug/1614841 Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=835970 Index: mailman-2.1.16/Mailman/Cgi/admindb.py =================================================================== --- mailman-2.1.16.orig/Mailman/Cgi/admindb.py 2016-10-06 11:27:07.449509526 -0400 +++ mailman-2.1.16/Mailman/Cgi/admindb.py 2016-10-06 11:27:07.445509484 -0400 @@ -39,6 +39,7 @@ from Mailman.Cgi import Auth from Mailman.htmlformat import * from Mailman.Logging.Syslog import syslog +from Mailman.CSRFcheck import csrf_check EMPTYSTRING = '' NL = '\n' @@ -58,6 +59,9 @@ else: ssort = SSENDER +AUTH_CONTEXTS = (mm_cfg.AuthListAdmin, mm_cfg.AuthSiteAdmin, + mm_cfg.AuthListModerator) + def helds_by_skey(mlist, ssort=SSENDER): @@ -123,6 +127,18 @@ # Make sure the user is authorized to see this page. cgidata = cgi.FieldStorage(keep_blank_values=1) + # CSRF check + safe_params = ['adminpw', 'admlogin', 'msgid', 'sender', 'details'] + params = cgidata.keys() + if set(params) - set(safe_params): + csrf_checked = csrf_check(mlist, cgidata.getvalue('csrf_token')) + else: + csrf_checked = True + # if password is present, void cookie to force password authentication. + if cgidata.getvalue('adminpw'): + os.environ['HTTP_COOKIE'] = '' + csrf_checked = True + if not mlist.WebAuthenticate((mm_cfg.AuthListAdmin, mm_cfg.AuthListModerator, mm_cfg.AuthSiteAdmin), @@ -200,7 +216,11 @@ elif not details: # This is a form submission doc.SetTitle(_('%(realname)s Administrative Database Results')) - process_form(mlist, doc, cgidata) + if csrf_checked: + process_form(mlist, doc, cgidata) + else: + doc.addError( + _('The form lifetime has expired. (request forgery check)')) # Now print the results and we're done. Short circuit for when there # are no pending requests, but be sure to save the results! admindburl = mlist.GetScriptURL('admindb', absolute=1) @@ -221,7 +241,7 @@ mlist.Save() return - form = Form(admindburl) + form = Form(admindburl, mlist=mlist, contexts=AUTH_CONTEXTS) # Add the instructions template if details == 'instructions': doc.AddItem(Header( Index: mailman-2.1.16/Mailman/Cgi/edithtml.py =================================================================== --- mailman-2.1.16.orig/Mailman/Cgi/edithtml.py 2016-10-06 11:27:07.449509526 -0400 +++ mailman-2.1.16/Mailman/Cgi/edithtml.py 2016-10-06 11:27:07.445509484 -0400 @@ -30,9 +30,12 @@ from Mailman.Cgi import Auth from Mailman.Logging.Syslog import syslog from Mailman import i18n +from Mailman.CSRFcheck import csrf_check _ = i18n._ +AUTH_CONTEXTS = (mm_cfg.AuthListAdmin, mm_cfg.AuthSiteAdmin) + def main(): @@ -82,6 +85,18 @@ # Must be authenticated to get any farther cgidata = cgi.FieldStorage() + # CSRF check + safe_params = ['VARHELP', 'adminpw', 'admlogin'] + params = cgidata.keys() + if set(params) - set(safe_params): + csrf_checked = csrf_check(mlist, cgidata.getvalue('csrf_token')) + else: + csrf_checked = True + # if password is present, void cookie to force password authentication. + if cgidata.getvalue('adminpw'): + os.environ['HTTP_COOKIE'] = '' + csrf_checked = True + # Editing the html for a list is limited to the list admin and site admin. if not mlist.WebAuthenticate((mm_cfg.AuthListAdmin, mm_cfg.AuthSiteAdmin), @@ -126,7 +141,11 @@ try: if cgidata.keys(): - ChangeHTML(mlist, cgidata, template_name, doc) + if csrf_checked: + ChangeHTML(mlist, cgidata, template_name, doc) + else: + doc.addError( + _('The form lifetime has expired. (request forgery check)')) FormatHTML(mlist, doc, template_name, template_info) finally: doc.AddItem(mlist.GetMailmanFooter()) @@ -145,7 +164,8 @@ doc.AddItem(FontSize("+1", link)) doc.AddItem('

    ') doc.AddItem('


    ') - form = Form(mlist.GetScriptURL('edithtml') + '/' + template_name) + form = Form(mlist.GetScriptURL('edithtml') + '/' + template_name, + mlist=mlist, contexts=AUTH_CONTEXTS) text = Utils.maketext(template_name, raw=1, mlist=mlist) # MAS: Don't websafe twice. TextArea does it. form.AddItem(TextArea('html_code', text, rows=40, cols=75)) Index: mailman-2.1.16/Mailman/Cgi/options.py =================================================================== --- mailman-2.1.16.orig/Mailman/Cgi/options.py 2016-10-06 11:27:07.449509526 -0400 +++ mailman-2.1.16/Mailman/Cgi/options.py 2016-10-06 11:27:07.445509484 -0400 @@ -32,6 +32,7 @@ from Mailman import i18n from Mailman.htmlformat import * from Mailman.Logging.Syslog import syslog +from Mailman.CSRFcheck import csrf_check SLASH = '/' SETLANGUAGE = -1 @@ -46,6 +47,8 @@ True = 1 False = 0 +AUTH_CONTEXTS = (mm_cfg.AuthListAdmin, mm_cfg.AuthSiteAdmin, + mm_cfg.AuthListModerator, mm_cfg.AuthUser) def main(): @@ -87,6 +90,19 @@ # The total contents of the user's response cgidata = cgi.FieldStorage(keep_blank_values=1) + # CSRF check + safe_params = ['displang-button', 'language', 'email', 'password', 'login', + 'login-unsub', 'login-remind', 'VARHELP', 'UserOptions'] + params = cgidata.keys() + if set(params) - set(safe_params): + csrf_checked = csrf_check(mlist, cgidata.getvalue('csrf_token')) + else: + csrf_checked = True + # if password is present, void cookie to force password authentication. + if cgidata.getvalue('password'): + os.environ['HTTP_COOKIE'] = '' + csrf_checked = True + # Set the language for the page. If we're coming from the listinfo cgi, # we might have a 'language' key in the cgi data. That was an explicit # preference to view the page in, so we should honor that here. If that's @@ -265,6 +281,15 @@ # options. The first set of checks does not require the list to be # locked. + # Before going further, get the result of CSRF check and do nothing + # if it has failed. + if csrf_checked == False: + doc.addError( + _('The form lifetime has expired. (request forgery check)')) + options_page(mlist, doc, user, cpuser, userlang) + print doc.Format() + return + if cgidata.has_key('logout'): print mlist.ZapCookie(mm_cfg.AuthUser, user) loginpage(mlist, doc, user, language) @@ -775,7 +800,8 @@ mlist.FormatButton('othersubs', _('List my other subscriptions'))) replacements[''] = ( - mlist.FormatFormStart('options', user)) + mlist.FormatFormStart('options', user, mlist=mlist, + contexts=AUTH_CONTEXTS, user=user)) replacements[''] = user replacements[''] = presentable_user replacements[''] = mlist.FormatButton( Index: mailman-2.1.16/Mailman/HTMLFormatter.py =================================================================== --- mailman-2.1.16.orig/Mailman/HTMLFormatter.py 2016-10-06 11:27:07.449509526 -0400 +++ mailman-2.1.16/Mailman/HTMLFormatter.py 2016-10-06 11:27:07.445509484 -0400 @@ -28,6 +28,8 @@ from Mailman.i18n import _ +from Mailman.CSRFcheck import csrf_token + EMPTYSTRING = '' BR = '
    ' @@ -314,12 +316,17 @@ container.AddItem("") return container - def FormatFormStart(self, name, extra=''): + def FormatFormStart(self, name, extra='', + mlist=None, contexts=None, user=None): base_url = self.GetScriptURL(name) if extra: full_url = "%s/%s" % (base_url, extra) else: full_url = base_url + if mlist: + return ("""
    +""" + % (full_url, csrf_token(mlist, contexts, user))) return ('' % full_url) def FormatArchiveAnchor(self): Index: mailman-2.1.16/Mailman/htmlformat.py =================================================================== --- mailman-2.1.16.orig/Mailman/htmlformat.py 2016-10-06 11:27:07.449509526 -0400 +++ mailman-2.1.16/Mailman/htmlformat.py 2016-10-06 11:27:07.445509484 -0400 @@ -406,13 +406,14 @@ class Form(Container): def __init__(self, action='', method='POST', encoding=None, - mlist=None, contexts=None, *items): + mlist=None, contexts=None, user=None, *items): apply(Container.__init__, (self,) + items) self.action = action self.method = method self.encoding = encoding self.mlist = mlist self.contexts = contexts + self.user = user def set_action(self, action): self.action = action @@ -427,7 +428,7 @@ if self.mlist: output = output + \ '\n' \ - % csrf_token(self.mlist, self.contexts) + % csrf_token(self.mlist, self.contexts, self.user) output = output + Container.Format(self, indent+2) output = '%s\n%s
    \n' % (output, spaces) return output debian/patches/63_update_default_server_language.patch0000664000000000000000000000317413174122612020373 0ustar Author: Lszl 'GCS' Bszrmnyi Description: Get the default language from the config file, and do not use the hardcoded English. Forwarded: no Index: b/bin/update =================================================================== --- a/bin/update 2012-05-20 14:21:40.194890466 +0200 +++ b/bin/update 2012-05-20 14:21:41.810898489 +0200 @@ -121,7 +121,7 @@ # # First, get rid of any lists/ template or lists//en template # that is identical to the global templates/* default. - for gtemplate in os.listdir(os.path.join(mm_cfg.TEMPLATE_DIR, 'en')): + for gtemplate in os.listdir(os.path.join(mm_cfg.TEMPLATE_DIR, mm_cfg.DEFAULT_SERVER_LANGUAGE)): # BAW: get rid of old templates, e.g. admlogin.txt and # handle_opts.html try: @@ -155,14 +155,14 @@ os.unlink(os.path.join(mlist.fullpath(), gtemplate + '.prev')) # Match against the lists//en/* templates try: - fp = open(os.path.join(mlist.fullpath(), 'en', gtemplate)) + fp = open(os.path.join(mlist.fullpath(), mm_cfg.DEFAULT_SERVER_LANGUAGE, gtemplate)) except IOError, e: if e.errno <> errno.ENOENT: raise else: tcksum = Utils.md5_new(fp.read()).digest() fp.close() if gcksum == tcksum: - os.unlink(os.path.join(mlist.fullpath(), 'en', gtemplate)) + os.unlink(os.path.join(mlist.fullpath(), mm_cfg.DEFAULT_SERVER_LANGUAGE, gtemplate)) # Match against the templates/* template try: fp = open(os.path.join(mm_cfg.TEMPLATE_DIR, gtemplate)) debian/patches/53_disable_addons.patch0000664000000000000000000000343713174122612015110 0ustar Author: Tollef Fog Heen Description: Disable some modules which are pulled in from other Debian packages. Forwarded: not-needed Index: b/misc/Makefile.in =================================================================== --- a/misc/Makefile.in 2012-05-20 14:21:35.426866830 +0200 +++ b/misc/Makefile.in 2012-05-20 14:21:41.570897293 +0200 @@ -57,7 +57,10 @@ JACODECSPKG= @JACODECSPKG@ KOCODECSPKG= @KOCODECSPKG@ -PACKAGES= $(EMAILPKG) $(JACODECSPKG) $(KOCODECSPKG) +#Debian note (LEM): we take the Japanese and Korean codecs from other +#Debian packages, but not email because the one in Python 2.4 doesn't work +#with Mailman; when Mailman upgrades to email 3.0.x, we can try again. +PACKAGES= $(EMAILPKG) # Modes for directories and executables created by the install # process. Default to group-writable directories but Index: b/misc/paths.py.in =================================================================== --- a/misc/paths.py.in 2012-05-20 14:21:35.426866830 +0200 +++ b/misc/paths.py.in 2012-05-20 14:21:41.570897293 +0200 @@ -67,13 +67,19 @@ # files would be imported automatically. But because we inhibit the importing # of the site module, we need to be explicit about importing these codecs. if not jaok: - import japanese + try: + import japanese + except ImportError: + pass # As of KoreanCodecs 2.0.5, you had to do the second import to get the Korean # codecs installed, however leave the first import in there in case an upgrade # changes this. if not kook: - import korean - import korean.aliases + try: + import korean + import korean.aliases + except ImportError: + pass # Arabic and Hebrew (RFC-1556) encoding aliases. (temporary solution) import encodings.aliases encodings.aliases.aliases.update({ debian/patches/66_donot_let_cache_html_pages.patch0000664000000000000000000000153413174122612017472 0ustar Author: Tollef Fog Heen Description: Patch to prevent browser from caching pages (Closes: #281284) Bug-Debian: #281284 Forwarded: no Index: b/Mailman/htmlformat.py =================================================================== --- a/Mailman/htmlformat.py 2012-05-20 14:21:40.878893858 +0200 +++ b/Mailman/htmlformat.py 2012-05-20 14:21:42.038899614 +0200 @@ -302,7 +302,8 @@ charset = 'us-ascii' if self.language and Utils.IsLanguage(self.language): charset = Utils.GetCharSet(self.language) - output = ['Content-Type: text/html; charset=%s\n' % charset] + output = ['Content-Type: text/html; charset=%s' % charset] + output.append('Cache-control: no-cache\n') if not self.suppress_head: kws.setdefault('bgcolor', self.bgcolor) tab = ' ' * indent debian/changelog0000664000000000000000000022407713237056073011064 0ustar mailman (1:2.1.16-2ubuntu0.5) trusty-security; urgency=medium * SECURITY UPDATE: Cross-site scripting vulnerability - debian/patches/CVE-2018-5950.patch: fix this in Mailman/Cgi/options.py. - CVE-2018-5950 -- Leonidas S. Barbosa Wed, 07 Feb 2018 14:45:50 -0300 mailman (1:2.1.16-2ubuntu0.3) trusty; urgency=medium * Fixed a misspelling in Tagger.py that breaks Lists with topics enabled (LP: #1251495) -- Christian Ehrhardt Wed, 25 Oct 2017 16:46:47 +0200 mailman (1:2.1.16-2ubuntu0.2) trusty-security; urgency=medium * SECURITY UPDATE: CSRF vulnerability in the user options page - debian/patches/CVE-2016-6893.patch: add CSRF checks to Mailman/Cgi/admindb.py, Mailman/Cgi/edithtml.py, Mailman/Cgi/options.py, Mailman/HTMLFormatter.py, Mailman/htmlformat.py. - CVE-2016-6893 -- Marc Deslauriers Thu, 06 Oct 2016 11:27:40 -0400 mailman (1:2.1.16-2ubuntu0.1) trusty-security; urgency=medium * SECURITY UPDATE: path traversal vulnerability - debian/patches/CVE-2015-2775.patch: validate list name in Mailman/Utils.py, add comment to Mailman/Defaults.py.in. - CVE-2015-2775 -- Marc Deslauriers Fri, 03 Apr 2015 08:34:52 -0400 mailman (1:2.1.16-2) unstable; urgency=medium * Upload to unstable, as requested by Thijs; we did not encounter any unexpected trouble with the version in experimental, and it does fix an RC bug as well as a release goal. -- Thorsten Glaser Mon, 03 Feb 2014 14:00:37 +0100 mailman (1:2.1.16-1exp2) experimental; urgency=low * Try harder to use UTF-8 -- Thorsten Glaser Sun, 29 Dec 2013 14:40:17 +0000 mailman (1:2.1.16-1exp1) experimental; urgency=low * Convert to UTF-8. (Closes: #398777, #535296, #732929) * Apply upstream bugfix for sync_members. (Closes: #732741) -- Thorsten Glaser Sun, 29 Dec 2013 02:08:38 +0000 mailman (1:2.1.16-1) unstable; urgency=low * New upstream release. -- Thijs Kinkhorst Wed, 06 Nov 2013 19:57:54 +0100 mailman (1:2.1.16~rc2-1) unstable; urgency=low [ Thijs Kinkhorst ] * New upstream release candidate. - Exposes message-id to templates (closes: #614340). * Remove obsolete patches, applied upstream: 21_newlist_help.patch * Updates to Russian debconf templates, thanks Ivan Krylov! (closes: #710268). * Needs at least version 3.8.0 of logrotate (closes: #687215). * Add autopkgtests, thanks Yolanda Robla! (closes: #710095) * Packaging cleanup: checked for policy 3.9.4, update Vcs URL, recommend default-mta instead of exim4. [ Thorsten Glaser ] * Prevent losing stderr in the init script when there are many lists. (closes: #702002) * debian/watch: mangle the epoch away so DDPO is green again. -- Thijs Kinkhorst Sun, 04 Aug 2013 12:00:05 +0200 mailman (1:2.1.15-1) unstable; urgency=low * New upstream release. * Improve Exim4 instructions, thanks Andrew Hodgson. * Remove obsolete PRIVATE_ARCHIVE_URL variable, thanks Matthew Hall (closes: #676481). * Correct mmarch man page, thanks Francesco Potortì (closes: #583369). * Specify need for MTA=None in postfix-to-mailman.py (closes: #648976). -- Thijs Kinkhorst Sat, 16 Jun 2012 12:04:40 +0200 mailman (1:2.1.15~rc1-1) unstable; urgency=low [ Thijs Kinkhorst ] * New upstream release candidate. * Remove obsolete patches, applied upstream: 02_use_dpkg_buildflags.patch 07_snooze.patch 59_fix_missing_language_crash.patch 70_invalid_utf8_dos.patch 71_date_overflows.patch 74_admin_non-ascii_emails.patch 80_CVE-2011-0707_confirm_xss.patch 99_js_templates.patch [ Thorsten Glaser ] * Update the watch file for Launchpad -- Thijs Kinkhorst Sun, 20 May 2012 14:01:42 +0200 mailman (1:2.1.14-4) unstable; urgency=low * Ensure CPPFLAGS and LDFLAGS are actually used during build, thanks Simon Ruderich for the patch! (closes: #663590) Additionally, enable all available hardening features. * Checked for policy 3.9.3, add DEP3 patch headers. * Add Danish debconf translation, thanks Joe Dalton (closes: #659467). * Add 'su root list' statements to logrotate config, to cope with logrotate >= 3.8; thanks Joël Bertrand (closes: #653766). * Avoid config file prompt for mailman crontab entry if this file was unmodified (closes: #655837). -- Thijs Kinkhorst Sun, 18 Mar 2012 14:12:49 +0100 mailman (1:2.1.14-3) unstable; urgency=low * Make man page descruptions match more keywords (closes: #597112). * Add cull_bad_shunt command to default cron job (closes: #615204) and improve cron job handling in the package. * Import dpkg buildflags, also enabling hardening features. * Remove gate_news debconf question. -- Thijs Kinkhorst Sat, 08 Oct 2011 17:27:51 +0200 mailman (1:2.1.14-2) unstable; urgency=low [ Thijs Kinkhorst ] * Move mail-transport-agent to Recommends, since Mailman can be configured to run with a remote MTA (closes: #616292). * Update to policy 3.9.2, add build-{arch,indep} targets. [ Thorsten Glaser ] * Add myself to Uploaders, as suggested by Thijs. * Apply patch from Barry Warsaw to switch from python-support to dh_python2. (LP: #788514) (Closes: #637398) -- Thijs Kinkhorst Wed, 17 Aug 2011 12:00:50 +0000 mailman (1:2.1.14-1) unstable; urgency=medium * New upstream release. Patches incorporated: - 15_mailmanctl_daemonize.patch - 83-CVE-2010-3089--bug599833.patch * Add upstream patch for CVE-2011-0707: XSS in confirmations. -- Thijs Kinkhorst Sat, 19 Feb 2011 08:26:43 +0100 mailman (1:2.1.13-4.1) unstable; urgency=high * Non-maintainer upload. * debian/patches - (83): New. CVE-2010-3089 security fix from mailman 2.14. Patch thanks to (grave, security; Closes: #599833). -- Jari Aalto Sat, 16 Oct 2010 08:46:55 +0300 mailman (1:2.1.13-4) unstable; urgency=medium * Fix permissions on /var/lib/mailman/archives/private, so archiving works again. Problem introduced in 1:2.1.12-3. * Fix invocation of update-rc.d which yields an error when not using dependency-based boot (closes: #590249). * Checked for policy 3.9.1, no changes needed. -- Thijs Kinkhorst Tue, 27 Jul 2010 22:56:03 +0200 mailman (1:2.1.13-3) unstable; urgency=low * Drop unneeded Indexes option from shipped apache.conf. * Eliminate update_rc.d warning by not passing runlevel 1 at stop. * Add 25_site_logo patch by Paul Wise (closes: #267243). * Do not compress PDF's under /u/s/d/mailman (closes: #582259). * Back up ./configure before running autoconf, so it can be restored in clean as not to generate irrelevant diff.gz content. * Switch to dpkg-source 3.0 (quilt) format. * Checked for policy 3.9.0, no changes needed. -- Thijs Kinkhorst Tue, 13 Jul 2010 21:35:40 +0200 mailman (1:2.1.13-2) unstable; urgency=low * postfix-to-mailman.py: check for list existence before stripping off administrative suffixes, making it also work for mailing list names ending in e.g. -admin. Thanks Axel Beckert for the patch! (Closes: #570548) * Checked for policy 3.8.4, no changes. * Minor fixes pointed out by Lintian. -- Thijs Kinkhorst Sat, 20 Mar 2010 21:57:55 +0100 mailman (1:2.1.13-1) unstable; urgency=low * New upstream release. Patches incorporated: - 16_update_debian (partially) - 30_pipermail_threads - 65_handle_templates_directories - 77_header_folding_in_attachments * Remove msgfmt.py, only used at build-time (closes: #555416). * Remove adduser calls for 'list' user. Base-passwd guarantees it to be available, and trying to add it if it were not present may lead to inconsistencies regarding expectations for that user. * Document second parameter of postfix-to-mailman.py to be ${mailbox}, effectively reverting inappropriate fix for #305762 (closes: #549224). -- Thijs Kinkhorst Thu, 31 Dec 2009 15:50:29 +0100 mailman (1:2.1.12-3) unstable; urgency=low * Remove potentially long running 'find' command in postinst, as permissions are already set correctly in the deb. Thanks Paul Slootman (closes: #544046). * Add Slovak debconf translation, thanks Ivan Masár (closes: #531576). * Update 30_pipermail_threads patch to use sequence ID instead of message ID, avoids thread breakage in archives. Thanks Mark Sapiro. * Checked for policy 3.8.3, no changes necessary. -- Thijs Kinkhorst Sun, 27 Sep 2009 17:36:01 +0200 mailman (1:2.1.12-2) unstable; urgency=low [ Lionel Elie Mamane ] * README.Exim4.Debian: add debug_print statements * apply fix from upstream to 77_header_folding_in_attachments to fix bug it introduces: messages with lines starting with "From" are split into several messages in the archive. * Use autoconf >= 2.50, not 2.13 * Ensure Mailman locks directory exists before calling update (Closes: #513988). [ Thijs Kinkhorst ] * Apply patch from Tanguy Ortolo updating postfix-to-mailman instructions to avoid backscatter mail (Closes: #520040). * Remove obsolete unicodify_archives for upgrading sarge->etch. -- Lionel Elie Mamane Fri, 22 May 2009 11:09:49 +0200 mailman (1:2.1.12-1) unstable; urgency=low * New upstream release. + Minimum Python version is now 2.4. + Patches obsoleted (incorporated or not useful anymore): 00_stolen_from_HEAD, 11_handle_propfind.patch, 32_MIME_fixup, 62_new_list_bad_pending_requests, 67_update_handle_old_versions, 68_update_catalan, 78_DeprecationWarning, 80_fix_string_search. Refresh all others. Many thanks to Mark Sapiro and Paul Wise for the help in cleaning this up. + Fixes bounce handling NotAMemberError (closes: #517997). * Various packaging cleanups, upgrade debhelper to level 7. * Removes embedded copy of pythonlib/email module. * Checked for policy 3.8.1, remove shipped var/{run,lock} dirs, they are already created correctly by the init script. -- Thijs Kinkhorst Sat, 14 Mar 2009 14:18:16 +0100 mailman (1:2.1.11-11) unstable; urgency=high [ Debconf Translations ] * Updated Vietnamese, thanks Clytie Siddall (closes: #513097). -- Thijs Kinkhorst Mon, 26 Jan 2009 13:42:33 +0100 mailman (1:2.1.11-10) unstable; urgency=low [ Debconf Translations ] * Updated Catalan, thanks David Planella. -- Thijs Kinkhorst Wed, 07 Jan 2009 23:09:56 +0100 mailman (1:2.1.11-9) unstable; urgency=high [ Debconf Translations ] * Updated Spanish, thanks Javier Fernández-Sanguino (closes: #510023). * Updated Japanese, thanks Kenshi Muto (closes: #509996). * Updated Galician, thanks Marce Villarino (closes: #510002). * Updated French, thanks Christian Perrier (closes: #510016). * Updated Italian, thanks Luca Monducci (closes: #510107). * Updated Swedish, thanks Martin Bagge and Daniel Nylander (closes: #510206). * Updated Czech, thanks Miroslav Kure (closes: #510230). * Updated German, thanks Holger Wansing (closes: #510361). * Updated Portuguese, thanks Miguel Figueiredo (closes: 510556). * Updated Russian, thanks Sergey Alyoshin (closes: #510614). -- Thijs Kinkhorst Sun, 04 Jan 2009 12:30:58 +0100 mailman (1:2.1.11-8) unstable; urgency=low * Do not stop installation when queue files are present, and this is an upgrade from the same version that was already installed. Based on a patch by Marcin Owsiany (closes: #468569). * When queue files present, offer the administrator the option to continue regardless at their own risk. This unfortunately requires some extra strings to be translated. * Update Dutch translation. * Remove mail-transport-agent from init script deps (closes: #508800). -- Thijs Kinkhorst Sat, 27 Dec 2008 15:18:55 +0100 mailman (1:2.1.11-7) unstable; urgency=low [ Thijs Kinkhorst ] * Clarify POSTFIX_STYLE_VIRTUAL_DOMAINS syntax, thanks Tomas Pospisek (closes: #507519). [ Lionel Elie Mamane ] * README.Exim4.Debian: Do lookup whole email (with domain, not only localpart) in virtual_mailman data file (bug introduced in 1:2.1.11-4) * README.Exim4.Debian: explain how to regenerate the aliases list manually (for people switching their existing configuration to the recommended one, or switching MTAs, as opposed to setting up a fresh system). -- Thijs Kinkhorst Sat, 13 Dec 2008 18:40:34 +0100 mailman (1:2.1.11-6) unstable; urgency=high * Further site list detection improvements, thanks Adeodato Simó for his suggestions. -- Thijs Kinkhorst Sun, 16 Nov 2008 13:17:10 +0100 mailman (1:2.1.11-5) unstable; urgency=high * Make init script also cope with non-specified site list. -- Thijs Kinkhorst Sun, 09 Nov 2008 11:26:46 +0100 mailman (1:2.1.11-4) unstable; urgency=medium [ Lionel Elie Mamane ] * Add -loop to list of accepted suffixes for routers in README.Exim4.Debian [ Thijs Kinkhorst ] * Add mischief to logrotate configuration (closes: #504700). * Update Mailman group and aliases path in README.Exim4.Debian, thanks Kris Popendorf (closes: #504695). * Detect a nonstandard site list name, thanks Moritz Naumann (closes: #418062). -- Thijs Kinkhorst Fri, 07 Nov 2008 09:48:10 +0100 mailman (1:2.1.11-3) unstable; urgency=low * Updated Catalan debconf translation, thanks David Planella Molas (Closes: #494110). * Added patch 68_update_catalan to update Catalan program translation, thanks Jordi Mallach (Closes: #492297). * Add a README.source file referring to quilt. -- Thijs Kinkhorst Mon, 11 Aug 2008 16:06:19 +0200 mailman (1:2.1.11-2) unstable; urgency=low * Fix SpamAssassin handler to cope with changed behaviour of matches_p() (Closes: #488584). * Remove *.pyc from /usr/lb/mailman, and any stale locks on package remove (Closes: #458414). -- Thijs Kinkhorst Tue, 8 Jul 2008 09:43:15 +0200 mailman (1:2.1.11-1) unstable; urgency=low * New upstream release. Incorporates the following Debian patches: - 81_fix_subscribe_2.1.10.patch - 61_fix_ru_siteowner.patch - 72_fblast_add_shebang.patch - 58_fix_es_translation.patch Fixes the following Debian bugs: - Use html entities when needed in Danish (Closes: #487491). * Update Galician debconf translation, thanks Jacobo Tarrio (Closes: #482137). * Some tweaks to newlist.8 (Closes: #485382). * Make quilt usage more dpkg source format 3.0 compatible and refresh all patches (Closes: #485253). * Checked for policy 3.8.0, no changes necessary. * Fix a number of buglets in 99_js_templates.patch. * Don't install stop symlinks in runlevels 0 and 6; the default sigterm functions very well to stop qrunner. * Clarify that MTA="None" is right when using postfix-to-mailman.py (Closes: #488644). * Remove pidfile after successful qrunner shutdown (Closes: #482880). -- Thijs Kinkhorst Mon, 07 Jul 2008 23:58:33 +0200 mailman (1:2.1.10-2) unstable; urgency=low * Apply upstream patch to fix regression in cmd_subscribe so that email subscribe to the -subscribe or -join address or the -request address with a bare 'subscribe' command results in the message being shunted. -- Thijs Kinkhorst Thu, 24 Apr 2008 19:30:49 +0200 mailman (1:2.1.10-1) unstable; urgency=low * New upstream release. -- Thijs Kinkhorst Mon, 21 Apr 2008 22:43:08 +0200 mailman (1:2.1.10~b4-1) unstable; urgency=low * New upstream beta release. -- Thijs Kinkhorst Fri, 14 Mar 2008 17:54:52 +0100 mailman (1:2.1.10~b3-1) unstable; urgency=low * New upstream beta release. + Restricts XSS by list admins, CVE-2008-0564. + Obsoletes 56_fix_de_broken_links.patch. + Obsoletes 81_backport_export.dpatch. + Makes list handling case sensitivity consistent (closes: #446257). + Archives do not drop headerless mime parts (Closes: #450399). + check_perms checks more perms (Closes: #260224). -- Thijs Kinkhorst Fri, 22 Feb 2008 00:09:11 +0100 mailman (1:2.1.9-10) unstable; urgency=low * Be quiet when logrotation succeeds, prevents Cron spam (closes: #456954). * Fix typo in postinst message (closes: #458981). * Switch to debhelper level 6. -- Thijs Kinkhorst Mon, 14 Jan 2008 12:10:05 +0100 mailman (1:2.1.9-9) unstable; urgency=low * Drop suggests for obsolete python-*-codecs and drop versioned dependencies for pre-oldstable versions. * Fix formatting of man pages (Closes: #432848). * Fix some bashisms in Debian packaging scripts. * Do not make /var/log/mailman world-readable, because it can contain a bit of semi-private information. Thanks Alexander Gerasiov. (Closes: #450927) * After logrotate, call 'mailmanctl reopen' instead of sending SIGHUP since that is the supported way of rotating logs (Closes: #424620). * Fix pidfile location in mailman.init, thanks Peter Rabbitson (Closes: #439325). * Make symlinks to /var/lo{g,ck}/mailman absolute, because the relative ones cause trouble on systems where people move these things around (Closes: #408855, #413604). Override lintian since this is allowed by policy. * Checked for policy 3.7.3, no changes required. Additional packaging cleanups. -- Thijs Kinkhorst Tue, 04 Dec 2007 09:12:39 +0100 mailman (1:2.1.9-8) unstable; urgency=low [ Thijs Kinkhorst ] * Added Portuguese debconf translation by Miguel Figueiredo (Closes: #414365). * Make sure Mailman can be properly purged (Closes: #421676). * Remove obsolete upgrading code. * Do not break upgrades in case python is temporarily unavailable (Closes: #419563). [ Lionel Elie Mamane ] * Avoid implicit-sort-on-load of indexes being converted to Unicode (hopefully really closes: #412142 now) -- Thijs Kinkhorst Mon, 11 Jun 2007 20:48:11 +0200 mailman (1:2.1.9-7) unstable; urgency=low * Upgrade subject and author indexes of _all_ archiving volumes to Unicode strings. (completely closes: #412142) -- Lionel Elie Mamane Wed, 28 Feb 2007 21:59:36 +0100 mailman (1:2.1.9-6) unstable; urgency=medium [ Lionel Elie Mamane ] * Allow people that have list as a supplementary group to create new mailing lists. (see bug#309339) * Upgrade subject and author indexes of current archiving volume to Unicode strings; possible slight data loss (non-ASCII characters transcoded wrongly) (closes: #412142) * Correct path to Mailman private modules dir in dh_pysupport invocation (the absolute symlinks won't work in the building area), and add private pythonlib dir. [ Thijs Kinkhorst ] * Fix path-typo in apache.conf dedicated virtual host example, thanks Alberto Furia (Closes: #409180). -- Lionel Elie Mamane Tue, 27 Feb 2007 22:38:07 +0100 mailman (1:2.1.9-5) unstable; urgency=medium * Ship bin/export.py from upstream SVN to make automatic upgrades to lenny possible. (closes: #407260) -- Lionel Elie Mamane Sat, 20 Jan 2007 05:04:11 +0100 mailman (1:2.1.9-4) unstable; urgency=medium [ Lionel Elie Mamane ] * Manually replace empty /var/lib/mailman/pythonlib/ by symlink to /usr/lib/mailman/pythonlib/ (closes: #403312) -- Lionel Elie Mamane Sat, 16 Dec 2006 09:55:21 +0100 mailman (1:2.1.9-3) unstable; urgency=medium [ Lionel Elie Mamane ] * Follow requirements/requests of upgrade to new python policy more narrowly: build-depend on newer version of python-support, add XS-Python-Version/XB-Python-Version fields to control, give path to private python modules to dh_pysupport (Closes: #394181). * Move python-lib directory to /usr/lib/mailman/, like Mailman code; /var/lib/mailman is grossly wrong (Closes: #400005). [ Thijs Kinkhorst ] * Add subscribe/unsubscribe aliases to second half of example, and a note about chgrp when creating a new list through the web interface. Both in README.Exim4.Debian, thanks Ian Wienand (Closes: 387457). * Remove lintian overrides that are not needed with recent Lintians. [ Translations ] * Updated Vietnamese by Clytie Siddall (Closes: 395851). * Updated German by Holger Wansing (Closes: 400963). -- Thijs Kinkhorst Thu, 14 Dec 2006 15:18:12 +0100 mailman (1:2.1.9-2) unstable; urgency=medium [ Thijs Kinkhorst ] * Medium urgency upload for RC upgrading bug. * Fix buggy sedding in postinst (Closes: #392995). * Drop disabled 73_list-id_strict_rfc patch; integrated upstream. * Clarify README.Debian about where to insert SpamAssassin integration (Closes: #369171). * Add 72_fblast_add_shebang patch; this script is set as executable thus needs an interpreter on the first line. [ Hector Garcia ] * Removed 12_savannah_wrapper.patch. Doesn't work and is not supported upstream any longer (Closes: #287554). [ Translations ] * Updated French by Florentin Duneau (Closes: #393096). * Updated Brazilian Portuguese by Felipe Augusto van de Wiel. -- Thijs Kinkhorst Tue, 17 Oct 2006 10:14:57 +0200 mailman (1:2.1.9-1) unstable; urgency=medium [ Hector Garcia ] * New upstream bugfix release - Deleting included patches: 24_CVE-2006-2941, 23_CVE-2006-3636, 25_CVE-2006-4624 - Fixes German translation (Closes: #273469) and comment typo (Closes: #378509). * Updated patches. * Deleting 03_documentation_source.patch. Integrated upstream. * Deleting 68_translation_update_nl.patch. Too many upstream changes, doesn't apply any longer. Wrote to patch author in case it wants to update it. * Renamed 58_fix_translations to 58_fix_es_translations [ Thijs Kinkhorst ] * Tweak debconf templates according to best practices. * Update debconf templates, eliminates two, changes some, introduces new line numbering from debconf-updatepo. * Name languages together with their ISO code in the debconf question (Closes: #276505). * Add new languages Turkish, Interlingua, Arabic, Vietnamese to debconf choice, change Chinese from big5 to zh_CN and zh_TW. * Add subscribe/unsubscribe to example in README.Exim4.Debian, thanks Brian Foley (Closes: #387457). [ Riccardo Setti ] * Switched to the new python policy (Closes: #380876). [ Lionel Elie Mamane ] * Don't ship C sources with documentation; there is no reason for it. [ Translations ] * Updated vi.po. Translated by Clytie Siddall. (Closes: #388202) * Updated ja.po. Translated by Kenshi Muto. (Closes: #388206, #391532) * Updated nl.po. Translated by Kurt De Bree. (Closes: #388100) * Updated ru.po. Translated by Yuri Kozlov. (Closes: #388111, #391597) * Updated sv.po. Translated by Daniel Nylander. (Closes: #388090) * Updated hu.po. Translated by Laszlo Boszormenyi. * Updated it.po: Translated by Luca Monducci. (Closes: #388657, #391568) * Updated cs.po: Translated by Miroslav Kure. (Closes: #388663) * Updated pt_BR.po: Translated by Andre Luis Lopes. * Updated es.po: Translated by Javier Fernández-Sanguino Peña. * Updated fr.po: Translated by Philippe Batailler. (Closes: #388651) -- Thijs Kinkhorst Mon, 9 Oct 2006 16:59:10 +0200 mailman (1:2.1.8-4) unstable; urgency=high * High-urgency upload to fix release-critical bug. * Add versioned depends on lsb-base (>= 3.0-6) to make sure a system has the lsb output functions (Closes: #390138). * Remove python2.2-korean-codecs from Suggests, replace with python-korean-codecs. -- Thijs Kinkhorst Fri, 29 Sep 2006 17:33:09 +0200 mailman (1:2.1.8-3) unstable; urgency=medium [ Paul Wise ] * Switch from dpatch to quilt and regenerate all patches [ Thijs Kinkhorst ] * Use LSB output functions in init script. * Use chown root:list instead of deprecated root.list. * Remove pre-sarge upgrading code; this eliminates a lot of cruft, non-debconf prompting and two debconf templates. * Only use ucf on purge when it's available. [ Matej Vela ] * Rearrange find options in debian/postinst to prevent warnings. [ Lionel Elie Mamane ] * Use Mailman's fork of the Python email package instead of the one from Python; Mailman is incompatible with the one in Python 2.4 (closes: #384016) [ Hector Garcia ] * Added 24_CVE-2006-2941 taken from Lionel's port to sarge * Added 23_CVE-2006-3636 taken from Lionel's port to sarge * Added 25_CVE-2006-4624 taken from Lionel's port to sarge -- Hector Garcia Wed, 20 Sep 2006 20:22:17 +0200 mailman (1:2.1.8-2) unstable; urgency=low [ Thijs Kinkhorst ] * Add default apache.conf under /etc/mailman (Closes: #282460, #135148, #178543, #179253). * Update all man pages to be in line with current mailman functionality (Closes: #286607, #276952). * Add suggests on lynx (Closes: #296781). * Checked for policy 3.7.2, no changes necessary. * Add watch file. * Add LSB dependency info to init script. * Fix example in postfix-to-mailman.py to pass ${mailbox}, not ${user} (Closes: #305762). * Add Lintian overrides for those things that are legitimate. * Drop recommends on essential base-passwd >= a version from 1997. * Use apache2 instead of apache as the first alternative for httpd. * Move options to `find` in debian/rules to start of commandline to prevent warnings. [ Hector Garcia ] * Putting permision on archive/private to 770 www-data:list to prevent regular users from reading private lists. (Closes: #356877) * Changed '| xarg' for '-exec' on find to prevent problems when there are too many files (Closes: #366102) * Added a slash to the end of DEFAULT_URL_PATTERN on mm_cfg.py (Closes: #365881) * Documented on README.Debian the apache + suexec case. (Closes: #360905) * Updated Uploaders * Removed the find which deleted ../$(package)*dsc.asc. It is not needed. [ Riccardo Setti ] * epoch 1. Now people should upgrade mailman without problems. (closes: #366438) * Applied patch which fixes string search in admin.py. (closes: #359721) * Updated German debconf translation (closes: #353713) * Updated French debconf translation (closes: #355674) * Updated Italian debconf translation (closes: #352523) * Updated Russian debconf translation (closes: #361656) * Updated Dutch debconf translation (closes: #377254) * Applied patch of Martin Pitt which will create /var/run and /var/lock directory if missing. (closes: #376542) * Bumped debhelper compatibily to 5. - modified debian/control to reflect this change. [ Paul Wise ] * Add spamassassin example to the mm_cfg.py -- Thijs Kinkhorst Mon, 14 Aug 2006 18:49:29 +0200 mailman (0:2.1.8-1) unstable; urgency=low * New upstream release -- Lionel Elie Mamane Sun, 16 Apr 2006 15:16:02 +0200 mailman (0:2.1.7+2.1.8rc1-1) unstable; urgency=high * New upstream release - Update patches: 03_documentation_source 64_correct_html_nesting 68_translation_update_nl 71_date_overflows 99_js_templates - Drop patches merged upstream: 02_stolen_from_upstream_CVS 23_fix_urls 72_hyperarch_error_handling.dpatch - Bugs fixed upstream: - Fix XSS hole in private archive cgi-bin. (CVE-2006-1712) * Don't delete other package's ucf-managed configuration files (closes: #358575) -- Lionel Elie Mamane Tue, 11 Apr 2006 22:35:33 +0200 mailman (2.1.7-2) UNRELEASED; urgency=low * Integrate translations: (closes: #350491, #351759, #351947) vi, sv, ja, nl, it * Don't force archiver URL to end in a slash, yet ensure the default one has one because pipermail needs it. (closes: #350388) -- Lionel Elie Mamane Tue, 11 Apr 2006 20:35:20 +0200 mailman (2.1.7-1) unstable; urgency=low * New upstream release: - Update patches: 71_date_overflows.dpatch 76_fix-private-redirect.dpatch 99_js_templates.dpatch 53_disable_addons.dpatch 68_translation_update_nl.dpatch - Drop patches merged upstream: 60_french_archtocentry 76_fix-private-redirect - Bugs fixed upstream: - Mailman loses header spam rules (closes: #309870) * Pull fixes from various bugs from upstream CVS * Ship documentation source (closes: #346180) * Document queue-is-not-empty upgrade condition better (closes: #268117) * Updated debconf template translations: - it (closes: #345234) - fr (closes: #346297) - sv (closes: #347607) * Tweak mailman/update_passwords debconf note to address ambiguity in English version discovered by French translation. -- Lionel Elie Mamane Sun, 29 Jan 2006 21:57:45 +0100 mailman (2.1.6-2) UNRELEASED; urgency=low * Tweak 21_newlist_help.dpatch: The "automagically setgid to right group" part was slightly suboptimal. (closes: #309339) * Update German translation of debconf templates (closes: #344907) * Shut up DeprecationWarning with Python 2.4 in Scrubber.py (closes: #341699) -- Lionel Elie Mamane Wed, 4 Jan 2006 21:43:25 +0100 mailman (2.1.6-1) unstable; urgency=low * The "Quick, quick, upload before upstream releases a new version" release * New upstream release: (closes: #311414) New release packaging work: - Drop patches integrated upstream (or same fix in another way): handle-from-in-non-ascii 75_danish_options_traceback 73_list-id_strict_rfc 69_python24_bouncehandler_datetime 65_donot_add_empty_cc 57_fix_missing_da_template 04_CAN-2005-0202 03_CAN-2004-1143 02_CAN-2004-1177_driver_css - Upstream doesn't ship README.{EXIM,POSTFIX} anymore: Drop their patch - Update patches 62_new_list_bad_pending_requests 64_correct_html_nesting 68_translation_update_nl 70_invalid_utf8_dos.dpatch 99_js_templates Bugs fixed upstream: - Possible data loss in archives (closes: #244699) * Don't fold headers in attachments (closes: #244673) This avoids breaking cryptographic signatures * Warn that list passwords are broken on upgrade from 2.0 (closes: #343029) -- Lionel Elie Mamane Sun, 25 Dec 2005 15:13:36 +0100 mailman (2.1.5-11) UNRELEASED; urgency=low * Run genaliases (or direct admin to do it) on upgrade from 2.0 (closes: #340503) * Include instructions for painless Exim4 integration (closes: #303342) -- Lionel Elie Mamane Thu, 8 Dec 2005 21:52:32 +0100 mailman (2.1.5-10) unstable; urgency=low * Merge with 2.1.5-8ubuntu2: Python 2.4 compatibility patch in bounce handling. * Don't fall apart if the filename of an attachment is an invalid UTF-8 string (closes: #327732) CVE-2005-3573 * Don't die on overflow in date handling (closes: #326024) CVE-2005-4153 * Enable error handling in HyperArch (closes: #310451) * Ensure list-id is always in brackets in headers (closes: #244700) * Admin page: don't assume subscribed emails are pure ASCII (closes: #315358) * Bump up Standards-Version to 3.6.2 * Add vietnamese translation (closes: #312673) * Apply corrections to german translation (closes: #313800) * Adapt to the md5sum in dpkg or coreutils automatically (closes: #340036) * More robust parsing of /var/lib/ucf/hashfile: - Don't touch files of other packages that happen to have our file's full path as subpath. - Accept any number of spaces between the hash and the filename there. * Work around ucf bug #238730 for postfix-to-mailman.py, too. * Fix traceback on Danish version of options page (closes: #339582) * Fix the private authentication form to point to the right file (closes: #298842) * Add Swedish debconf template translation (closes: #339890) * Depend on any debconf-2.0 implementation instead of debconf specifically (closes: #332018) * Copyright file: - New FSF address - List the other maintainers * Depend on adduser, used in preinst * Move away from deprecated user.group syntax in chown * Ensure package is built with autoconf 2.5x, not autoconf 2.13 -- Lionel Elie Mamane Sat, 26 Nov 2005 10:03:23 +0100 mailman (2.1.5-9) unstable; urgency=medium * Update the Belgian translation, thanks to Luc Stroobant for prodding and for providing the translation. (closes: #306748) -- Tollef Fog Heen Sat, 28 May 2005 12:47:32 +0200 mailman (2.1.5-8) unstable; urgency=low * Add Italian debconf translation (closes: #278562) * Remove Siggy from uploaders as he is MIA. * Actually add 67_update_handle_old_versions to the list of patches applied and fix up line numbers. (closes: #304023) -- Tollef Fog Heen Thu, 14 Apr 2005 16:01:15 +0200 mailman (2.1.5-7) unstable; urgency=high * Brown bag release -- use '/' instead of the undefined SLASH in Cgi/private.py. (closes: #294874) * Handle the case of non-ascii chars in realname. (closes: #293861) * Fix up typo in cron script (closes: #284311) * Use head -n 1 instead of cat for getting the mailname out of /etc/mailname. (closes: #287636) -- Tollef Fog Heen Wed, 16 Feb 2005 20:29:00 +0100 mailman (2.1.5-6) unstable; urgency=high * SECURITY UPDATE: fix information disclosure * Added debian/patches/04_CAN-2005-0202.dpatch: Mailman/Cgi/private.py, true_path(): fix the removal of '..' and '.' from private mail archive paths to prohibit path traversal (the former version transformed ".....///" to "../") (closes: #294467) (References: CAN-2005-0202) * Tighten build-deps on dpatch. (closes: #291289) * Update Czech debconf translation. (closes: #293002) * Add Dutch debconf translation. (closes: #283973) -- Tollef Fog Heen Thu, 10 Feb 2005 12:10:42 +0100 mailman (2.1.5-5) unstable; urgency=high * Fix CAN-2004-1143 (weak auto-generated passwords) by pulling the appropriate CVS change from upstream. Thanks to Florian Weimer for finding and producing a patch for this bug. (closes: #286796) * Fix CAN-2004-1177 (CSS problem in scripts/driver) by pulling the appropriate patch from upstream CVS. Thanks to Florian Weimer for discovering and producing a patch for this bug. (closes: #287555) * Handle the case of upgrading from Mailman 2.0 where we have pending subscriptions. This should hopefully fix #280529. Thanks to Bastian Kleinedam for the patch. (closes: #280529) * Skip directories when updating templates, to make the life easier for people who have their configuration in Subversion or Arch. (closes: #284771) * Remove 55_options_traceback.dpatch as this problem seems to have been fixed upstream and it causes other problems. (closes: #285839) -- Tollef Fog Heen Mon, 10 Jan 2005 17:12:58 +0100 mailman (2.1.5-4) unstable; urgency=high Changes by Laszlo 'GCS' Boszormenyi; the "Pál utcai fiúk (Boys of Paul street) musical band is divine" release, thanks to their fine concert yesterday (2004 Nov. 12). * Add /usr/lib/mailman/bin to the Python module path of postfix-to-mailman.py (closes: #279361, #280246). * Suggests listadmin, as that may be useful for some admins (closes: #279192). * Prevent caching of html output with 'Cache-control: no-cache' (closes: #281284). -- Tollef Fog Heen Sat, 13 Nov 2004 21:32:07 +0100 mailman (2.1.5-3) unstable; urgency=high Changes by Laszlo 'GCS' Boszormenyi: * Do not fail if $PIDFILE does not exist during initscript restart (closes: #275690). * Use printf and not 'echo -e' in postinst as the former is the portable; remove obsoleted and commented out debhelper lines from rules. * Do not report pending requests on new lists because no request.pck exists yet (closes: #273553). * Update DEFAULT_SERVER_LANGUAGE and not blindly English as that can break package if English is not selected (closes: #274104). * Correct HTML nesting in listinfo for browsers with strict checking (iCab and maybe others, closes: #249212). * Only add the 'Cc:' mail header in AvoidDuplicates.py if that it isn't empty (closes: #253944). * Treat postfix-to-mailman.py with ucf just like qmail-to-postfix.py and update README.Debian accordingly (closes: #275482). * Update newlist.8 manpage, -o is no more, add -l (closes: #269642); sync list_members.8 with current upstream script output as well (closes: #245871). * Rephrase README.EXIM a bit more to be more clearer (closes: #271987). -- Tollef Fog Heen Thu, 14 Oct 2004 19:38:22 +0000 mailman (2.1.5-2) unstable; urgency=high Changes by Laszlo 'GCS' Boszormenyi: * Fix for eating messages because of _snooze interface change; ACK NMU by Steve Langasek (closes: #272012). * Ensure a new line before append anything to the config file (closes: #272419). * As we do not use quiet mode for the daemon, do not print extra dots when mailman starts/stops/restarts (closes: #270369). * Use the correct pid file for logrotate script (closes: #247194). * Fix Russian newlist template, mailman-owner is siteowner now (closes: #260816); remove CAN-2004-0412 dpatch, as this is now included upstream; enable french_archtocentry dpatch (closes: #262349). * Updated debconf translations: - Czech by Miroslav Kure (closes: #273840); - French by Philippe Batailler (closes: #269637); - German by Jens Nachtigall (closes: #274392); - Also a big thanks to Denis Barbier who spot that two strings were not marked as translatable and did the preliminary work with the translations! -- Tollef Fog Heen Thu, 7 Oct 2004 10:44:38 +0200 mailman (2.1.5-1.1) unstable; urgency=high * Non-maintainer upload. * High-urgency upload for sarge-targetted RC fix. * Fix missing argument in OutgoingRunner.py which could potentially cause email to be lost (closes: #272012). -- Steve Langasek Wed, 29 Sep 2004 01:34:46 -0700 mailman (2.1.5-1) unstable; urgency=high * New upstream version (closes: #249959). - fixes NotAMember traceback (closes: #246648). - handles corrupt files better (closes: #221107, #249929). * Rename Catalan translation (closes: #255874) * Apply patch from Pabs to fix crash if enabling missing language (closes: 257606) * Chicken out if the queue is not empty when upgrading. (closes: #248438) * Make sure the files in the cron.d are executable before running them. Also, call the scripts directly rather than using python $SCRIPT. (closes: #264705). (No, it doesn't handle upgrades properly, but it's not a big issue and will be fixed for etch.) * Make sure we don't ship /var/lib/mailman/pythonlib, should make that go away on installations which already have it (closes: #242740). * Consolidate logrotate scripts (closes: #235006). * Update Spanish debconf translation, thanks to Carlos Valdivia Yague. (closes: #247830) * Add Czech debconf translation, thanks to Miroslav Kure. (closes: #244421) -- Tollef Fog Heen Wed, 18 Aug 2004 19:21:48 +0200 mailman (2.1.4-5) unstable; urgency=high * This is an intermediate release to fix a security issue, 2.1.5 will be released as split binary packages. * Applied Mandrake security patch for CAN-2004-0412, thanks to Florian Weimer (closes: #251176). * Fixed spanish translation (closes: #248083). -- Siggy Brentrup Sat, 29 May 2004 14:53:41 +0200 mailman (2.1.4-4) unstable; urgency=medium * Urgency medium because RC bugs are fixed. * Fix README.Debian concerning URLs (bsb, closes: #235835). * Add fix for missing installation of Danish templates (by GCS) * config: don't try to list_lists when upgrading from pre 2.1 (bsb, closes: #242945). * Fix Woody FTBFS, reported and solution provided by Andreas Barth , (by GCS, closes: #243209). * Ask for the language used by Mailman from the enabled languages (by GCS, closes: #224319). * postfix-to-mailman.py: Fix ',' obscuring illegal invocations, reported by martin f krafft (bsb, closes: #243908) * Update SpamAssassin handler to the most recent version can be found, and document it in README.Debian (by GCS, closes: #235667). -- Siggy Brentrup Fri, 16 Apr 2004 18:40:38 +0200 mailman (2.1.4-3) unstable; urgency=medium * Fix bogus test for empty qfiles/ in preinst (bsb, closes: #240033). * Create group list as a system group if it doesn't exist (bsb, closes: #240672). * Use true/false for mailman/gate_news to make it work (bsb). * Purge all mailman files _in_ucf_database_ on package purge (bsb). * Make 'leftover' notice stand out (bsb). * Added helper debconf template mailman/used_languages to avoid duplicate scanning on preconfigure/setup, while at it make config more robust (bsb, closes: #241021). * Remove bashism from debian/config (by GCS, closes: #240643). * Mention mm_cfg.MTA=None in README.EXIM (closes: #240295), also fix pathes to reflect Debian choices (bsb). * Include add_virtualdomain call in mm_cfg.py (closes: #238509), while at it regroup options and add comments (bsb). * Incorporate enhancements to postfix-to-mailman.py (bsb). * 50_README.POSTFIX.dpatch to reflect our choices (bsb). -- Siggy Brentrup Tue, 30 Mar 2004 18:51:57 +0200 mailman (2.1.4-2) unstable; urgency=low * Brown bag release. * Move that pid file. Now. (closes: #226152) * Switch to dpatch * Don't traceback when using admin password (closes: #233161) * Fix up MAILMAN_OWNER. (closes: #232452, #232273) * Make the postinst a lot less chatty (closes: #232546) * Update Spanish debconf translation (closes: #233693) * Update pt_BR debconf translation (closes: #228123) * Add Hungarian debconf translation (by GCS) * Wait for termination on restart|force-reload (by GCS, closes: #231468, #204006, #224012) * Fix --purge, thanks to Lionel Elie Mamane and Tollef (by GCS) * Revert gate_news changes (by GCS, closes: #237006) * Fix messages/de/LC_MESSAGES/mailman.po for now, but forward to upstream; patch from Ralf Doeblitz (closes: #233048) * Added german debconf translation (bsb). * Added myself to Uploaders (bsb). * Bumped 'Standards Version' to 3.6.1 (bsb, GCS's commit was lost during the alioth move). * Added catalan debconf translation from Aleix Badia i Bosch (by GCS, closes: #236666) * Change obsolete MAILMAN_OWNER to MAILMAN_SITE_LIST, note that this invalidate #232273 and #232452 (by GCS, closes: #235913) * Add debconf question for languages supported at a site reducing space required in /etc and chattyness (bsb, closes: #232005). * Backed out hack in 05_config_list_member_options.dpatch since it breaks config_list in mm 2.1.4 (bsb, closes: #231967). * Added debian/contrib/postfix-to-mailman.py installing it as /usr/lib/mailman/bin/postfix-to-mailman.py (bsb). * Cleaned up README.Debian removing obsolete mailman-owner alias and adding a section on using postfix-to-mailman.py (bsb). * Fix path problems, found by Nathan Stratton Treadway (by GCS, closes: #235835, #236473) * Added missing manpages withlist.8 and list_admins.8 (bsb). -- Siggy Brentrup Wed, 24 Mar 2004 23:48:15 +0100 mailman (2.1.4-1) unstable; urgency=medium * New upstream release (closes: #227968, #228212) * Try handling empty files in queue a little more gracefully (closes: #223906) * Actually move the pid file and fix logrotate script a bit more (closes: #223525, #228060) * Update Depends to exim4 | mail-transport-agent (closes: #228587) * Update Japanese debconf translation (closes: #227137) * Update French debconf translation (closes: #227246) * Get rid of the gate_news debconf stuff, since Mailman 2.1 doesn't use gate_news any more. Also comment out any occurences of gate_news in mailman's crontab. (also invalidates #186320 (Closes: #186320)) * Give some feedback on what's happening during postinst, since ucf is so goddamn slow (closes: #211815) * Work around ucf/debconf interaction (closes: #225667) -- Tollef Fog Heen Fri, 30 Jan 2004 12:12:17 +0100 mailman (2.1.3-2) unstable; urgency=low * Fix reference to /usr/lib/mailman/cgi-bin in README.Debian. Also fix so that the link in /usr/lib/mailman/cgi-bin points to the right place (closes: #218138, #202464) * Fix bug in scrubber.py with empty charsets (closes: #212643). Thanks to Md for this one :) * Make the password field be focused on page entry, if you have JS enabled. Again thanks to Md. * Fix bashism in postinst. * Document apache's default setting of SymlinksIfOwnerMatch, since this breaks mailman if you change from public to private to public archival. (closes: #123297) * Add ugly hack so new_member_options can be restored as well using config_list (closes: #179667) * Fix test in config script for list_lists (closes: #206728) * Try to fix permissions of /var/lib/mailman/archives, so they'll work with both public and private archives. (closes: #214264) * Make mailman reopen the log files after they are rotated. (closes: #216478) * Move qrunner lock file to /var/run * Add a few missing symlinks to /usr/sbin (closes: #218799) * Update Russian debconf translation (closes: #219268, #214350) * Add Japanese debconf translation (closes: #211957) * Add a note that you actually need to start mailman as well, not just create the site list. (closes: #191539) * Make /var/lib/mailman/icons a symlink to images (closes: #199172) * Fix qmail-to-mailman.py (closes: #217573) * Have Mailman.Utils.get_domain use URL_HOST, not EMAIL_HOST (closes: #214211) (I hope :) -- Tollef Fog Heen Sat, 6 Dec 2003 15:03:19 +0100 mailman (2.1.3-1) unstable; urgency=low * New upstream release (closes: #213553) - Fixes busy-wait (closes: #208368) * Band-aid around stupid galeon issuing PROPFIND requests (closes: #202821) * Fix error in Dutch translation which made Mailman barf on big mails on Dutch-language lists. (closes: #204196) * Add DEFAULT_{URL,EMAIL}_HOST to mm_cfg.py if missing (really closes: #200882) * Add small note recommending to stop Mailman before dpkg-reconfiguring it. (closes: #204949) * Add Mime-version: 1.0 in Handlers/Decorate.py. This solves a problem where charsets for the different parts of the message doesn't work well. -- Tollef Fog Heen Fri, 3 Oct 2003 01:44:12 +0200 mailman (2.1.2-7) unstable; urgency=low * The "aj, can I have food even though I'm fixing RC bugs in my own package?" release * Handle missing mm_cfg.py file (closes: #201566) * Fix localhost screwup in /etc/mailman/mm_cfg.py (closes: #200882, #198967) * Fix POTFILES.in (closes: #200804) * Add French debconf templates (closes: #190919) -- Tollef Fog Heen Mon, 28 Jul 2003 06:09:44 +0200 mailman (2.1.2-6) unstable; urgency=low * Check whether we've already added the cron lines to /etc/cron.d/mailman (only when upgrading from < 2.1) and if so, don't re-add them (closes: #199507) -- Tollef Fog Heen Fri, 4 Jul 2003 11:29:37 +0200 mailman (2.1.2-5) unstable; urgency=high * Urgency high, since the version in testing is broken. * Depend on python 2.2 explicitly, it seems like python 2.3 is broken (it doesn't have os.setgroups.). (closes: #198789, this time for real). -- Tollef Fog Heen Thu, 3 Jul 2003 12:35:53 +0200 mailman (2.1.2-4) unstable; urgency=low * Fix depends for python2.2-email (closes: #199467) * Add missing setgroups call in mailmanctl (closes: #199161) -- Tollef Fog Heen Tue, 1 Jul 2003 09:11:49 +0200 mailman (2.1.2-3) unstable; urgency=low * Fix errors on initial install (closes: #197519) * Make /usr/share/doc/mailman/images into a symlink, through removal of said directory from debian/dirs (closes: #197253) * Add conflicts with sendmail < 8.12.6 (closes: #197500) * Add import string to spamd.py (closes: #192124) * Add /usr/lib/mailman/cgi-bin as a symlink to /usr/lib/ (closes: #197812) * Add pt_BR debconf translation (closes: #198369) * Add spanish debconf translation (closes: #199151) * Stop shipping the python email module ourselves. (closes: #198789, #199155, #198743) * Make localhost default URL_HOST and EMAIL_HOST (closes: #197237) -- Tollef Fog Heen Mon, 30 Jun 2003 13:02:42 +0200 mailman (2.1.2-2) unstable; urgency=low * Add dependency on python-email and don't ship email ourselves * Move #UCF# in postinst to be before confmodule is sourced (closes: #197113) * Make sure /usr/lib/mailman/Mailman/mm_cfg.py is a symlink to /etc/mailman/mm_cfg.py -- Tollef Fog Heen Fri, 13 Jun 2003 00:43:50 +0200 mailman (2.1.2-1) unstable; urgency=low * New upstream release (closes: #191278) - should fix problems with OutgoingRunner eating 100% cpu (closes: #195220) - also fixes "sync_members fails with an exception" (closes: #195222) * Fix SA patch to use 0 and 1 instead of False and True (closes: #192048) * Fix postinst to fix PUBLIC_ARCHIVE_URL in /etc/mailman/mm_cfg.py, a double space was supposed to be a single one. * Make upgrades from pre-2.1 fail if there are mails in the queue, since we can't upgrade them. -- Tollef Fog Heen Tue, 6 May 2003 00:17:11 +0200 mailman (2.1.1-5) unstable; urgency=low * Fix init and config script to actually detect whether the site list is available. (closes: #189182) * Fix cgi-bin link in /var/lib/mailman (closes: #177498) * Switch to po-debconf (and update build-deps accordingly) (closes: #181677) (due to those error messages disappearing then) -- Tollef Fog Heen Wed, 23 Apr 2003 18:49:39 +0200 mailman (2.1.1-4) unstable; urgency=low * Remove move_list, digest_arch links and manpages, since they are no longer part of mailman. (closes: #178428, #177356) * Remove DEFAULT_URL_HOST from default mm_cfg.py (closes: #178619) * Enclose the importing of korean and japanese in try/except blocks (closes: #188502, #188545, #188616, #188611) * Change suggests line to python-japanese-codecs instead of python2.2-japanese-codecs and add alternatives for korean codecs. (closes: #188666) * Add hack to allow upgrades from broken 2.1.1-[123] installs, where stopping the daemon will fail. -- Tollef Fog Heen Sun, 13 Apr 2003 09:16:18 +0200 mailman (2.1.1-3) unstable; urgency=low * Remove code from update to update lists older than 1.0b4, since this can potentially break with lists with the same name as a language. (closes: #179893) * Add Suggests on python2.2-korean-codecs and python2.2-japanese-codecs and stop shipping them in the package. (closes: #181214) * Unduplicate welcome text in Deliverer.py (closes: #178576) -- Tollef Fog Heen Thu, 10 Apr 2003 00:32:00 +0200 mailman (2.1.1-2) unstable; urgency=low * Add debconf note mentioning the needed mailman list, and make the init script exit cleanly if it's not there (closes: #178627) -- Tollef Fog Heen Tue, 8 Apr 2003 09:58:08 +0200 mailman (2.1.1-1) unstable; urgency=low * New upstream release, fixes XSS probles, fixes sync_members dying (closes: #180097) * Un-crackify postinst. (closes: #178627, #175840) * Fix some more permissions. (closes: #178757) * Update SpamAssassin plugin (closes: #177588) * Fix update so that it doesn't remove wrapper (closes: #177647) * Don't nuke all of /var/lib/mailman, since archives and such might be stored there (closes: #176154) -- Tollef Fog Heen Mon, 7 Apr 2003 19:40:50 +0200 mailman (2.1-5) unstable; urgency=low * Fix crontab entry (closes: #175705) * Fix default host name (closes: #175550) * Fix PUBLIC_ARCHIVE_URL to Just Work (closes: #175840) * Fix qmail-to-mailman wrt @prefix@ and @PYTHON@ (closes: #175851) * Move qmail-to-mailman into /etc as a ucf-managed file. (closes: #170930) -- Tollef Fog Heen Sat, 11 Jan 2003 02:16:33 +0100 mailman (2.1-4) unstable; urgency=low * Tighten dependency on ucf. (closes: #175161) * Move images to /usr/share/images/mailman (closes: #110148) * Fix up thread handling in pipermail (closes: #167758) * Add code to sleep a little bit on SMTP error. (closes: #175173) * Fix up so that the welcome_msg is actually used in Deliverer.py (closes: #167382) * Make sure to close std{in,out,err} in mailmanctl. (closes: #175175) -- Tollef Fog Heen Sun, 5 Jan 2003 11:46:19 +0100 mailman (2.1-3) unstable; urgency=low * Link /var/lib/mailman/mail/mailman to /var/lib/mailman/mail/wrapper to not break upgrades. * Document the link and the new aliases. Please read README.Debian for upgrading info. -- Tollef Fog Heen Fri, 3 Jan 2003 01:26:47 +0100 mailman (2.1-2) unstable; urgency=low * Ugly hackishness in postinst which makes upgrades actually work. -- Tollef Fog Heen Fri, 3 Jan 2003 00:24:30 +0100 mailman (2.1-1) unstable; urgency=low * New upstream release (closes: #174914) - This includes a pipermail which knows how to handle MIME properly (closes: #84963, #66584). Pipermail also handles poster's from addresses properly now. (closes: #159850) - Fixes in UI, which allows one to approve poster on the held message screen (closes: #111856) * Fix newlist to report that a fully-qualified email address is needed. (closes: #170362) * Document how to get shorter URLs in README.Debian (closes: #118035) * Add some upgrading code to the postinst. It might work. Comment out all references to qrunner, since it is no longer used. * Fix cron job reference to call the executable instead of /usr/bin/python executable, as this makes things easier for SELinux. (closes: #160203) * Include the SpamAssassin.py patch from the SF tracker. It is not enabled by default (closes: #139942) * Tighten python dependency, since we now need 2.1 or newer. * Rework debconf question format to look better. (closes: #167005) -- Tollef Fog Heen Wed, 1 Jan 2003 17:49:13 +0100 mailman (2.0.11-2) unstable; urgency=low * Move qrunner's lock files to /var/lock/mailman (closes: #148667) -- Tollef Fog Heen Mon, 3 Jun 2002 11:24:04 +0200 mailman (2.0.11-1) unstable; urgency=high * New upstream release (closes: #147566, 146168) - fixes CSS problem * Add spanish template (closes: #143524) -- Tollef Fog Heen Tue, 21 May 2002 19:23:25 +0200 mailman (2.0.10-1) unstable; urgency=low * New upstream release (closes: #146168) -- Tollef Fog Heen Mon, 20 May 2002 22:47:53 +0200 mailman (2.0.9-2) unstable; urgency=low * Add qmail blurb to README.Debian * Fix a strange character in the postinst, one of those 0xa0 chars. -- Tollef Fog Heen Thu, 18 Apr 2002 11:54:07 +0200 mailman (2.0.9-1) unstable; urgency=high * New upstream release, fixes possible security problem * Fix bashism in config script (closes: #140949) * Remove /etc/cron.d mailman on purge (closes: #140908) * Add French Debconf template (closes: #139909) * Fix broken HTML (this really needs more work, but I don't have time for this before woody) (closes: #140492) * Fix typo in help for sync_members (closes: #140647) * Fix typo in rmlist (--archive instead of --archives) (closes: #140466) * Skip CVS directories in /etc/mailman. This is according to an IRC discussion with the bug submitter. (closes: #139171) -- Tollef Fog Heen Tue, 9 Apr 2002 00:02:26 +0200 mailman (2.0.8-4) unstable; urgency=low * Support DEBIAN_FRONTEND=noninteractive as well, thanks to Petter Reinholdtsen for the patch. (closes: #137352) * Add russian template (closes: #136928) * Remove BGCOLOR from the template file (closes: #59354) * Add qmail-to-mailman.py into the examples directory, and also fix the script a little bit according to the bug. (closes: #138962) -- Tollef Fog Heen Mon, 11 Mar 2002 21:44:00 +0100 mailman (2.0.8-3) unstable; urgency=low * Support upgrading of lists with spaces in their names. (closes: #122913) * Merge changelog from stable * Add documentation workaround when upgrading python. Please seee README.Debian (closes: #117969) * Fix config script so that it actually is able to detect whether gate_news is commented out or not. (closes: #129720) * Fix cgi-path in Defaults.py.in (closes: #127069) * remove /var/log/mailman on purge (closes: #131212) -- Tollef Fog Heen Tue, 29 Jan 2002 19:19:24 +0100 mailman (2.0.8-2) unstable; urgency=low * Remove Pre-Depends (should have been removed a long time ago) -- Tollef Fog Heen Thu, 6 Dec 2001 19:34:03 +0100 mailman (2.0.8-1) unstable; urgency=low * New upstream release -- Tollef Fog Heen Wed, 28 Nov 2001 17:40:56 +0100 mailman (2.0.7-3) unstable; urgency=low * Fix bashism in postinst. -- Tollef Fog Heen Wed, 28 Nov 2001 17:40:18 +0100 mailman (2.0.7-2) unstable; urgency=low * Add german template (closes: #118958) * Add missing for loop in cron/mailpasswds and reindent (closes: #120366) * Removed archives from the list of cgis built, since this confused someone. (closes: #120489) -- Tollef Fog Heen Thu, 22 Nov 2001 11:49:57 +0100 mailman (2.0.7-1) unstable; urgency=high * New upstream release (closes: #118991) -- Tollef Fog Heen Mon, 12 Nov 2001 19:30:57 +0100 mailman (2.0.6-5) unstable; urgency=low * Remove debconf note and add low priority question whether Mailman should gate news or not. * Make /etc/cron.d/mailman a configuration file instead of a conffile, this allows us to change the debconf note into a question, which isn't such a misuse of debconf notes. -- Tollef Fog Heen Sat, 10 Nov 2001 02:01:50 +0100 mailman (2.0.6-4) unstable; urgency=low * Fix typo in cron/mailpasswds (closes: #118014) * Fix indentation in cron/mailpasswds (closes: #117903) * Fix typo in postinst (closes: #117888, #117860) * Fix typo in templates * Fix python in preinst, use id instead. (closes: #118024) -- Tollef Fog Heen Fri, 2 Nov 2001 16:24:16 +0100 mailman (2.0.6-3) unstable; urgency=low * Add note about cookies and default URLs. * Clarification to README.Debian concerning IMAGE_LOGOS (closes: #114222) * Fix spelling in copyright * Add /etc/mailman/headfoot.html as a conffile * Remove the patch for per-user monthly password reminders, this is fixed in a different way in mailman 2.1, and it caused a lot of problems. (closes: #102970) * Make it work with both Python 2.x and Python 1.5 by fixing postinst. (closes: #116970, #116233) * Fix preinst to use the system functions to chech whether the user exists or not, instead of grepping /etc/{passwd,group} (closes: #117495) * Add debconf note explaining that gate_news is now commented out. (closes: #116677) * Change dependencies to just depend on python instead of python-base. -- Tollef Fog Heen Tue, 30 Oct 2001 10:03:37 +0100 mailman (2.0.6-2) unstable; urgency=low * Fix patch in ToUsenet.py, which fixes a traceback (closes: #110286) * Make the default value for sending out reminders == -1, which makes the list's value the default, but is overriddable by the user. (closes: #111534) * Fix List-Id on monthly reminders (closes: #111078) -- Tollef Fog Heen Tue, 28 Aug 2001 17:09:24 +0200 mailman (2.0.6-1) unstable; urgency=medium * New upstream release with security fix (closes: #106783) * Comment out gate-news from default crontab and add note to README.Debian (closes: 64809) -- Tollef Fog Heen Fri, 3 Aug 2001 09:01:18 +0200 mailman (2.0.5-2) unstable; urgency=medium * updated description (thanks Greg Ward) * fix a potential problem when gatewaying lists between news and mail, thanks to Jürgen A. Erhard. * Fix up IMAGE_LOGOS in Defaults.py, which might make it easier on those upgrading, where IMAGE_LOGOS is not set in mm_cfg.py * Fix a potential short-term security problem where /var/lib/mailman/data/pending_subscriptions.db was world readable. (Closes: #105998) -- Tollef Fog Heen Mon, 23 Jul 2001 10:47:18 +0200 mailman (2.0.5-1) unstable; urgency=low * New upstream release * Changed build depends, we now depend on debhelper > 3.0, as we use dh_installman. (closes: #97070) * Fixed a grammatical error in templates/subscribeack.txt. (closes: #97183) -- Tollef Fog Heen Thu, 24 May 2001 22:25:51 +0200 mailman (2.0.4-2) unstable; urgency=low * Byte-compile paths.py as well as the other files. * Fix up some potential bugs in the postinst * Fix up a small documentation error in README.EXIM. (closes: #96067) * The cgi-bin symlink wasn't properly created. Fixed now. (closes: #95986) -- Tollef Fog Heen Wed, 2 May 2001 09:16:02 +0200 mailman (2.0.4-1) unstable; urgency=low * New upstream release * comment out line 281 in Mailman/htmlformat.py, this should fix the broken HTML code people are seeing (closes: #94191) * Remove duplicate images, they are now only in /usr/share/doc/mailman/images (closes: #93344). Note that mm_cfg.py is a conffile, so if it has been modified, it's images might be in the wrong place. * remove dh_testversion * update the lintian overrides a bit * moved the cgi scripts to /usr/lib/cgi-bin since apache doesn't support symlinks by default any more. * fix up README.Debian, among other things spell my name correctly :) -- Tollef Fog Heen Tue, 17 Apr 2001 01:07:56 +0200 mailman (2.0.3-7) unstable; urgency=low * Make /usr/lib/mailman/cgi-bin symlink to /usr/lib/cgi-bin/mailman instead of the other way around, per user request, as this is the supported apache configuration. * add lintian overrides (closes: #39047) -- Tollef Fog Heen Tue, 3 Apr 2001 23:47:31 +0200 mailman (2.0.3-6) unstable; urgency=low * fix up digest_arch, so that it won't bomb on years > 100, really a Y2K problem which was tried to be fixed. It shouldn't matter with newer lists and MUAs, as we really don't use digest_arch any more. (closes: #59359, #75613) * close out more old bugs, from version 1.1 and before (closes: #59669, #59867) * close bugs which have been fixed upstream (closes: #70803, #72815, #75761) * fixed a few typos in the copyright file. * added support for per-user monthly notifications (see README.Debian), forwarded upstream. (closes: #76042, #54027) -- Tollef Fog Heen Sat, 24 Mar 2001 02:04:07 +0100 mailman (2.0.3-5) unstable; urgency=low * python is needed as well, in order to build (closes: #90527). -- Tollef Fog Heen Thu, 22 Mar 2001 22:45:21 +0100 mailman (2.0.3-4) unstable; urgency=low * Fix up build-depends (closes: #90109) -- Tollef Fog Heen Sun, 18 Mar 2001 15:41:40 +0100 mailman (2.0.3-3) unstable; urgency=low * Added autoconf invokation before running configure, this should fix the configure stuff, where it looks at /var/lib/mailman (closes: #89850) * Close bugs which were closed by the last upload (closes: #89726), but which I forgot to close. * Mailman has supported having nobody as the CGI user for some time (closes: #36010) -- Tollef Fog Heen Fri, 16 Mar 2001 11:06:44 +0100 mailman (2.0.3-2) unstable; urgency=low * Applied some old patches which had got lost, including allowing the calling of the wrapper scripts if GID == nobody or < 100. (Closes: #36010, #89564, #89848, 89818) * fixed up some of the permissions -- Tollef Fog Heen Wed, 14 Mar 2001 13:40:16 +0100 mailman (2.0.3-1) unstable; urgency=low * New upstream release (closes: #89459) * Fixed a small bug where mailman-owner@host was hard coded in newlist, it now gets it from the configuration (closes: #50583). -- Tollef Fog Heen Tue, 13 Mar 2001 17:03:40 +0100 mailman (2.0.2-1) unstable; urgency=low * New upstream release * New maintainer * Updated standards-version * Updated to debhelper v2 * Closed old, non-responsive, non-reproducible bugs (closes: #72714, #49176, #33804) * Converted to use dpkg-statoverride (closes: #87199) * the doublequote bug is fixed upstream (closes: #75724) * mailing list url bug has been fixed upstream (closes: #80988) * subscribe.py should return a HeadlessDocument, not a Document, else one gets really non-valid HTML. (closes: #78941) * Added man pages (closes: #57231) -- Tollef Fog Heen Sat, 10 Mar 2001 18:31:24 +0100 mailman (2.0final-1) unstable; urgency=low * New upstream version (Closes: #75640, #65955) * Fix default private archive url (Closes: #74766, #74112, #76114, #77448) * Add / to the default url (Closes: #68619, #69167, #71006, #71208, #71464, #71475) -- Gergely Madarasz Sun, 26 Nov 2000 18:37:05 +0100 mailman (2.0beta5-1) unstable; urgency=low * New upstream version (Closes: #68376) * Fix postinst (Closes: #67177) -- Gergely Madarasz Thu, 3 Aug 2000 13:13:23 +0200 mailman (2.0beta4-1) unstable; urgency=low * New upstream version * Update logrotate config file -- Gergely Madarasz Fri, 7 Jul 2000 12:05:03 +0200 mailman (2.0beta3-1) unstable; urgency=low * Update cron.d file (add qrunner, remove run_queue) * New upstream version -- Gergely Madarasz Thu, 29 Jun 2000 13:29:46 +0200 mailman (2.0beta2-1) unstable; urgency=low * New upstream version * Update the conffiles list * Update the default mm_cfg.py -- Gergely Madarasz Mon, 29 May 2000 16:06:45 +0200 mailman (1.1-9) stable; urgency=medium * Cross site scripting (CSS) fixes, backported from Mailman 2.0.8. * Support list names with spaces in them. -- Tollef Fog Heen Fri, 7 Dec 2001 13:53:11 +0100 mailman (1.1-8) stable; urgency=medium * Fix maintainer field * Completely fix previous security flaw * Fix dedent in Mailman/SecurityManager.py (closes: #107768) -- Tollef Fog Heen Mon, 6 Aug 2001 16:27:32 +0200 mailman (1.1-7) stable; urgency=medium * Fix possible (but rare) security problem if site password was blank -- Tollef Fog Heen Fri, 3 Aug 2001 21:51:32 +0200 mailman (1.1-6) frozen unstable; urgency=high * Fix archiver security problem (Closes: #64841) * Fix upgrade message (Closes: #63427) * Fix email address in README.Debian -- Gergely Madarasz Mon, 29 May 2000 15:15:15 +0200 mailman (1.1-5) frozen unstable; urgency=medium * Small fix for subjectless messages (Closes: #61695) -- Gergely Madarasz Sun, 16 Apr 2000 03:19:21 +0200 mailman (1.1-4) frozen unstable; urgency=medium * Now really fix news gatewaying (Closes: #57223, #57596) * Bug already fixed previously... Closes: #55579 -- Gergely Madarasz Tue, 22 Feb 2000 23:02:03 +0100 mailman (1.1-3) frozen unstable; urgency=medium * Fix news gatewaying (Closes: #57223, #57596) * Bug already fixed previously... Closes: #55579 -- Gergely Madarasz Tue, 22 Feb 2000 19:38:55 +0100 mailman (1.1-2) unstable; urgency=low * Fix mailman image link in the default config (Closes: #50578, #53673) * Remove pegasus mail's x-pmrqc header (Closes: #51090) * Now depends on logrotate (Closes: #54810) -- Gergely Madarasz Thu, 13 Jan 2000 14:50:52 +0100 mailman (1.1-1) unstable; urgency=low * New upstream version -- Gergely Madarasz Sat, 6 Nov 1999 14:20:30 +0100 mailman (1.0rel-5) unstable; urgency=low * Adduser fixes again (Closes: #48922) -- Gergely Madarasz Mon, 1 Nov 1999 20:06:18 +0100 mailman (1.0rel-4) unstable; urgency=low * Remove unnecessary interaction (Closes: #44651, #44919) * Fix adduser call in preinst (Closes: #45063) * Add logrotate config file, recommend logrotate -- Gergely Madarasz Mon, 1 Nov 1999 16:43:14 +0100 mailman (1.0rel-3) unstable; urgency=low * Really change maintainer address -- Gergely Madarasz Tue, 7 Sep 1999 21:02:25 +0200 mailman (1.0rel-2) unstable; urgency=low * FHS compliant * Standards: 3.0.1 * rename arch to mmarch (Closes: #43185) * Change maintainer address -- Gergely Madarasz Tue, 7 Sep 1999 17:18:02 +0200 mailman (1.0rel-1) unstable; urgency=low * New upstream version * Change the default URL to .../cgi-bin/mailman in mm_cfg.py so the cookie authentication code works with the default cgi-bin symlink * Some notes about exim and the default url in README.Debian -- Gergely Madarasz Mon, 2 Aug 1999 17:32:07 +0200 mailman (1.0rc3-2) unstable; urgency=low * Fix python dependencies (Closes: #41335) -- Gergely Madarasz Thu, 15 Jul 1999 12:39:20 +0200 mailman (1.0rc3-1) unstable; urgency=low * New upstream version * Add check_perms to the binaries list * Fix some permissions which might have been broken by earlier installs * Move /var/lib/mailman/logs to /var/lib/mailman/logs.old, put new logs to /var/log/mailman -- Gergely Madarasz Wed, 14 Jul 1999 19:12:11 +0200 mailman (1.0rc2-6) unstable; urgency=low * Fix cron.d entry (#38492) * Fix postint (#40281) -- Gergely Madarasz Sat, 3 Jul 1999 16:14:21 +0200 mailman (1.0rc2-5) stable unstable; urgency=low * Fix an incompatibility with the older slink version -- Gergely Madarasz Tue, 22 Jun 1999 17:16:56 +0200 mailman (1.0rc2-4) stable unstable; urgency=high * Another small, but very annoying bug fixed in subject prefixing -- Gergely Madarasz Tue, 15 Jun 1999 14:27:00 +0200 mailman (1.0rc2-3) stable unstable; urgency=high * Upload for stable & unstable, the .orig.tar.gz files would make a mess... -- Gergely Madarasz Tue, 15 Jun 1999 13:36:20 +0200 mailman (1.0rc2-0.slink1) stable; urgency=high * Security upload for stable -- Gergely Madarasz Tue, 15 Jun 1999 11:08:50 +0200 mailman (1.0rc2-1) unstable; urgency=high * New upstream version * Fixes cookie security problem * Actually there is a need for the list user for cronjobs, add it in preinst if it does not exist -- Gergely Madarasz Tue, 15 Jun 1999 10:05:54 +0200 mailman (1.0rc1-1) unstable; urgency=low * New upstream version * The version dependency on python is not needed anymore * Move the options.html upgrade warning from the update script to postinst (version checking) * Argh, bad permissions in the previous release -- Gergely Madarasz Tue, 18 May 1999 18:13:03 +0200 mailman (1.0b11-2) unstable; urgency=low * Fix problem with python and exim, depend on python (>= 1.5.2) * No need for list user, but check for existence of the list group and create if not found. Change su to sg in the postinst accordingly (addresses #33701 and #36015) * Loosen up the cgi-s gid check (#36010) * Fix some lintian errors and warnings, not cleaned up completely yet -- Gergely Madarasz Fri, 30 Apr 1999 17:47:32 +0200 mailman (1.0b11-1) unstable; urgency=low * New upstream version -- Gergely Madarasz Sat, 3 Apr 1999 18:53:41 +0200 mailman (1.0b10-1) unstable; urgency=low * Ugh, didn't have dependency on httpd... fixed * New upstream version -- Gergely Madarasz Fri, 26 Mar 1999 18:31:49 +0100 mailman (1.0b9-1) unstable; urgency=low * New upstream version -- Gergely Madarasz Mon, 1 Mar 1999 20:23:01 +0100 mailman (1.0b8-3) frozen unstable; urgency=low * Upload orig.tar.gz for slink -- Gergely Madarasz Fri, 5 Feb 1999 23:15:16 +0100 mailman (1.0b8-2) frozen unstable; urgency=low * Upload for slink (1.0b4 is very buggy) * Ugh, fix the maintainer entry in the control file :) * Fix the binaries list which link to /usr/sbin * Remove dependency on perl (how did it ever happen?!) * Remove the recommendation of lists-archives * Write a short README.Debian about the debian-specific configuration of mailman * Remove old directories (created by 1.0b4) in /etc/mailman/ -- Gergely Madarasz Wed, 3 Feb 1999 12:43:03 +0100 mailman (1.0b8-1) unstable; urgency=low * New upstream version -- Gergely Madarasz Fri, 15 Jan 1999 16:06:36 +0100 mailman (1.0b7-3) unstable; urgency=low * Files in /etc/mailman are conffiles now (#23662) * Symlink /usr/lib/cgi-bin/mailman to /usr/lib/mailman/cgi-bin so there's no need for webserver reconfiguration (#26607) -- Gergely Madarasz Thu, 14 Jan 1999 23:53:07 +0100 mailman (1.0b7-2) unstable; urgency=low * Modify the binaries list * Don't compileall, it will be done when installed -- Gergely Madarasz Fri, 8 Jan 1999 03:56:14 +0100 mailman (1.0b7-1) unstable; urgency=low * Don't check caller gid in mail-wrapper * New maintainer * New upstream version -- Gergely Madarasz Fri, 8 Jan 1999 02:24:00 +0100 mailman (1.0b4-2) unstable; urgency=low * Tweaked mm_archive.py so links to Lists-Archives are not broken. * Added recommendation for lists-archives. -- Johnie Ingram Thu, 18 Jun 1998 01:26:05 -0400 mailman (1.0b4-1) unstable; urgency=low * Initial Release. -- Johnie Ingram Tue, 16 Jun 1998 22:33:38 -0400 debian/mailman.docs0000664000000000000000000000045013174122612011456 0ustar debian/README.Exim4.Debian doc/mailman-admin doc/mailman-admin.pdf doc/mailman-admin.txt doc/mailman-member doc/mailman-member.pdf doc/mailman-member.txt doc/mailman-member-es doc/mailman-member-es.pdf doc/mailman-member-es.txt doc/mailman-install doc/mailman-install.pdf doc/mailman-install.txt