Ticket #45684

I can not get the server to recognize a custom ruleset

Eröffnet am: 2022-09-23 00:43 Letztes Update: 2022-10-29 09:53

Auswertung:
Verantwortlicher:
Status:
Geschlossen
Komponente:
(Keine)
Meilenstein:
(Keine)
Priorität:
1 - Unterste
Schweregrad:
1 - Unterste
Lösung:
Ungültiger
Datei:
Keine

Details

Normally I would ask this kind of question in the forum, but I can not register an account there and I don't get answers on the subreddit.

I have been working on a custom ruleset for a few weeks now and finally needed to test it, but I can not get the server to recognize it. I followed the wiki instructions on creating a new ruleset. I also compared it to existing ones like alien, but I can't find anything I might have missed. The game has been compiled and installed with the script for Ubuntu from the forum. I tried it with putting both the ruleset folder and the serv file in the .freeciv folder in the home folder, inside a 3.0.3 subfolder, and putting both into /usr/local/share/freeciv/default, like the standard rulesets. The server reply is always the same: Ruleset directory 'slowscience' not found (had to translate that back). Also tried it with a test ruleset, by just copying and renaming the default ruleset folder, serv file and changing the name accordingly in the serv file, same result. Here are all the files in their current state, for checking: https://drive.google.com/file/d/1cVaT0QOS19u5VTTxuyd2bHZGXiSmfR06/view?usp=sharing

Ticket-Verlauf (3/6 Historien)

2022-09-23 00:43 Aktualisiert von: no0815
  • New Ticket "I can not get the server to recognize a custom ruleset" created
2022-09-23 01:13 Aktualisiert von: cazfi
Kommentar

Reply To no0815

I have been working on a custom ruleset for a few weeks now and finally needed to test it, but I can not get the server to recognize it. I followed the wiki instructions on creating a new ruleset. I also compared it to existing ones like alien, but I can't find anything I might have missed. The game has been compiled and installed with the script for Ubuntu from the forum. I tried it with putting both the ruleset folder and the serv file in the .freeciv folder in the home folder, inside a 3.0.3 subfolder, and putting both into /usr/local/share/freeciv/default, like the standard rulesets. The server reply is always the same: Ruleset directory 'slowscience' not found (had to translate that back). Also tried it with a test ruleset, by just copying and renaming the default ruleset folder, serv file and changing the name accordingly in the serv file, same result. Here are all the files in their current state, for checking: https://drive.google.com/file/d/1cVaT0QOS19u5VTTxuyd2bHZGXiSmfR06/view?usp=sharing

1) Which Ubuntu version is this (so I can test with the same)? What were the exact parameters you run the build script with?
2) Do you have other freeciv installations than this (e.g. Ubuntu's package)? Maybe /usr/local/share/freeciv belongs to such installation.
3) The version specific subdirectory would be ~/.freeciv/3.0/ (not 3.0.3) - the ruleset format does not change within a release series (in bugfix -only releases)
4) Do you happen to have environment variable FREECIV_DATA_PATH set? (Unlikely, but it would explain why server would be looking from a wrong place)

While at it, the ruleset has following errors preventing it from loading even when it's found from the data path
2: Unknown requirement range "tile", falling back to default one.
2: Unknown requirement range "Tile", falling back to default one.
1: Invalid requirement Tech | Player | | present | Teraforming: bad type or name

Those "Tile" ranges likely should be "Local" - the "Tile" range is something that is split from "Local" in freeciv-3.2 (and some ruleset changes that use it were accidentally backported even to supplied rulesets - fixed in #45262)

2022-09-23 03:07 Aktualisiert von: no0815
Kommentar

1) Which Ubuntu version is this (so I can test with the same)? What were the exact parameters you run the build script with?

Xubuntu 20.04. As for the parameters, I only remember picking GTK3 as client. I haven't really compiled myself before, getting it to work was finicky and took over a day.

2) Do you have other freeciv installations than this (e.g. Ubuntu's package)? Maybe /usr/local/share/freeciv belongs to such installation.

I did have the package installed originally, but I think I removed it completely.

3) The version specific subdirectory would be ~/.freeciv/3.0/ (not 3.0.3) - the ruleset format does not change within a release series (in bugfix -only releases)

Oh, I see, I was wondering to what level it would be required, but the instructions weren't clear. Now it works from the home dir, which I prefer anyway.

4) Do you happen to have environment variable FREECIV_DATA_PATH set? (Unlikely, but it would explain why server would be looking from a wrong place)

I do not think so, though I'd have to check. I almost never tinker with environment variables. It also would prevent the standard rulesets from loading, right? After renaming the dir it also works now, so I assume the point is not relevant anymore

While at it, the ruleset has following errors preventing it from loading even when it's found from the data path
2: Unknown requirement range "tile", falling back to default one.
2: Unknown requirement range "Tile", falling back to default one.
1: Invalid requirement Tech | Player | | present | Teraforming: bad type or name
Those "Tile" ranges likely should be "Local" - the "Tile" range is something that is split from "Local" in freeciv-3.2 (and some ruleset changes that use it were accidentally backported even to supplied rulesets - fixed in #45262)

Thanks for letting me know! The first error was just a typo, but I don't get the range error on my end. Also didn't include any rule with a range value "tile" myself. I'll still keep that in mind.

2022-09-24 23:49 Aktualisiert von: cazfi
Kommentar

Reply To no0815

While at it, the ruleset has following errors preventing it from loading even when it's found from the data path
2: Unknown requirement range "tile", falling back to default one.
2: Unknown requirement range "Tile", falling back to default one.
1: Invalid requirement Tech | Player | | present | Teraforming: bad type or name
Those "Tile" ranges likely should be "Local" - the "Tile" range is something that is split from "Local" in freeciv-3.2 (and some ruleset changes that use it were accidentally backported even to supplied rulesets - fixed in #45262)

Thanks for letting me know! The first error was just a typo, but I don't get the range error on my end. Also didn't include any rule with a range value "tile" myself. I'll still keep that in mind.

Like I said, we had those problems even in the supplied rulesets, so if you've copied one of those as your starting point, you may have got the issue too. Error detection heuristics were not up to catch those in 3.0.3. In 3.0.4 you will get a warning about them.

2022-09-24 23:58 Aktualisiert von: no0815
Kommentar

I see. Going from the impression that everything seems to work in this regard, I for now assume that there is no issue in the ruleset.

2022-10-29 09:53 Aktualisiert von: cazfi
  • Status Update from Offen to Geschlossen
  • Verantwortlicher Update from (Keine) to cazfi
  • Lösung Update from Keine to Ungültiger
Kommentar

Nothing to do in this ticket.

Dateianhangliste

Keine Anhänge

Bearbeiten

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Anmelden