;; -*- emacs-lisp -*- ;; Part of GNU Savannah ;; Savannah moderation related functions ;; Copyright 2002-2003 (c) Mathieu Roy ;; (c) Jaime Villate ;; http://savannah.gnu.org ;; ;; 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, USA. ;; ;; HELP: ;; Add this file to your GNU Emacs elisp path and add the following ;; line to your ~/.emacs ;; (require `savannah) ;; or ;; (autoload 'savannah "/home/vrac/savannah/gnuscripts/savannah.el") ;; After that, you can access these functions by typing ;; META-x sv-prefix-[TAB] ;; Where prefix can be: ;; opening ;; closing ;; problem (several common problems in registrations) ;; reject ;; approve ;; dead (projects that seem to be dead) ;; term (can be used to do SQL commands with ease, ;; typing them within an eshell or another shell in emacs. ;; Their names should be self-explanatory.) ;; ;; Projects that are not ready to be approved are usually answered with: ;; ;; sv-opening ;; sv-problem-[problem1] ... sv-problem-[problem2] ;; sv-closing ;; ;; AUTHORS: ;; Loic Dachary, Jaime Villate and Mathieu Roy ;; There are some quotes from www.gnu.org as the license list page. ;; ;; $Id: savannah.el,v 1.3 2003/04/06 14:02:03 yeupou Exp $ ;; GENERAL (defun sv-opening () (interactive) "Message opening" (insert "Hi,\n I'm evaluating the project you submitted for approval in Savannah.\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-closing () (interactive) "End of the message" (insert "Please register your project once more with the changes mentioned above. The way we handle pending projects makes it difficult to keep track of projects that have been answered but have not been approved yet. So we erase them and we ask you to register the project again every time some change has to be done to the registration. Make sure that you applied all changes otherwise you could have to reregister your project again several times. Thank you for your understanding. Some users find it useful to use the big re-registration URL provided in the acknowledgment e-mail you received after registration. Regards,\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-closing-no-resubmit () (interactive) "End of the message, do not ask to resubmit - Nothing really usefull here" (insert "Regards,\n\n") (message "Inserted \(savannah.el\)") ) ;; PROBLEMS IN THE REGISTRATION (defun sv-problem-details () (interactive) "The description of your project is too vague" (insert "Could you please resubmit your project again with a detailed technical description? This should include requirements, such as programming languages, external libraries, etc. Half a page will do.\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-tarball () (interactive) "There's no tarball in the registration page" (insert "Please register your project again including a URL \(could be temporary\) where we can find the source code. The description you gave during project registration will be read by Savannah administrators and not by the general public; if you are concerned with privacy, you can send me a copy of the code by e-mail, We would like to look at your source code, even if it is still not functional, to help you fix potential legal issues which would be harder to correct after the project gets approved. For example, to release your program properly under the GPL, you should write copyright notices and copying permission statements at the beginning of every source code file, as explained in http://www.gnu.org/licenses/gpl-howto.html.\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-gpl-info () (interactive) "License stuff is missing" (insert "To release your project under the GPL, you should put copyright notices and copying permission statements at the beginning of every source-code file, and include a copy of the plain text version of the GPL \(http://www.gnu.org/licenses/gpl.txt\). Put it in a file named COPYING. Please follow the advice of http://www.gnu.org/licenses/gpl-howto.html. The GPL FAQ explains the reason behind these recommendations. For example, there is an entry explaining why the GPL requires including a copy of the GPL with every copy of the program: http://www.gnu.org/licenses/gpl-faq.html#WhyMustIInclude \n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-lgpl-info () (interactive) "License stuff is missing" (insert "To release your project under the LGPL, you should put copyright notices and copying permission statements at the beginning of every source-code file, and include a copy of the plain text version of the LGPL \(http://www.gnu.org/licenses/lgpl.txt\). Put it in a file named COPYING. Please follow the advice of http://www.gnu.org/licenses/lgpl.html#SEC4 Including a copy of the license with the work is vital so that everyone who gets a copy of the program can know what his rights are. It might be tempting to include a URL that refers to the license, instead of the license itself. But you cannot be sure that the URL will still be valid, five years or ten years from now. Twenty years from now, URLs as we know them today may no longer exist. The only way to make sure that people who have copies of the program will continue to be able to see the license, despite all the changes that will happen in the network, is to include a copy of the license in the program. \n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-fsf-address () (interactive) "Old FSF address used" (insert "Please notice that the address of the FSF that you have written in your files is not correct anymore. The new address of the FSF is: 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA Please update your files. \n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-license-truncated () (interactive) "The last section of the GPL has been truncated" (insert "You have removed the last section, titled \"How to Apply These Terms to Your New Programs\", from the license. Please use a complete verbatim copy of the (L)GPL license, as found in http://www.gnu.org/licenses/gpl.txt, http://www.gnu.org/licenses/lgpl.txt or http://www.gnu.org/licenses/fdl.txt The GPL license can only be copied in verbatim form. The last section is also very important and makes part of the license. \n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-java () (interactive) "For software that uses Java, we want to check for ugly dependencies" (insert " The key question here is to figure out if your project can run on a Free Software Java suite \(see http://www.gnu.org/software/java/ for more information\). Could you give us some explanation about this point?\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-uses-gnu-name () (interactive) "There's GNU within the name of a non-GNU project" (insert "Since your project does not seem to be part of the GNU project yet, we cannot accept that project name for it. There are some non-GNU programs with names such as gnuplot and gnuboy, but they are not hosted on Savannah.\n In the projects we host we want to keep the distinction between GNU and non-GNU projects, to avoid confusion.\n If your project is accepted into the GNU project, you can change its name later on.\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-license-gplincompatible () (interactive) "The license is incompatible with the GPL" (insert " The license you chose qualifies your software as Free Software but it is incompatible with the GNU GPL.\n\n We've chosen to host only software published under licenses compatible with the GPL. This is so that people can combine files from the different projects hosted, without licensing troubles.\n If you're willing to switch to a GPL-compatible license, please resubmit.\n You can get a list of various licenses and comments about them at http://www.gnu.org/philosophy/license-list.html. That should help you to understand our position.\n If there's a particular reason to use only the license you chose initially, you're welcome to tell us about it.\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-license-mpl-alike () (interactive) "The license is incompatible with the GPL, it's a mpl or mpl-like" (insert " The license you chose qualifies your software as Free Software but it is incompatible with the GNU GPL.\n\n The MPL 1.0 has some complex restrictions that make it incompatible with the GNU GPL. That is, a module covered by the GPL and a module covered by the MPL cannot legally be linked together. However, MPL 1.1 has provisions \(section 13\) that allows a program \(or parts of it\) to offer a choice of another license as well. If part of a program allows the GNU GPL as an alternate choice, or many other GPL-compatible licenses as an alternate choice, that part of the program has a GPL-compatible license.\n\n We've chosen to host only software published under licenses compatible with the GPL. This is so that people can combine files from the different projects hosted, without licensing troubles.\n If you're willing to switch to a GPL-compatible license, or dual-licensing with a GPL compatible license \(if your license is MPL 1.1 or based on it\), please resubmit.\n\n You can get a list of various licenses and comments about them at http://www.gnu.org/philosophy/license-list.html that should help you understand our position.\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-open-in-name () (interactive) "There's open within the name of a project" (insert "Savannah's mission is to host free software projects, and we want the public to think of them as free software projects. A project name that says \"open\" will tend to lead people to think of the project as \"open source\" instead of \"free software\".\n We would be glad if you accept to use \"free\" instead of \"open\" in your project name.\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-gpl-two-only () (interactive) "The user wants to use GPL2 only" (insert "Licensing under the \"GNU GPL v2 only\" is problematic. Would you please agree to license under the \"GNU GPL v2 or later\"? The reason for this is that when we publish GPL v3, it will be important for all GPL-covered programs to advance to GPL v3. If you don't put this in the files now, the only way to port your program to GPL v3 would be to ask each and every copyright holder, and that may be very difficult. We can explain the issue in more detail if you wish. If you have concerns about \"GNU GPL v2 or later\", We'd be happy to address them too.\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-linux-vs-gnu () (interactive) "The user talks about linux instead of GNU/Linux" (insert "\"Linux\" is just a kernel of a more complex system that we like to refer to as GNU/Linux, to emphasize the ideals of the Free Software movement.\n\n Would you mind changing references to Linux as an OS to GNU/Linux?\n For more information, see http://www.gnu.org/gnu/linux-and-gnu.html\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-problem-gif () (interactive) "This project use gif files" (insert " Please remove GIF images files from your project and replaced them by other format \(such as PNG or JPEG\). Because of the patents \(Unisys and IBM\) covering the LZW compression algorithm which is used in making GIF files, it\'s impossible to have free software to generate proper GIFs. They also apply to the compress program. For more information read http://www.gnu.org/philosophy/gif.html \n") (message "Inserted \(savannah.el\)") ) ;; REJECT (defun sv-reject-nonfree-operating-system () (interactive) "This project runs only on nonfree operating systems" (insert "Even though your project is Free Software it cannot be hosted here. We only host projects that can run in a free operating system (such as Debian GNU/Linux). We have adopted this policy because now that completely free operating systems exist, we do not want to encourage users of those systems to start using proprietary operating systems so that they can use your program. If you are willing to maintain a version for free operating systems, which will always work as well as or better than other ports, you can then provide versions for nonfree systems as well. The idea is that at no point should free-only users be at disadvantage compared to users of proprietary software. Your project should always work equally well in free systems as in any other versions you provide; if you have some modules for nonfree systems, you can delay their release until you have released the free operating system version. If you accept this commitment then please register your project again and it should be approved in Savannah. Thanks for your understanding. Regards,\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-reject-proprietary () (interactive) "This project uses proprietary software" (insert " Your project requires proprietary software and cannot be hosted on Savannah for this reason.\n Savannah is willing to provide resources and time to developers writing Free Software that can be used without the need to ask for permission to a proprietary software vendor. Thanks for your understanding. Regards,\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-reject-java-nonfree () (interactive) "This project uses proprietary JAVA software" (insert "Your project requires proprietary software and cannot be hosted on Savannah for this reason.\n Savannah is willing to provide resources and time to developers writing Free Software that can be used without the need to ask for permission to a proprietary software vendor.\n If, someday, you get free of those dependencies \(see http://www.gnu.org/software/java for more informations\), do not hesitate to resubmit your project. Thanks for your understanding. Regards,\n\n") (message "Inserted \(savannah.el\)") ) ;; APPROVE (defun sv-approve-as-nongnu () (interactive) "" (insert "We have approved your project as a non-GNU project. In order to evaluate it as a GNU package, we need more information--a clear description of the design and plans for the whole package, and preferably part of the code. When those things are ready, write to address@hidden to ask for an evaluation of your project for inclusion in GNU.\n Regards, \n\n") (message "Inserted \(savannah.el\)") ) (defun sv-approve () (interactive) "" (insert "Hi, I have approved your project. You will receive an automated e-mail containing detailled information about the approval. Regards, \n\n") (message "Inserted \(savannah.el\)") ) ;; CONFUSING STATEMENTS (defun sv-confusion-commercial-and-proprietary () (interactive) "The user talks about commercial while refering to proprietary" (insert"Note that commercial does not mean proprietary. Free Software means that users have certain freedoms; it does not mean zero price. \"Commercial\" means \"associated with business\"; a commercial program may be free or non-free, depending on its license. So it is a mistake to treat \"free\" and \"commercial\" as contraries. When a business develops free software, that is free commercial software.\n\n") (message "Inserted \(savannah.el\)") ) (defun sv-confusion-open-and-free () (interactive) "The user talks about open instead of free" (insert "Note that Savannah supports projects of the Free Software movement, not projects of the Open Source movement. We are careful about ethical issues and insist on producing software that is not dependent on proprietary software.\n While Open Source as defined by its founders means something pretty close to Free Software, it's frequently misunderstood. For more information, read http://www.gnu.org/philosophy/free-software-for-freedom.html\n\n") (message "Inserted \(savannah.el\)") ) ;; Dead projects ? ;; manage by sv_hide_dead_projects ;; PROJECT MANAGEMENT ;; The purposes of these functions is to insert with ease commands in ;; a shell or eshell. It should be a root shell on the server, as ;; subversions.gnu.org (defun sv-term-project-pending-list () "Inserted in a terminal, this function lists the pending projects" (interactive) (insert "mysql -e \"SELECT group_id,group_name,unix_group_name FROM groups WHERE status='P'\" sourceforge\n") (insert "for project in `mysql -Ne \"SELECT unix_group_name FROM groups WHERE status='P'\" sourceforge`; do grep $project /var/log/sv_register_discard* ; done") (message "Inserted \(savannah.el\)") ) (defun sv-term-project-mark-as-deleted (project) "Inserted in a terminal, this function marks a project for deletion." (interactive (list (read-string "Project: " (current-word)))) (insert "mysql -e \"UPDATE groups SET status='D' WHERE unix_group_name='" project "'\" sourceforge") (message "Inserted \(savannah.el\)") ) (defun sv-term-project-registration-discard (project why) "Write a message to the log and remove completely a project from database." (interactive (list (read-string "Unix Group Name : " (current-word))(read-string "Why do we discard this registration: " (current-word)))) (insert "sv_register_discard " project " --user=\"" user-mail-address "\" --comment=\"" why "\"") (message "Inserted \(savannah.el\)") ) (defun sv-term-user-delete (user) "Inserted in a terminal, this function removes a user account." (interactive (list (read-string "User: " (current-word)))) (insert "mysql -e \"DELETE FROM user WHERE user_name='" user "'\" sourceforge") (message "Inserted \(savannah.el\)") ) (defun sv-term-user-rename (user newname) "Inserted in a terminal, this function renames a user account." (interactive (list (read-string "User Name: " (current-word))(read-string "New User Name: " (current-word)))) (insert "mysql -e \"UPDATE user SET user_name='" newname "' WHERE user_name='" user "'\" sourceforge") (message "Inserted \(savannah.el\)") ) (message "savannah.el loaded") (provide 'savannah) ;; savannah.el ends here