Commit aaace67b authored by nobody's avatar nobody

This commit was manufactured by cvs2svn to create tag 'v0.31.7'.

parent ca7b8c99
This diff is collapsed.
(Hey, Emacs, this is a -*- Indented-text -*- file!)
* ansi-include/
Directory containing ANSI-fied header files for the standard
libraries.
* ChangeLog
Log file where the progressing work and changes are sporadically
documented. You are encouraged to add an entry in this file
whenever you change something in this directory.
* client/
Directory containing a TTY-based client for LysKOM, very similar to
the original KOM program from QZ.
* config.h
Configuration parameters for compiling. Contains among other
things all the stupid limits you really want to be without, all the
smart limits that has to be there to make it impossible to crash
the server, and lots of constants and configuration options.
* debug.h
Some #defines for debugging purposes.
* doc/
Documentation of LysKOM; both internal and external. Also some
random thoughts members of the development team wanted to write
down during development.
* FileList
This file, describing all the files.
* kom-errno.c
Defines the variable 'kom_errno' and the function 'kom_perror()'.
Used for error handling in LysKOM.
* kom-errno.h
Defines the type 'Kom_err' and declares the variable 'kom_errno'.
The server sets the value of 'kom_errno' when an error occurs.
The function 'kom_perror()' is declared.
* kom-types.h
Declares the types used by LysKOM. Here are the types that are
common to both the server and the client. Types that look
different to the server and the client, are found in
'server/server-types.h' and 'client/client-types.h' respectively.
* ldb/
Directory containing the low-level database routines for the LysKOM
server. 'ldb' stands for Lyskom DataBase.
* List-Files
Shell script to list the files in this directory not documented in
the file 'FileList' (the one you are reading now).
* Mailinglist
List of mail addresses of people who want to be informed of the
progress of LysKOM.
* Makefile
Exactly what the name says.
* misc-types.h
Miscellaneous types and constants that are useful in many places in
LysKOM, but are not very LysKOM-specific.
* s-collat-tables.c
Collating tables used for the 's_usr_strcmp()' and
's_usr_strhead()' functions in 's-string.h'
* s-collat-tables.h
Header file for 's-collat-tables.c'
* s-string.c
Routines for manipulating objects of type String as defined in
's-string.h'
* s-string.h
Header file for 's-string.c'
Definies our own string type 'String', and declares the functions
in 's-string.c'
* server/
Directory containing the LysKOM server, except for the low-level
database routines, which for historical reasons are in the separate
directory 'ldb/'.
* services.h
Declares all the services available from the LysKOM server.
* Summarize-Headers
Since we write our .h files with documentation in line, they
tend to get rather long, and it gets somewhat difficult to get
a quick overview of what functions are declared in the file.
This script cuts out all the "unnecessary" information: all
comments and all preprocessor lines (starting with #).
* TAGS
Tags table for use with Emacs.
* Template
Template for automatically generating 'Makefile'. 'Makefile' is
updated with the command 'make depend'. This should be given
whenever a change to 'Template' is done, or any new files are
added, or any dependecies are changed. Dependencies for normal C
files are generated automatically by this.
If 'Makefile' should become garbled, copy 'Template' to 'Makefile'
and do a 'make depend'.
* test-services/
Directory containing programs to test parts of the server. Used by
ceder, and should not be distributed.
TOPDIR = /usr/lyskom
SCRIPTDIR = $(TOPDIR)/scripts
include $(SCRIPTDIR)/import.make
SUBDIRS = doc junk scripts src
all: includes libraries binaries
includes:
-mkdir $(INCLUDEDIR)
for i in $(SUBDIRS) ; \
do \
echo making includes in directory $$i; \
(cd $$i; $(MAKE) $(EXPORTS) includes) \
done
libraries:
-mkdir $(LIBDIR)
for i in $(SUBDIRS) ; \
do \
echo making libraries in directory $$i; \
(cd $$i; $(MAKE) $(EXPORTS) libraries) \
done
binaries:
for i in $(SUBDIRS) ; \
do \
echo making binaries in directory $$i; \
(cd $$i; $(MAKE) $(EXPORTS) binaries) \
done
install:
for i in $(SUBDIRS) ; \
do \
echo making install in directory $$i; \
(cd $$i; $(MAKE) $(EXPORTS) install) \
done
depend: includes
for i in $(SUBDIRS) ; \
do \
echo making depend in directory $$i; \
(cd $$i; $(MAKE) $(EXPORTS) depend); \
done
clean:
$(RM) *~ core
for i in $(SUBDIRS); \
do \
echo making clean in directory $$i; \
(cd $$i; $(MAKE) $(EXPORTS) clean) \
done
This diff is collapsed.
This diff is collapsed.
(/usr/local/src/2kom/doc) -> (nanny.lysator.liu.se) install;
Det SIST SKRIVNA hamnar F\RST I FILEN /Aronsson.
Loggfil d{r man skriver vad man g|r. Det {r b{ttre att du skriver lite
{n inte alls (mest riktat till mig sj{lv...). /lw 900402
----------------------------------------------------------------------
3 juni 1991 Aronsson
Uppdaterat prot-A.txt och i denna inkluderat prot-A.bnf. Satt
prot-A.bnf till att vara en symbolisk l{nk till txt-filen.
14 oktober 1990 Aronsson was here
Lagt hit nedanst}ende filer. Originalen beh}ller jag hemma hos mig.
prot-A.txt Spec protokoll A. Textdelen. Svensk font.
prot-A.bnf Spec protokoll A. Koddelen. Engelsk font.
version Hantering av {ndringsf|rslag och versioner.
1990-04-17 /ceder
Tog bort den felaktiga definitionen av typen Connection ur kom-types.h. Den
riktiga finns i server/server.h.
Flyttade definitioner av Persons, Marks, String och Map till kom-types.h.
B|rjade anv{nda M-X Add-change-log-entry i st{llet.
900407 /lw
Det h{r {r c. Allts} b|r active_connection vara en pekare! (har {ndrat)
Flyttade smalloc ("s{ker" malloc) till cache.c.
Nu sparar ldb.c {ven texts-f{ltet i person-structen...
1990-04-04 /ceder
[ndrade i Person-structen: Tog bort created_texts. La till
first_text, last_text och texts (en lista med globala textnummer de globala
textnummer som personen har skapat.)
active_connection (server.h) {r index i arrayen connections (connections.c).
Skapade filen doc/security-levels.txt d{r det anges vad de olika priv-bitarna
inneb{r.
900404 /lw
[ndrade ldb:s felhantering. Nu finns den! Fortfarande inte speciellt
snygg, men n}got b{ttre {n tidigare. Returnerar intern felkod i
ldb_errno och filhandtag till felande filen i ldb_errfileno.
1990-04-02 /ceder
Fr}n och med nu anv{nder vi ISO-standard f|r datum. (:-)
kom-types.h: Tog bort flags och lade till user_area i Person-structen.
900402 /lw
Vi flyttade om filerna. Under ldb ligger nu i princip endast ldb.c och
ldb.h. Under client ligger de filer som {r specifika f|r klienten och
under server ligger de server-specifika filerna. doc-directoryt
inneh}ller dokumentationen f|r det vi h}ller p} med.
Direkt under 2kom ligger f|r n{rvarande allt som {r gemensamt f|r
s}v{l klient som server. Det {r types.h och kom-types.h (varf|r {r det
uppdelat i tv} filer?) samt services.h som tidigare hette atomic.h.
Jag har f|rresten tagit bort parametern connection som alla funktioner
i atomic.h hade. Fr}n klientens synvinkel finns inte den parametern
och det verkar f}nigt att ha den i servern. Om man har samma parameter
till samtliga funktioner tycker jag det {r ganska vettigt att i
st{llet anv{nda en global variabel.
uda@ida.liu.se
anders@lage.lysator.liu.se
tpe@ida.liu.se
kjell@saturn.ucsc.edu
jsk@lysator.liu.se
pell@lysator.liu.se
rolff@komunity.se
nixon@lysator.liu.se
riw@lysator.liu.se
magnus_k@lysator.liu.se
SLARTIBARTFAST@eLinor.lysator.liu.se
ingwa@isy.liu.se
Per_Cederqvist@f114.n204.z2.pclink.se
TOPDIR = /usr/lyskom
SCRIPTDIR = $(TOPDIR)/scripts
include $(SCRIPTDIR)/import.make
SUBDIRS = man
all:;
depend:;
includes:;
libraries:;
binaries:;
clean:
$(RM) *~ core
for i in $(SUBDIRS); \
do \
echo making clean in directory $$i; \
(cd $$i; $(MAKE) $(EXPORTS) clean) \
done
install:
for i in $(SUBDIRS); \
do \
echo installing directory in directory $$i; \
(cd $$i; $(MAKE) $(EXPORTS) install) \
done
# Makefile for LysKOM
#
###############################################################################
#
# SPECIAL CONSIDERATIONS:
#
# - Requires GNU make.
# - CC, OPTIMIZE-FLAGS and other make variables are passed down
# in the environment.
# - C compiler must be ANSI conformant.
#
###############################################################################
#
# SPECIAL TARGETS:
###############################################################################
# Directories that you might want to override via the environment.
ifndef TOPDIR
TOPDIR := /usr/lyskom/src
endif
ifndef SCRIPTDIR
SCRIPTDIR := $(TOPDIR)/scripts
endif
include $(SCRIPTDIR)/import.make
# All directories that make should traverse to when doing clean etc.
SUBDIRS = doc include junk lib scripts src
all:
for i in $(SUBDIRS) ; \
do \
echo making all in directory $$i; \
(cd $$i; $(MAKE) all) \
done
Detta directory inneh}ller dokumentation om lyskom-projektet
All utveckling av filer i detta bibliotek g|rs p} LLL. [ndra inga
filer p} Nanny. Kopiera filerna till Nanny med hj{lp av rdist.
OBS!! Om ni l{gger till en ny dokumentationsfil, tar bort n}gon eller
kombinerar tv} eller flera, {ndra d} {ven i den h{r filen!!
F|ljande dokumentation finns i detta directory (30 april 1991):
LOGG En loggfil som beskriver aktiviteten under tidiga delar av
projektet. Mest av nostalgiskt intresse och n{r vi n}gon g}ng
skall dokumentera hur vi gjorde't.
README Denna fil.
dbck.latexinfo
Beskriver dbck, programmet som kontrollerar och kompakterar en
lyskom-databas.
elisp-client.internals
Beskriver ing}ende hur elispklienten fungerar internt. L}ngt
ifr}n klar.
elisp-client.user-manual
Beskriver alla aspekter av hur man anv{nder elispklienten.
fileformat
Beskriver filformatet f|r lyskom-databasen. Inaktuell sedan
l{nge. Den h{r filen beh|ver skrivas om.
ideer/ Directory som inneh}ller filer med ideer om framtida finesser.
Endast dokumentation om saker som faktiskt {r implementerade
f}r placeras direkt under 2kom/doc. Ideer skall l{ggas i det
h{r directoryt.
mall-swe.latexinfo
H{r {r en mall som kan anv{ndas f|r alla latexinfo-filer
skrivna p} svenska.
mall.latexinfo
Samma som ovan, fast p} engelska.
misc_items
Beskriver vad som kan ing} i en lista av misc-info
(i servern?).
mux.proto
Beskriver protokollet mux <-> server.
prot-A.bnf
Aronssons ov{rderliga dokument som inneh}ller en formell
beskrivning av protokoll A.
prot-A.slightly-obsolete
Beskriver bl.a uppkopplingsf|rfarande och liknande.
prot-A.txt
Beskriver datatyper och liknande i protokollet.
Fotnot: De tre ovanst}ende filerna borde kunna kombineras till en och
speciellt s} borde de g|ras aktuella.
security-levels.txt
Beskriver vad olika privilegiebitar betyder i protokoll A, dvs
semantiken. Ingen syntax beskrivs h{r.
server-async.extend
Beskriver hur man l{gger till ett nytt asynkront meddelande i
servern.
server.extend
Beskriver hur man l{gger till ett nytt anrop i servern (och i
protokoll A).
skeleton.doc
En mall som kan anv{ndas f|r att skriva en ny dokumentation i
vanligt textformat.
- hur man formatterar koden -
- namnkonventioner -
- Makefile -
RCS
Att skapa en ny fil:
En ny fil placeras under RCS med "ci -r0.1 filnamn". I direktoryt
m}ste det finnas ett direktory som heter RCS. (Man kan skapa checka in
en ny fil fr}n emacs, men d} f}r den versionsnummer 1.0. Det g}r att
{ndra i RCS/*,v-filen, men det blir jobbigare..)
ATT TITTA P] EN FIL
F|r att titta p} en fil g|r man "co filnamn". Med "make sources"
checkas alla filer ut (om Makefilen {r r{tt skriven).
ATT EDITERA EN FIL
Innan man editerar filen m}ste man l}sa den. Det g|r man med "co -l
filnamn" eller "C-x \"" om man anv{nder rcs-cks i emacs.
Om man kommmer p} att man inte ville {ndra i filen kan man l}sa upp
den med "rcs -u filnamn".
F|r att l{mna in den nya versionen g|r man "ci filnamn" eller "C-x #".
RCSCLEAN
"make rcsclean" tar bort all k{llkod som inte {r l}st f|r editering.
Med "make sources" kan man f} tillbaks den.
RCS anv{nder inte ChangeLog. Med "rlog file" f}r man se alla {ndringar
som gjorts i en fil. I filen RCS/.rcsfreeze.log kan man se de
logmeddelande som skrivits in n{r man gjort rcsfreeze.
ChangeLoggen ska anv{ndas ({ven om det inte {r gjort p} slutet p}
servern).
ATT INSTALLERA EN NY VERSION
RCS:
1) make
2) rcsclean # Se till att alla filer f|rsvinner
3) rcsfreeze v0-30-4 # Eller liknande
4) make sources
5) make -t # S} att man slipper kompilera om saker i on|dan.
Bara steg 2 och 3 beh|vs. 1, 4 och 5 sparar lite tid.
BIN[RER:
Flytta server/diskomd till /usr/lyskom/bin/ramkomd. Se till att INNAN
dess spara den gamla ramkomd. Skriv inte |ver en exekverande fil!
COMMON
"make serverinstall" och "make clientinstall" skall g|ras n{r man har
{ndrat n}got.
LIB
"make install" skall g|ras n{r man har {ndrat n}got.
\documentstyle[12pt,latexinfo,lyskom]{report} \c -*-latexinfo-*-
\pagestyle{empty}
\begin{document}
\title{dbck --- Automatic LysKOM Database Integrity Check Program\\}
\sp{5}
\author{Per Cederqvist\\
Lysator\\
ceder@lysator.liu.se}
\sp{1}
\date{\today}
\maketitle
\clearpage
\vspace{0pt plus 1filll}
Copyright \copyright{} 1990 Lysator
\sp{2}
This document describes dbck, a program that automatically check for
and repairs inconsistencies in the LysKOM data base.
\sp{6}
Permission is granted to copy and distribute this manual, provided that
the above Copyright notice and this text remains on all copies.
\clearpage
\pagestyle{headings}
\pagenumbering{roman}
\tableofcontents
\clearpage
\pagenumbering{arabic}
\setfilename{dbck.info}
\begin{ifinfo}
Copyright \copyright 1991 Lysator
\end{ifinfo}
\node Top, Invoking dbck, , (top)
\comment node-name, next, previous, up
Dbck is a data base checker that is used to assure that the
data base of LysKOM isn't corrupted. It is also used to
gather some statistics and to compact the database.
\begin{menu}
* Invoking dbck:: Options et c.
* Tests:: A complete list of all tests that dbck performs.
\end{menu}
\node Invoking dbck, Tests, ,Top
\comment node-name, next, previous, up
\chapter{Invoking dbck}
Dbck accepts several switches. If no switches are given
dbck will read the file and report any errors found, but it
wont repair them. This behaviour is useful to check for
errors without having to take down the server. You must
take down the server to be able to repair any errors.
\begin{description}
\item[-D\var{dir}]Tell dbck to look for the data base is in
the directory \file{\var{dir}/db} instead of the default
\file{/usr/lyskom/db}.
\item[-i]Interactive use. If an error is found, and dbck
thinks that it can repair it, dbck will display a message
describing what error it has found, and how it intend to
fix it. The Operator can type \kbd{y} if he accepts the
action, och \kbd{n} if not. Note that some errors will be
repaired in a way that gives information loss --- but
always as little as possible.
\item[-r]Repair simple errors without confirmation.
\item[-v]Verbose mode.
Normally only errors are displayed. If you give the
\code{-v} flag some more statistic, such as number of
texts, average lengths of texts, and so on, will be
printed.
\item[-d]Debug mode.
Hardly useful unless you are debugging lacgen.
\item[-g]Garbage collect. Compact the file
\samp{db/lyskom-texts} by removing all unused text.
\end{description}
\clearpage
\chapter{Tests}
\end{document}
ramkomd {r d|d! L{nge leve LysKOM!
Jag har tillsammans med Inge kommit p} ett s{tt att dels f} ner
v{ntetiden i samband med syncningar till <1 sekund, dels f} ner
storleken p} serverprocessen till mer rimliga niv}er. Denna l|sning
lider dock av det stora problemet att den kr{ver dubbelt s} mycket
diskutrymme som den egentligen beh|ver. Det g|r {ven ramkomd, s} det
{r ingen f|rs{mring i det avseendet. Dock {r detta bara en tempor{r
l|sning i v{ntan p} ldb.
Varf|r spara allt p} en g}ng? Varf|r inte spara en liten del av filen
i taget, och utf|ra n}gra atomiska anrop mellan varje liten
delsynkning? Ungef{r s} t{nkte jag n{r jag kom p} f|ljande schema f|r
hur man kan g|ra det hela b{ttre {n det {r nu.
Den databas som ligger p} fil {r en |gonblickbild (snapshot) av det
som finns i LysKOM. S} {r det i ramkomd; s} blir det i diskomd.
(B{ttre namn, n}gon? lyskomd tycker jag {r reserverat f|r den version
som har en riktig cache&ldb.) I ramkomd skrivs allt ut p} disk
samtidigt. I diskomd minns man bara vad som skall sparas, och sparar
bara en bit i taget.
I ramkomd finns allt inne i ram-minnet (i teorin. I praktiken {r det
mesta utswappat - n}got som m{rks varje g}ng det {r dags att synca!).
I diskomd ligger det mesta p} disk. I minnet finns dels det som har
anv{nts nyligen, dels det som {r {ndrat och {nnu ej syncat. Diskomd
har alltid minst en, ofta tv}, databasfiler |ppna:
Fil A Senaste kompletta fil.
Fil B Fil under uppbyggnad.