From 039513b3e35a029b0ab7cee2cab4f90e14e76fe5 Mon Sep 17 00:00:00 2001
From: Linus Tolke Y <linus@lysator.liu.se>
Date: Sat, 24 Aug 1991 10:07:34 +0000
Subject: [PATCH] Initial revision

---
 doc/man/lyskom.5      | 267 ++++++++++++++++++++++++++++++++++++++++++
 doc/man/man5/lyskom.5 | 267 ++++++++++++++++++++++++++++++++++++++++++
 doc/man/man5/ramkom.5 | 267 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 801 insertions(+)
 create mode 100644 doc/man/lyskom.5
 create mode 100644 doc/man/man5/lyskom.5
 create mode 100644 doc/man/man5/ramkom.5

diff --git a/doc/man/lyskom.5 b/doc/man/lyskom.5
new file mode 100644
index 000000000..242ad9bc5
--- /dev/null
+++ b/doc/man/lyskom.5
@@ -0,0 +1,267 @@
+.\" $Id: lyskom.5,v 1.1 1991/08/24 10:07:34 linus Exp $
+.\" $Date: 1991/08/24 10:07:34 $
+.TH ramkom 5 "August 24, 1991"
+.SH NAME
+ramkom - LysKOM database format
+.SH SYNOPSIS
+.B /usr/lyskom/db/ramkomd-*
+.br
+and
+.PP
+.B /usr/lyskom/etc/pid
+.br
+.B #include <lyskom/kom-types.h>
+.SH DISCLAIMER
+The
+.I database
+is not really a database but a sequential file where all data is saved
+from the memory.
+.SH DESCRIPTION
+There are 2 files: One file with all the data
+.RB ( ramkomd-data ).
+And one with all texts 
+.RB ( ramkomd-texts ).
+The texts file does not contain any information about where any text
+starts of ends, all this is in the data file together with other infos
+on the text.
+.PP
+If the first five chars of the data file is CLEAN then the
+.I database
+is considered clean. If its anything else the
+.IR ramkomd (8)
+program will try to find the backupfile instead.
+.PP
+Then there is a number telling the number of the next free conference
+.RI ( next_free_num ).
+.PP
+Now follows a list of all conferences. One conference on each line. If
+the conference is deleted the line consists of a
+.B @
+otherwise it starts with a
+.BR + .
+.PP
+Now follows a list of all person statuses. Here is also every person
+on its own line and the deleted persons or the numbers that are not
+persons but conferences are lines containing just a
+.BR @ .
+.PP
+Both the conference status part and the person status part are exactly
+.IR next_free_num -1
+lines long.
+.PP
+Now follows the number of the next text that is not used and a list of
+text statuses.
+Every text status has its own line just like the other statuses and
+non-existent texts are represented by the 
+.BI @ .
+.PP
+The different statuses types are
+.B conference
+.BR statuses ,
+.B person statuses
+and
+.B text 
+.BR statuses .
+I consider them as structs but in this file they are not saved as
+structs but every element is save as a ascii string. Strings are
+saved as holerith strings. The field of the struct is not even saved
+in the same order as in the struct. The order they are saved in is
+described below.
+.PP
+An array of things is reprecented in the database by a number telling
+how many elements there are in the array and the either a
+.B *
+in the case no elements or a 
+.B {
+followed by all the elements and a finishing
+.BR } .
+.SS Conference status
+.LP
+This contains all information for a conference. A conference is a
+object that recieves texts.
+.TP 5
+.B Name
+Name of the conference saved as a holerith string.
+.TP
+.B Member list
+An array of the members in that conference.
+.TP
+.B First local number
+This is the local number of the first text in the conference. Its
+saved here in order to save space in this file by not mentioning all
+deleted texts in the beginning of the conference.
+.TP
+.B Texts
+This is an array of recieved texts. The local number of the text is
+determined by the position in this list and the value of the
+.B first local
+.BR number .
+.TP
+.B Type
+This is the type of the conf, it contains the infomation that says if
+the conference is read protected, original flagged conference, secret,
+or if its a letter box.
+.TP
+.B Creation time
+The time the conference was created.
+.TP
+.B Last written
+The time the last text was sent to the conference.
+.TP
+.B Creator
+The number of the person that has created the conference. This is 0
+for conferences that are created initially.
+.TP
+.B Presentation
+This is the number of the text containing a presentation of the
+conference. If there is no presentation this number is 0.
+.TP
+.B Supervisor
+This is the number of the conference whose members are supervisors of
+the conference. Initially this is set to be the number of the letter
+box of the creator.
+.TP
+.B Permitted submitters
+This is the number of the conference whose members are allowed to
+submit texts to this conference. If this is 0 (the default) all
+persons i LysKOM are allowed to submit.
+.TP
+.B Super conference
+This is a number of a conference that comments to articles should be
+sent to if this conference is original flagged.
+.TP
+.B Message of the day
+This is the textnumber of the text containing a notice message about
+the conference. Mostly used for letter boxes. If 0 then there is no
+such message.
+.TP
+.B Garb nice
+This is the number of days a text stays in the conference before it is
+removed by the expiration routines. Its really the expiration rate.
+.SS Person statuses
+.LP
+Person statuses contains all info about persons.
+.TP 5
+.B Password
+The password is stored as a string. The length of the string is 64 but
+the length of the password itself is stored as the first char in the
+string. Passwords longer that 63 chars are truncated.
+.TP
+.B Username
+This is the username and machine from the last time the person logged in.
+.TP
+.B Privileges
+The persons privileges are stored here. This is a bit array, length is
+16 bits. It is not really welldetemined what bit does what.
+.TP
+.B Personal flags
+The persons flags are stored here. Anybody that would like to explain
+what they do can fill in:
+............................................................. 
+.TP
+.B First local number
+This is the local number of the first created text that still exists
+in the database. Its local to this list.
+.TP
+.B Created text list
+This is an array of all created texts beginning at the first local
+number.
+.TP
+.B Marked texts
+This is an array of all marked texts and their mark type. Every
+element in the array is a text number and a mark number.
+.TP
+.B Membership
+Here is the information about which conferences the person is member
+in. Its an array where every element is of the type 
+.B Membership
+(See below).
+.TP
+.B Last login
+Time of the last login.
+.TP
+.B User area
+Number of the text being the persons user area. If there is no user
+area this is 0.
+.TP
+.B Total time present
+Time in LysKOM in seconds.
+.TP
+.B Sessions
+Number of logins made for that person.
+.TP
+.B Created lines
+.TP
+.B Created bytes
+.TP
+.B Read texts
+Count of read marked texts.
+.TP
+.B No of fetches
+This is the information about how many texts this person has fetched.
+Using caching clients this number could increase well beyond
+.B Read 
+.BR texts .
+.TP
+.B Created persons
+Count of created persons.
+.TP 
+.B Created conferences
+Count of created conferences.
+.SS Text statuses
+This contains info about the texts.
+.TP 5
+.B Created time
+Time this text was created.
+.TP
+.B Author
+Person that wrote this text.
+.TP
+.B Start
+Start pointer for the text in the
+.B ramkomd-texts
+file.
+.TP
+.B Number of lines
+Length of the text in lines.
+.TP
+.B Number of chars
+Length of the text in chars.
+.TP
+.B Number of marks
+Count of existing marks on this text.
+.TP
+.B Header list
+An array containing info about recipients, 
+.I comments
+.IR to -pointers
+etc. Every element is a Misc_info.
+.SS Membership
+The membership type tells us about conferences we are member of and
+how much we have already read of it. It is saved in this way:
+.TP
+.B Last time read
+Updated when we mark a text as read in this conference.
+.TP
+.B Conference number
+The number telling what conf.
+.TP
+.B Priority
+Used by the client to determine reading order.
+.TP
+.B Last text read
+Local number of the last text we have read. This is used to keep track
+of which texts we have not yet read and calculate how many unread we
+have in this conference.
+.TP
+.B Read texts
+An array containing the texts that we have read after the 
+.B Last text 
+.BR read .
+This is necessary because its possible to read in any order.
+.SH BUGS
+This is really a joke. Its not a database, not optimal in any way. But
+it works.
+.PP
+The motd-of-lyskom text number is not saved anywhere. This makes the
+server forget what text that is when restarting.
diff --git a/doc/man/man5/lyskom.5 b/doc/man/man5/lyskom.5
new file mode 100644
index 000000000..242ad9bc5
--- /dev/null
+++ b/doc/man/man5/lyskom.5
@@ -0,0 +1,267 @@
+.\" $Id: lyskom.5,v 1.1 1991/08/24 10:07:34 linus Exp $
+.\" $Date: 1991/08/24 10:07:34 $
+.TH ramkom 5 "August 24, 1991"
+.SH NAME
+ramkom - LysKOM database format
+.SH SYNOPSIS
+.B /usr/lyskom/db/ramkomd-*
+.br
+and
+.PP
+.B /usr/lyskom/etc/pid
+.br
+.B #include <lyskom/kom-types.h>
+.SH DISCLAIMER
+The
+.I database
+is not really a database but a sequential file where all data is saved
+from the memory.
+.SH DESCRIPTION
+There are 2 files: One file with all the data
+.RB ( ramkomd-data ).
+And one with all texts 
+.RB ( ramkomd-texts ).
+The texts file does not contain any information about where any text
+starts of ends, all this is in the data file together with other infos
+on the text.
+.PP
+If the first five chars of the data file is CLEAN then the
+.I database
+is considered clean. If its anything else the
+.IR ramkomd (8)
+program will try to find the backupfile instead.
+.PP
+Then there is a number telling the number of the next free conference
+.RI ( next_free_num ).
+.PP
+Now follows a list of all conferences. One conference on each line. If
+the conference is deleted the line consists of a
+.B @
+otherwise it starts with a
+.BR + .
+.PP
+Now follows a list of all person statuses. Here is also every person
+on its own line and the deleted persons or the numbers that are not
+persons but conferences are lines containing just a
+.BR @ .
+.PP
+Both the conference status part and the person status part are exactly
+.IR next_free_num -1
+lines long.
+.PP
+Now follows the number of the next text that is not used and a list of
+text statuses.
+Every text status has its own line just like the other statuses and
+non-existent texts are represented by the 
+.BI @ .
+.PP
+The different statuses types are
+.B conference
+.BR statuses ,
+.B person statuses
+and
+.B text 
+.BR statuses .
+I consider them as structs but in this file they are not saved as
+structs but every element is save as a ascii string. Strings are
+saved as holerith strings. The field of the struct is not even saved
+in the same order as in the struct. The order they are saved in is
+described below.
+.PP
+An array of things is reprecented in the database by a number telling
+how many elements there are in the array and the either a
+.B *
+in the case no elements or a 
+.B {
+followed by all the elements and a finishing
+.BR } .
+.SS Conference status
+.LP
+This contains all information for a conference. A conference is a
+object that recieves texts.
+.TP 5
+.B Name
+Name of the conference saved as a holerith string.
+.TP
+.B Member list
+An array of the members in that conference.
+.TP
+.B First local number
+This is the local number of the first text in the conference. Its
+saved here in order to save space in this file by not mentioning all
+deleted texts in the beginning of the conference.
+.TP
+.B Texts
+This is an array of recieved texts. The local number of the text is
+determined by the position in this list and the value of the
+.B first local
+.BR number .
+.TP
+.B Type
+This is the type of the conf, it contains the infomation that says if
+the conference is read protected, original flagged conference, secret,
+or if its a letter box.
+.TP
+.B Creation time
+The time the conference was created.
+.TP
+.B Last written
+The time the last text was sent to the conference.
+.TP
+.B Creator
+The number of the person that has created the conference. This is 0
+for conferences that are created initially.
+.TP
+.B Presentation
+This is the number of the text containing a presentation of the
+conference. If there is no presentation this number is 0.
+.TP
+.B Supervisor
+This is the number of the conference whose members are supervisors of
+the conference. Initially this is set to be the number of the letter
+box of the creator.
+.TP
+.B Permitted submitters
+This is the number of the conference whose members are allowed to
+submit texts to this conference. If this is 0 (the default) all
+persons i LysKOM are allowed to submit.
+.TP
+.B Super conference
+This is a number of a conference that comments to articles should be
+sent to if this conference is original flagged.
+.TP
+.B Message of the day
+This is the textnumber of the text containing a notice message about
+the conference. Mostly used for letter boxes. If 0 then there is no
+such message.
+.TP
+.B Garb nice
+This is the number of days a text stays in the conference before it is
+removed by the expiration routines. Its really the expiration rate.
+.SS Person statuses
+.LP
+Person statuses contains all info about persons.
+.TP 5
+.B Password
+The password is stored as a string. The length of the string is 64 but
+the length of the password itself is stored as the first char in the
+string. Passwords longer that 63 chars are truncated.
+.TP
+.B Username
+This is the username and machine from the last time the person logged in.
+.TP
+.B Privileges
+The persons privileges are stored here. This is a bit array, length is
+16 bits. It is not really welldetemined what bit does what.
+.TP
+.B Personal flags
+The persons flags are stored here. Anybody that would like to explain
+what they do can fill in:
+............................................................. 
+.TP
+.B First local number
+This is the local number of the first created text that still exists
+in the database. Its local to this list.
+.TP
+.B Created text list
+This is an array of all created texts beginning at the first local
+number.
+.TP
+.B Marked texts
+This is an array of all marked texts and their mark type. Every
+element in the array is a text number and a mark number.
+.TP
+.B Membership
+Here is the information about which conferences the person is member
+in. Its an array where every element is of the type 
+.B Membership
+(See below).
+.TP
+.B Last login
+Time of the last login.
+.TP
+.B User area
+Number of the text being the persons user area. If there is no user
+area this is 0.
+.TP
+.B Total time present
+Time in LysKOM in seconds.
+.TP
+.B Sessions
+Number of logins made for that person.
+.TP
+.B Created lines
+.TP
+.B Created bytes
+.TP
+.B Read texts
+Count of read marked texts.
+.TP
+.B No of fetches
+This is the information about how many texts this person has fetched.
+Using caching clients this number could increase well beyond
+.B Read 
+.BR texts .
+.TP
+.B Created persons
+Count of created persons.
+.TP 
+.B Created conferences
+Count of created conferences.
+.SS Text statuses
+This contains info about the texts.
+.TP 5
+.B Created time
+Time this text was created.
+.TP
+.B Author
+Person that wrote this text.
+.TP
+.B Start
+Start pointer for the text in the
+.B ramkomd-texts
+file.
+.TP
+.B Number of lines
+Length of the text in lines.
+.TP
+.B Number of chars
+Length of the text in chars.
+.TP
+.B Number of marks
+Count of existing marks on this text.
+.TP
+.B Header list
+An array containing info about recipients, 
+.I comments
+.IR to -pointers
+etc. Every element is a Misc_info.
+.SS Membership
+The membership type tells us about conferences we are member of and
+how much we have already read of it. It is saved in this way:
+.TP
+.B Last time read
+Updated when we mark a text as read in this conference.
+.TP
+.B Conference number
+The number telling what conf.
+.TP
+.B Priority
+Used by the client to determine reading order.
+.TP
+.B Last text read
+Local number of the last text we have read. This is used to keep track
+of which texts we have not yet read and calculate how many unread we
+have in this conference.
+.TP
+.B Read texts
+An array containing the texts that we have read after the 
+.B Last text 
+.BR read .
+This is necessary because its possible to read in any order.
+.SH BUGS
+This is really a joke. Its not a database, not optimal in any way. But
+it works.
+.PP
+The motd-of-lyskom text number is not saved anywhere. This makes the
+server forget what text that is when restarting.
diff --git a/doc/man/man5/ramkom.5 b/doc/man/man5/ramkom.5
new file mode 100644
index 000000000..d9e0ff4ee
--- /dev/null
+++ b/doc/man/man5/ramkom.5
@@ -0,0 +1,267 @@
+.\" $Id: ramkom.5,v 1.1 1991/08/24 10:07:34 linus Exp $
+.\" $Date: 1991/08/24 10:07:34 $
+.TH ramkom 5 "August 24, 1991"
+.SH NAME
+ramkom - LysKOM database format
+.SH SYNOPSIS
+.B /usr/lyskom/db/ramkomd-*
+.br
+and
+.PP
+.B /usr/lyskom/etc/pid
+.br
+.B #include <lyskom/kom-types.h>
+.SH DISCLAIMER
+The
+.I database
+is not really a database but a sequential file where all data is saved
+from the memory.
+.SH DESCRIPTION
+There are 2 files: One file with all the data
+.RB ( ramkomd-data ).
+And one with all texts 
+.RB ( ramkomd-texts ).
+The texts file does not contain any information about where any text
+starts of ends, all this is in the data file together with other infos
+on the text.
+.PP
+If the first five chars of the data file is CLEAN then the
+.I database
+is considered clean. If its anything else the
+.IR ramkomd (8)
+program will try to find the backupfile instead.
+.PP
+Then there is a number telling the number of the next free conference
+.RI ( next_free_num ).
+.PP
+Now follows a list of all conferences. One conference on each line. If
+the conference is deleted the line consists of a
+.B @
+otherwise it starts with a
+.BR + .
+.PP
+Now follows a list of all person statuses. Here is also every person
+on its own line and the deleted persons or the numbers that are not
+persons but conferences are lines containing just a
+.BR @ .
+.PP
+Both the conference status part and the person status part are exactly
+.IR next_free_num -1
+lines long.
+.PP
+Now follows the number of the next text that is not used and a list of
+text statuses.
+Every text status has its own line just like the other statuses and
+non-existent texts are represented by the 
+.BI @ .
+.PP
+The different statuses types are
+.B conference
+.BR statuses ,
+.B person statuses
+and
+.B text 
+.BR statuses .
+I consider them as structs but in this file they are not saved as
+structs but every element is save as a ascii string. Strings are
+saved as holerith strings. The field of the struct is not even saved
+in the same order as in the struct. The order they are saved in is
+described below.
+.PP
+An array of things is reprecented in the database by a number telling
+how many elements there are in the array and the either a
+.B *
+in the case no elements or a 
+.B {
+followed by all the elements and a finishing
+.BR } .
+.SS Conference status
+.LP
+This contains all information for a conference. A conference is a
+object that recieves texts.
+.TP 5
+.B Name
+Name of the conference saved as a holerith string.
+.TP
+.B Member list
+An array of the members in that conference.
+.TP
+.B First local number
+This is the local number of the first text in the conference. Its
+saved here in order to save space in this file by not mentioning all
+deleted texts in the beginning of the conference.
+.TP
+.B Texts
+This is an array of recieved texts. The local number of the text is
+determined by the position in this list and the value of the
+.B first local
+.BR number .
+.TP
+.B Type
+This is the type of the conf, it contains the infomation that says if
+the conference is read protected, original flagged conference, secret,
+or if its a letter box.
+.TP
+.B Creation time
+The time the conference was created.
+.TP
+.B Last written
+The time the last text was sent to the conference.
+.TP
+.B Creator
+The number of the person that has created the conference. This is 0
+for conferences that are created initially.
+.TP
+.B Presentation
+This is the number of the text containing a presentation of the
+conference. If there is no presentation this number is 0.
+.TP
+.B Supervisor
+This is the number of the conference whose members are supervisors of
+the conference. Initially this is set to be the number of the letter
+box of the creator.
+.TP
+.B Permitted submitters
+This is the number of the conference whose members are allowed to
+submit texts to this conference. If this is 0 (the default) all
+persons i LysKOM are allowed to submit.
+.TP
+.B Super conference
+This is a number of a conference that comments to articles should be
+sent to if this conference is original flagged.
+.TP
+.B Message of the day
+This is the textnumber of the text containing a notice message about
+the conference. Mostly used for letter boxes. If 0 then there is no
+such message.
+.TP
+.B Garb nice
+This is the number of days a text stays in the conference before it is
+removed by the expiration routines. Its really the expiration rate.
+.SS Person statuses
+.LP
+Person statuses contains all info about persons.
+.TP 5
+.B Password
+The password is stored as a string. The length of the string is 64 but
+the length of the password itself is stored as the first char in the
+string. Passwords longer that 63 chars are truncated.
+.TP
+.B Username
+This is the username and machine from the last time the person logged in.
+.TP
+.B Privileges
+The persons privileges are stored here. This is a bit array, length is
+16 bits. It is not really welldetemined what bit does what.
+.TP
+.B Personal flags
+The persons flags are stored here. Anybody that would like to explain
+what they do can fill in:
+............................................................. 
+.TP
+.B First local number
+This is the local number of the first created text that still exists
+in the database. Its local to this list.
+.TP
+.B Created text list
+This is an array of all created texts beginning at the first local
+number.
+.TP
+.B Marked texts
+This is an array of all marked texts and their mark type. Every
+element in the array is a text number and a mark number.
+.TP
+.B Membership
+Here is the information about which conferences the person is member
+in. Its an array where every element is of the type 
+.B Membership
+(See below).
+.TP
+.B Last login
+Time of the last login.
+.TP
+.B User area
+Number of the text being the persons user area. If there is no user
+area this is 0.
+.TP
+.B Total time present
+Time in LysKOM in seconds.
+.TP
+.B Sessions
+Number of logins made for that person.
+.TP
+.B Created lines
+.TP
+.B Created bytes
+.TP
+.B Read texts
+Count of read marked texts.
+.TP
+.B No of fetches
+This is the information about how many texts this person has fetched.
+Using caching clients this number could increase well beyond
+.B Read 
+.BR texts .
+.TP
+.B Created persons
+Count of created persons.
+.TP 
+.B Created conferences
+Count of created conferences.
+.SS Text statuses
+This contains info about the texts.
+.TP 5
+.B Created time
+Time this text was created.
+.TP
+.B Author
+Person that wrote this text.
+.TP
+.B Start
+Start pointer for the text in the
+.B ramkomd-texts
+file.
+.TP
+.B Number of lines
+Length of the text in lines.
+.TP
+.B Number of chars
+Length of the text in chars.
+.TP
+.B Number of marks
+Count of existing marks on this text.
+.TP
+.B Header list
+An array containing info about recipients, 
+.I comments
+.IR to -pointers
+etc. Every element is a Misc_info.
+.SS Membership
+The membership type tells us about conferences we are member of and
+how much we have already read of it. It is saved in this way:
+.TP
+.B Last time read
+Updated when we mark a text as read in this conference.
+.TP
+.B Conference number
+The number telling what conf.
+.TP
+.B Priority
+Used by the client to determine reading order.
+.TP
+.B Last text read
+Local number of the last text we have read. This is used to keep track
+of which texts we have not yet read and calculate how many unread we
+have in this conference.
+.TP
+.B Read texts
+An array containing the texts that we have read after the 
+.B Last text 
+.BR read .
+This is necessary because its possible to read in any order.
+.SH BUGS
+This is really a joke. Its not a database, not optimal in any way. But
+it works.
+.PP
+The motd-of-lyskom text number is not saved anywhere. This makes the
+server forget what text that is when restarting.
-- 
GitLab