Introduction
First of all, here's what happens to an upload after the author uploaded
it and before any of the admins moderates it:
If somebody uses his FTP client to connect to main.aminet.net and
uploads a new package, it will end up in the directory new/. This
directory contains several subdirectories:
new/
new/priv/
new/priv/check/
new/priv/deleted/
new/priv/okay/
new/priv/refused/
Every ten minutes, a script will move all files in new/ to
new/priv/check/. Everything in priv/ (and its sub directories) is hidden
from the public, this way new/ always looks 'clean'.
Every now and then, another script called "archivecheck.pl" will check
the archives in new/priv/check/. Currently, only the archive integrity
is checked, at some point in time this script will (hopefully) perform a
virus check aswell.
The result of said check will be written to a textfile in
new/priv/okay/: For new/priv/check/foo.lha, a textfile called
new/priv/okay/foo.lha will be created, containing either "OKAY" or
"CORRUPT".
The remaining two directories (deleted/ and refused/) in new/priv/ are
used to store packages that were deleted from the Aminet archive or
uploads that were refused.
The moderator takes over
You start the admin script simply by typing "admin.pl" in the shell.
admin.pl will go through all #?.readme files in new/priv/check/, one by
one - for each readme, it will perform various checks. It may come up
with one of the following error messages:
"no archive found for priv/check/foo.readme"
For now, Aminet only accepts the filetypes listed here:
http://main.aminet.net/info/adt/suffixes
The current readme is foo.readme, but there is no file called foo.lha
(or foo.lzh, foo.run etc.). In other words: the uploader forgot to
upload the archive or he used a filetype that Aminet does not accept
(e.g. foo.rar). Therefore, the current readme will be ignored.
"skipping unchecked: priv/check/foo.lha"
The current readme (foo.readme) belongs to foo.lha (or foo.lzh,
foo.run etc.), but the integrity of foo.lha has not been checked yet
(i.e. there's no textfile new/priv/okay/foo.lha). Unchecked archives
may not be added to the Aminet archive, therefore this upload can not
be moderated yet and will be ignored for now.
"archive corrupt: priv/check/foo.lha"
The current readme (foo.readme) belongs to foo.lha, but acording to
new/priv/okay/foo.lha, the archive is corrupt. You will be asked if
you want to delete the file and if the uploader specified an e-mail
address, admin.pl will now ask:
flame author? y/N
"flame" is short for "notify uploader via e-mail". The uppercase N
indicates that the default answer (the one admin.pl assumes if you
just hit RETURN) is "No". But in case of a corrupt archive, we should
of course notify the uploader, so you should answer the question with
"y".
Moderating uploads
If the readme passes all of the above checks, admin.pl will present you
with a short 'menu':
priv/check/ccd2iso.lha ....
Short: Convert CCD (CloneCD) files to ISO-9660
Architecture: m68k-amigaos
[f]lame | [d]elete | [i]gnore | [r]eadme | [e]dit readme | [l]ist archive | [util/misc]:
The first line is the package's filename, followed by the "Short:" line
from the readme and the Architecture: field from the readme. Below are
your options, which are selected by typing the letter enclosed in
brackets, followed by RETURN:
[f]lame
(Only appears if the uploader specified an e-mail address) Use this if
you want to notify the uploader about something, i.e. if you move his
upload to another directory, if he forgot to add the architecture: field
etc. If you invoke the flame option, you will be presented with a list
of predefined notifications. Pick one and a message will be sent to the
uploader. Choose "99 - other reason" if you want to write your own
message to the uploader.
[d]elete
Select this if you are sure that the upload should not be accepted for
some reason. The archive will be moved to new/priv/refused/. If the
uploader specified an e-mail address, admin.pl will now print a list of
possible reasons (e.g. "unclear legal status" etc.) - select one and the
uploader will be 'flamed'. If you don't want to flame the uploader (e.g.
because he's a known PITA and keeps reuploading), just hit RETURN.
[i]gnore
Upload will not be processed and will come up again next time admin.pl
is invoked. Use this if you're not sure how to handle an upload (e.g. if
you're not sure about its legal status) and report to the mailing list.
[r]eadme
display the full readme. Use SPACE and BACKSPACE to flip the pages
forwards/backwards, hit Q to quit back to the menu.
[e]dit readme
Invokes a text editor and allowes you to edit the readme. Might be handy
if you spot obvious errors in the Short: field, or if some #amigazeux
member uses the readme to insult OS4 users ;-) The text editor displays
a list of keyboard shortcuts at the bottom, should be rather easy to
understand ("^W" stands for "Control-W").
[l]ist archive
Lists the content of the current archive. Useful for checking (or
guessing) what binaries the archive contains, if it contains binaries at
all etc.
[util/misc]
This is not really an option, it's the target directory specified in the
readme (like this: "type: disk/cdrom"). If you just hit RETURN, the
upload will be accepted and moved to this directory. Instead of
accepting the directory specified by the uploader, you may also enter a
different directory ("util/shell" followed by RETURN) and the upload
will be moved there instead.
Once you decided to accept an upload, admin.pl may throw one of these
error messages at you:
specified directory does not exist
The directory specified by the uploader (or you, if you decided to
enter a new target directory) does not exist. Most likely caused by a
typo, admin.pl will ask you to enter the target directory again.
archive already exists on Aminet
If you just accepted foo.lha and a file with the same name already
exists in the target directory, admin.pl will give you several
options. You can compare the two uploads, delete the existing archive,
delete the uploaded archive etc.
Once all readmes in new/priv/check/ are processed, admin.pl will quit
and you'll be back at the shell prompt.
Further notes
- admin.pl can be aborted at any time using Control-C
- If admin.pl complains about lots of unchecked archives (unlikely, but
may happen if lots of uploads just arrived), you can abort it and run
"archivecheck.pl" manually. Once it is done, invoke admin.pl again.
- the useless stuff in new/priv/check (foo.rar, readmes without
archives, archives without readmes etc.) does not get deleted
automatically yet. I can take care of that for now (delete it
regulary), it's just that I'm to lazy to write down another tutorial
on unix path names and the rm command ;-)
|