Homemud
=======

Abhaengigkeiten
---------------

    Um den Treiber mit allen Features, die unsere Mudlib benutzt, zu bauen,
    benoetigt man folgende Pakete (die Namen koennen je nach Distribution
    abweichen):

    bison, libc-ares2, libc6, libgcrypt, libgnutls30, libjson0/json-c,
    libpcre3, libsqlite3, libxml2, python3 (libpython3), python3-setuptools,
    pkg-config

    Beachte, dass man auf debianbasierten System auch die entsprechenden
    Entwicklerpackete (`*-dev`) mitinstallieren muss, weil sie die notwendigen
    Header-Dateien der Files enthalten. Unter Redhat 

    bison und pkg-config werden nur beim konfigurieren und kompilieren des
    Drivers benoetigt.


Anleitung fuer ein Homemud, unter Linux
---------------------------------------

    Mit den folgenden Schritten installiert man die gegenwaertige mudlib und
    einen Driver der Version LDMUD-3.6.8.

    1. Lade den aktuellen Driver unter https://github.com/ldmud/ldmud herunter.
       Du kannst auch das Repo via git clonen.
       Beachte, dass einige von uns genutzte Features erst mit Commit b152e3 in
       die src/settings/morgengrauen aufgenommen wurden.

    2. Lade die aktuelle Mudlib von
       https://mg.mud.de/gerrit/gitweb?p=mudlib-public.git herunter, entweder
       durch einen Klick auf "snapshot" oder mittels git clonen.

    3. Gehe in das `src/`-Verzeichnis des drivers

    4. Im `src/`-Verzeichnis, fuehre :code:`./autogen.sh` aus (Hierfuer ist das Paket autoconf empfehlenswert.)

    5. Im src/-Verzeichnis, passe die Pfade in settings/morgengrauen an, und
       fuehre settings/morgengrauen aus

    6. im src/-Verzeichnis, kompiliere und installiere den Treiber mit
       :code:`make all` und :code:`make install-all`. (Hierfuer wird das Paket bison benoetigt.)

    7. Falls noch nicht geschehen, schiebe die Mudlib in den Ordner, den Du in
       `settings/morgengrauen` eingestellt hast

    Nun laesst sich das Homemud mit der installierten ldmud-binary starten.
    Du kannst als Argument noch einen alternativen Port angeben.

    8. Starte das mud mit der installierten ldmud-Binary. Mittels
       :code:`ldmud <port>` kannst Du auch den Port bestimmten, auf welchem
       das Homemud laeuft.

    9. Einloggen als "jof".

    Optional kannst Du *anschliessend* den Namen des Mudgottes von Jof auf
    etwas anderes aendern, das geht wie folgt:

.. code-block:: shell

      clone /obj/tools/MGtool
      xcall $me->SetProp(P_START_HOME, "/players/thomas/workroom");
      ende

    Auf der Shell:

.. code-block:: shell

      mv data/save/j/jof.o data/save/t/thomas.o
      mv data/secure/save/j/jof.o data/secure/save/t/thomas.o
      # (beachte den Namen des Unterverzeichnisses, es ist der erste Buchstabe
      # Deines Namens. )
      sed -i 's/jof/thomas/' data/secure/save/t/thomas.o
      mkdir -p players/thomas
      mv players/jof/workroom.c players/thomas/workroom.c

    Beachte hierbei allerdings, dass in Homemuds immer automatisch
    sichergestellt wird, dass "Jof" existiert. Falls noetig, wird diesr Char
    ohne Passwort angelegt. Ist Dein Homemud erreichbar, gibt "jof" bitte ein
    Passwort und lasse den Char bestehen. (Alternativ muss Du das File
    /secure/testmud.c anpassen.)

Beispielinstallation
--------------------

.. code-block:: shell

       cd <mudhome>
       git clone https://github.com/ldmud/ldmud.git
       cd ldmud.git/src
       ./autogen.sh
       settings/morgengrauen
       make all && make install-all
       cd <mudhome>
       # hier wurde der bin/ Ordner nicht angepasst, wir verschieben noch die
       # Binary
       mv bin.install/ldmud bin/ldmud
       tar xvzf <mudlib-snapshot.tgz>
       # Alternative
       git clone https://mg.mud.de/gerrit/mudlib-public mudlib
       cd <mudhome>
       bin/ldmud
       # oder
       bin/ldmud -m <alternative path to mudlib> <alternative port>
       # Einloggen als Jof.

Sonstiges
---------

    Der Driver benutzt inzwischen UTF-8 und wandelt das bei der Ausgabe an
    spielende passend fuer den Client um. Wenn Ihr auf Eurem Rechner keine
    deutsche Locale benutzt, exportiert vorher noch
    LC_TIME=de_DE.UTF-8 (oder jede andere deutsche Locale) und falls LC_ALL
    gesetzt ist, auch LC_ALL=de_DE.UTF-8.

Letzte Aenderung: 11.07.2025, Bugfix

