How do database files look like in Minetest

For people working on the C++ code.
Post Reply
User avatar
debiankaios
Member
Posts: 886
Joined: Thu Dec 03, 2020 12:48
IRC: debiankaios
In-game: debiankaios Nowe
Location: germany
Contact:

How do database files look like in Minetest

by debiankaios » Post

I was wondering what all the database files in Minetest look like(auth.sqlite, map.sqlite, players.sqlite, and so on for the other databases) because I want to read them out to match the files with which mods used them. Is there a document how the files look like?
Greetings,
debiankaios

User avatar
Krock
Developer
Posts: 4629
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker
Location: Switzerland
Contact:

Re: How do database files look like in Minetest

by Krock » Post

Install "DB Browser for Sqlite" and you'll be able to easily investigate the format.

You can find more documentation here: https://github.com/minetest/minetest/bl ... at.txt#L61 or in the source code (TM).
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>

User avatar
Blockhead
Member
Posts: 855
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under

Re: How do database files look like in Minetest

by Blockhead » Post

SQLite isn't the only database format, so it's not always .sqlite. There are several database backends that Minetest uses, and the engine abstracts the format out of the equation and just uses generic functions to write back to whatever database(s) is being used as per the configuration in minetest.conf. But I'll use those names for the sake of simplicity below since the most common setup is to use SQLite.
  • auth.sqlite: Holds player authentication information. Minetest uses SRP authentication, and this is where the users' SRP information is stored. Lua can access some functions related to it as documented here and here. Also holds the privileges.
  • map.sqlite: Holds the world information, with one mapblock per row in the database. The format is documented here. The key format used in that database file is one of the things that needs to be changed if Minetest is to moved beyond 60 km world size.
  • players.sqlite: Holds information about players: their position, health, breath, creation date, modification date; inventories, inventory items and metadata (which is how mods associate extra data with the player).
  • mod_storage.sqlite: Holds key-value information that mods wants to store persistently. This is one of several useful techniques alongside the JSON and Lua table serializers that mods can use to store persistent data (see the Storage chapter of the modding book).
I suggest downloading the application SQLiteStudio, which is a great GUI program for exploring, editing and running SQL against SQLite database files. You can add your world's database files to your SQLiteStudio list of databases and easily look inside the contents of the files, change things, and just in general learn about what's inside these databases. SQLiteStudio also has a lot of other uses in other applications because SQLite is a very common "embedded" database for many small programs.

After looking around with SQLiteStudio, you can move onto the C++ code if you want to learn more; the database-related code is mostly in minetest/src/database/ in the source tree. Start with database.h which shows you what an implementation of that database for use inside Minetest will need, then look at any specific databases you are interested in. You will see what libraries are used to deal with each database supported by Minetest and how Minetest writes back to those databases.
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB

User avatar
DS-minetest
Member
Posts: 1309
Joined: Thu Jun 19, 2014 19:49
GitHub: Desour
IRC: Desour
In-game: DS
Location: I'm scared that if this is too exact, I will be unable to use my keyboard.

Re: How do database files look like in Minetest

by DS-minetest » Post

You don't need to install any fancy gui stuff to look at the db tables. Just type `.schema` into the sqlite REPL (after starting with `$ sqlite3 <db file>`).

For how the world is stored, look into that file in doc/.
Note that I've recently renamed myself on github and co. to "Desour". (I'm bad at naming things.)
Feel free to call me DS.

User avatar
snoopy
Member
Posts: 266
Joined: Thu Oct 20, 2016 16:49
Location: DE, European Union

Re: How do database files look like in Minetest

by snoopy » Post

DS-minetest wrote:
Tue Jan 03, 2023 17:37
For how the world is stored, look into that file in doc/.
Good advice.

However, a.m. "that file in doc/" being: Please be aware there might be undocumented changes to this format after the MT 5.5.0 release, I presume.

User avatar
Blockhead
Member
Posts: 855
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under

Re: How do database files look like in Minetest

by Blockhead » Post

DS-minetest wrote:
Tue Jan 03, 2023 17:37
You don't need to install any fancy gui stuff to look at the db tables. Just type `.schema` into the sqlite REPL (after starting with `$ sqlite3 <db file>`).

For how the world is stored, look into that file in doc/.
Despite compiling Minetest from source regularly, I don't have the sqlite REPL installed, only the library files. So it's another program for me and presumably many others to install anyway. You don't need a markdown viewer to read lua_api.txt either, but some people like it that way.

For what it's worth I tried the sqlite3 REPL and yeah.. it is a REPL with readline support.. okay. Good. But it's easier to read the schema off a GUI in my opinion, since it doesn't do any kind of pretty printing and just presents everything on one line:

Code: Select all

CREATE TABLE `player` (`name` VARCHAR(50) NOT NULL,`pitch` NUMERIC(11, 4) NOT NULL,`yaw` NUMERIC(11, 4) NOT NULL,`posX` NUMERIC(11, 4) NOT NULL,`posY` NUMERIC(11, 4) NOT NULL,`posZ` NUMERIC(11, 4) NOT NULL,`hp` INT NOT NULL,`breath` INT NOT NULL,`creation_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,`modification_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (`name`));
versus this screenshot of SQLiteStudio:
2023-01-04-135556_1083x413_scrot.png
2023-01-04-135556_1083x413_scrot.png (95.59 KiB) Viewed 549 times
Did I mention you can edit rows like a spreadsheet program in SQLiteStudio? That you can also run any SQL you want against the database, and that any database you add it its configuration will automatically be connected to on program start? That's a whole lot easier than changing to your world directory in a terminal, opening the sqlite3 CLI, and typing a command like update player set name = 'newname' where name = 'oldname' (which by the way you can also run inside SQLiteStudio).

I'm not saying don't use the SQLite CLI if you want to script something, or need to do some modifications on a game server with no GUI, I'm just recommending a really nice program, honestly. CLI purism, boo! Use of SQLiteStudio will not hinder your learning about SQLite and the SQL language, so avoiding it seems pointless to me.
snoopy wrote:
Tue Jan 03, 2023 18:24
Please be aware there might be undocumented changes to this format after the MT 5.5.0 release, I presume.
I have no idea what you mean and the wiki link you gave does not help me understand. Why would the developers not update the documentation, what makes you think that?
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB

User avatar
snoopy
Member
Posts: 266
Joined: Thu Oct 20, 2016 16:49
Location: DE, European Union

Re: How do database files look like in Minetest

by snoopy » Post

Hi,

@Blockhead - THX and apparently an interesting SQL viewer tool you are mentioning.
Blockhead wrote:
Wed Jan 04, 2023 03:02
. . .
snoopy wrote:
Tue Jan 03, 2023 18:24
Please be aware there might be undocumented changes to this format after the MT 5.5.0 release, I presume.
I have no idea what you mean and the wiki link you gave does not help me understand. Why would the developers not update the documentation, what makes you think that?
Let me elaborate: IMO - without any blaming on anybody - one might be allowed to deduce the a.m. by usual dev's reluctance to do regular documentation updates and the following:
  • Increase max. objects per block defaults -- World / Server / Environment; MT 5.5.0 -> MT 5.6.0
  • - 29 was added in 5.5.0-dev -- doc/ world_format.txt
Today current stable is MT 5.6.1 or even unstable MT 5.7.0 available, I presume.

My five cents.

Have fun.

User avatar
debiankaios
Member
Posts: 886
Joined: Thu Dec 03, 2020 12:48
IRC: debiankaios
In-game: debiankaios Nowe
Location: germany
Contact:

Re: How do database files look like in Minetest

by debiankaios » Post

Blockhead wrote:
Tue Jan 03, 2023 16:28
I suggest downloading the application SQLiteStudio, which is a great GUI program for exploring, editing and running SQL against SQLite database files.
Under Linux:

Code: Select all

$ ./sqlitestudiocli 
./sqlitestudiocli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./sqlitestudiocli)
./sqlitestudiocli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/debiankaios/Programme/sqlitestudio/SQLiteStudio/lib/libreadline.so.8)
./sqlitestudiocli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/debiankaios/Programme/sqlitestudio/SQLiteStudio/lib/libsqlite3.so)
./sqlitestudiocli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/debiankaios/Programme/sqlitestudio/SQLiteStudio/lib/libsqlite3.so)
./sqlitestudiocli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/debiankaios/Programme/sqlitestudio/SQLiteStudio/lib/libtinfo.so.6)
Edit 1:

Code: Select all

$ sqlite3 players.sqlite # I easily excuted this command first
bash: sqlite3: Kommando nicht gefunden. # Translated: Command not found
Edit 2:

sqlitebrowser worked fine.(sudo apt install sqlitebrowser)

User avatar
Blockhead
Member
Posts: 855
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under

Re: How do database files look like in Minetest

by Blockhead » Post

snoopy wrote:
Wed Jan 04, 2023 09:04
Let me elaborate: IMO - without any blaming on anybody - one might be allowed to deduce the a.m. by usual dev's reluctance to do regular documentation updates and the following:
  • Increase max. objects per block defaults -- World / Server / Environment; MT 5.5.0 -> MT 5.6.0
  • - 29 was added in 5.5.0-dev -- doc/ world_format.txt
Today current stable is MT 5.6.1 or even unstable MT 5.7.0 available, I presume.

My five cents.

Have fun.
  • Increase max. objects per block defaults -- World / Server / Environment; MT 5.5.0 -> MT 5.6.0
As for this first point: This does not change the serialized mapblock format. Mapblocks used a u16 to hold their number of objects counter before, and continued to do so afterwards. The 65535 maximum of a u16 is much larger than the new default of 256, which is only just big enough to require more than a byte.
  • - 29 was added in 5.5.0-dev -- doc/ world_format.txt
Let's look at the facts. I would of course usually assume the developers did their due diligence when adding changes, but I can't be sure unless I check the repository history. Let's get the tools out and inspect that history. Using git blame, I can trace when the relevant lines were added to world_format.txt:

Code: Select all

$ cd minetest/doc/
$ git blame world_format.txt
e74668ef7f doc/mapformat.txt    (Perttu Ahola   2012-06-08 14:57:02 +0300   1) =============================
d1624a5521 doc/world_format.txt (lhofhansl      2021-08-31 17:32:31 -0700   2) Minetest World Format 22...29
e74668ef7f doc/mapformat.txt    (Perttu Ahola   2012-06-08 14:57:02 +0300   3) =============================
c353709f7e doc/mapformat.txt    (Perttu Ahola   2012-03-22 13:36:56 +0200   4) 
e74668ef7f doc/mapformat.txt    (Perttu Ahola   2012-06-08 14:57:02 +0300   5) This applies to a world format carrying the block serialization version
021e667511 doc/world_format.txt (Dániel Juhász  2017-04-13 10:19:46 +0200   6) 22...27, used at least in
5c31445117 doc/mapformat.txt    (Perttu Ahola   2012-07-24 14:56:32 +0300   7) - 0.4.dev-20120322 ... 0.4.dev-20120606 (22...23)
5c31445117 doc/mapformat.txt    (Perttu Ahola   2012-07-24 14:56:32 +0300   8) - 0.4.0 (23)
5c31445117 doc/mapformat.txt    (Perttu Ahola   2012-07-24 14:56:32 +0300   9) - 24 was never released as stable and existed for ~2 days
021e667511 doc/world_format.txt (Dániel Juhász  2017-04-13 10:19:46 +0200  10) - 27 was added in 0.4.15-dev
d1624a5521 doc/world_format.txt (lhofhansl      2021-08-31 17:32:31 -0700  11) - 29 was added in 5.5.0-dev
Okay, so it was in commit d1624a5521. When was that? After 5.5.0's release? Was that just a 'documentation fixup' commit? Let me check the commit contents with git describe and git show:

Code: Select all

$ git describe --tags d1624a5521
5.4.0-309-gd1624a552
$ git show --stat d1624a5521
commit d1624a552151bcb152b7abf63df6501b63458d78
Author: lhofhansl <lhofhansl@yahoo.com>
Date:   2021-08-31 17:32:31 -0700

    Switch MapBlock compression to zstd (#10788)
    
    * Add zstd support.
    * Rearrange serialization order
    * Compress entire mapblock
    
    Co-authored-by: sfan5 <sfan5@live.de>

 .github/workflows/build.yml       |   2 +-
 .github/workflows/macos.yml       |   2 +-
 .gitlab-ci.yml                    |   4 +--
 Dockerfile                        |   2 +-
 android/native/jni/Android.mk     |  10 ++++--
 builtin/settingtypes.txt          |  16 ++++-----
 cmake/Modules/FindZstd.cmake      |   9 ++++++
 doc/world_format.txt              |  91 +++++++++++++++++++++++++++++----------------------
 misc/debpkg-control               |   2 +-
 src/CMakeLists.txt                |  11 +++++++
 src/defaultsettings.cpp           |   4 +--
 src/main.cpp                      |  73 ++++++++++++++++++++++++++++++++++++++++-
 src/mapblock.cpp                  | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
 src/mapblock.h                    |   2 +-
 src/mapgen/mg_schematic.cpp       |   9 ++++--
 src/mapgen/mg_schematic.h         |   1 +
 src/mapnode.cpp                   |  30 ++++++-----------
 src/mapnode.h                     |   5 +--
 src/serialization.cpp             | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 src/serialization.h               |  14 +++++---
 src/unittest/test_compression.cpp |  42 ++++++++++++++++++++++--
 util/buildbot/buildwin32.sh       |   6 ++++
 util/buildbot/buildwin64.sh       |   6 ++++
 util/ci/common.sh                 |   2 +-
 24 files changed, 493 insertions(+), 151 deletions(-)
Ah yes, look at that, the commit updated all of the relevant files to the change, not just the source files. Also, it includes a GitHub issue/pull request number*. #10788. I can just navigate to any such number by going to github.com/minetest/minetest/pull/<number> (which will redirect me properly for issues as well). Well, here's the link to the thread: #10788. Yep, that thread is quite a length review process actually, which included a requirement for benchmarks and added several unit tests.

This was all working in reverse to trace things back to where they began in GitHub, but it reinforces my hypothesis that changes are not just added willy-nilly and undocumented to Minetest. The absence of evidence is not the evidence of absence. To apply this to my point: it's only casting unnecessary doubt to assume the developers of Minetest haven't updated their docs. Minetest isn't a solo project used by only a few people, subjected to little peer review and no complaints from breakage. Minetest's pull request reviews are thorough and pull requests won't get approved if the documentation isn't updated to match the new functionality. If anything, most people complain it takes too long to get anything merged into Minetest.'

You can found out about how the Minetest project is run relatively easily if you visit GitHub and just look through the pull request threads for some time. Any of the lengthier threads will show the kind of project Minetest is, because the communication is largely done out in the open, and the review process is obviously there. It's a free software project licensed under the LGPL, written by a large community of contributors and lead by a smaller group of core developers. There are also documents like the Contribution guidelines which GitHub will link to anyone who wants to open a new Minetest pull request.

Footnote
*Pulls and issues share the same number counter so differentiating pull and issue numbers is both impossible without context and not usually particularly useful anyway.

debiankaios wrote:
Wed Jan 04, 2023 17:34
Under Linux:

Code: Select all

$ ./sqlitestudiocli 
./sqlitestudiocli: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./sqlitestudiocli)
You must be running a relatively new or old Linux distribution, or not have a lot of software installed. You don't have the GLibc library version 6, or more likely your version is too odl or new. On Debian this is available through the package libc-bin or libc6 which works fine to run it for me on Debian Bookworm. I'm not sure about other distributions, sorry. Distributing software for Linux is never really that easy; if you got other programs working fine and you are happy with them, then I'm happy for you. It's just a software recommendation anyway.

Finding the package and installing it on Debian should look like this:

Code: Select all

$ apt-file search libc.so.6
libc6: /lib/x86_64-linux-gnu/libc.so.6  
...
$ sudo apt install libc6
More importantly, you are trying to run the command line version of SQLiteStudio, which I can't vouch for as being any more useful than any other SQLite command line program, since I don't know a lot about those programs really. Opening the program should be as easy as double-clicking the file sqlitestudio in your file browser (or equivalently, running it in a terminal).
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB

User avatar
debiankaios
Member
Posts: 886
Joined: Thu Dec 03, 2020 12:48
IRC: debiankaios
In-game: debiankaios Nowe
Location: germany
Contact:

Re: How do database files look like in Minetest

by debiankaios » Post

Code: Select all

$ apt-file search libc.so.6
libc6: /lib/x86_64-linux-gnu/libc.so.6    
libc6-amd64-cross: /usr/x86_64-linux-gnu/lib/libc.so.6
libc6-amd64-i386-cross: /usr/i686-linux-gnu/lib64/libc.so.6
libc6-amd64-x32-cross: /usr/x86_64-linux-gnux32/lib64/libc.so.6
libc6-arm64-cross: /usr/aarch64-linux-gnu/lib/libc.so.6
libc6-armel-cross: /usr/arm-linux-gnueabi/lib/libc.so.6
libc6-armhf-cross: /usr/arm-linux-gnueabihf/lib/libc.so.6
libc6-hppa-cross: /usr/hppa-linux-gnu/lib/libc.so.6
libc6-i386: /lib32/libc.so.6
libc6-i386-amd64-cross: /usr/x86_64-linux-gnu/lib32/libc.so.6
libc6-i386-cross: /usr/i686-linux-gnu/lib/libc.so.6
libc6-i386-x32-cross: /usr/x86_64-linux-gnux32/lib32/libc.so.6
libc6-m68k-cross: /usr/m68k-linux-gnu/lib/libc.so.6
libc6-mips-cross: /usr/mips-linux-gnu/lib/libc.so.6
libc6-mips32-mips64-cross: /usr/mips64-linux-gnuabi64/libo32/libc.so.6
libc6-mips32-mips64el-cross: /usr/mips64el-linux-gnuabi64/libo32/libc.so.6
libc6-mips32-mips64r6-cross: /usr/mipsisa64r6-linux-gnuabi64/libo32/libc.so.6
libc6-mips32-mips64r6el-cross: /usr/mipsisa64r6el-linux-gnuabi64/libo32/libc.so.6
libc6-mips32-mipsn32-cross: /usr/mips64-linux-gnuabin32/libo32/libc.so.6
libc6-mips32-mipsn32el-cross: /usr/mips64el-linux-gnuabin32/libo32/libc.so.6
libc6-mips32-mipsn32r6-cross: /usr/mipsisa64r6-linux-gnuabin32/libo32/libc.so.6
libc6-mips32-mipsn32r6el-cross: /usr/mipsisa64r6el-linux-gnuabin32/libo32/libc.so.6
libc6-mips64-cross: /usr/mips64-linux-gnuabi64/lib/libc.so.6
libc6-mips64-mips-cross: /usr/mips-linux-gnu/lib64/libc.so.6
libc6-mips64-mipsel-cross: /usr/mipsel-linux-gnu/lib64/libc.so.6
libc6-mips64-mipsn32-cross: /usr/mips64-linux-gnuabin32/lib64/libc.so.6
libc6-mips64-mipsn32el-cross: /usr/mips64el-linux-gnuabin32/lib64/libc.so.6
libc6-mips64-mipsn32r6-cross: /usr/mipsisa64r6-linux-gnuabin32/lib64/libc.so.6
libc6-mips64-mipsn32r6el-cross: /usr/mipsisa64r6el-linux-gnuabin32/lib64/libc.so.6
libc6-mips64-mipsr6-cross: /usr/mipsisa32r6-linux-gnu/lib64/libc.so.6
libc6-mips64-mipsr6el-cross: /usr/mipsisa32r6el-linux-gnu/lib64/libc.so.6
libc6-mips64el-cross: /usr/mips64el-linux-gnuabi64/lib/libc.so.6
libc6-mips64r6-cross: /usr/mipsisa64r6-linux-gnuabi64/lib/libc.so.6
libc6-mips64r6el-cross: /usr/mipsisa64r6el-linux-gnuabi64/lib/libc.so.6
libc6-mipsel-cross: /usr/mipsel-linux-gnu/lib/libc.so.6
libc6-mipsn32-cross: /usr/mips64-linux-gnuabin32/lib/libc.so.6
libc6-mipsn32-mips-cross: /usr/mips-linux-gnu/lib32/libc.so.6
libc6-mipsn32-mips64-cross: /usr/mips64-linux-gnuabi64/lib32/libc.so.6
libc6-mipsn32-mips64el-cross: /usr/mips64el-linux-gnuabi64/lib32/libc.so.6
libc6-mipsn32-mips64r6-cross: /usr/mipsisa64r6-linux-gnuabi64/lib32/libc.so.6
libc6-mipsn32-mips64r6el-cross: /usr/mipsisa64r6el-linux-gnuabi64/lib32/libc.so.6
libc6-mipsn32-mipsel-cross: /usr/mipsel-linux-gnu/lib32/libc.so.6
libc6-mipsn32-mipsr6-cross: /usr/mipsisa32r6-linux-gnu/lib32/libc.so.6
libc6-mipsn32-mipsr6el-cross: /usr/mipsisa32r6el-linux-gnu/lib32/libc.so.6
libc6-mipsn32el-cross: /usr/mips64el-linux-gnuabin32/lib/libc.so.6
libc6-mipsn32r6-cross: /usr/mipsisa64r6-linux-gnuabin32/lib/libc.so.6
libc6-mipsn32r6el-cross: /usr/mipsisa64r6el-linux-gnuabin32/lib/libc.so.6
libc6-mipsr6-cross: /usr/mipsisa32r6-linux-gnu/lib/libc.so.6
libc6-mipsr6el-cross: /usr/mipsisa32r6el-linux-gnu/lib/libc.so.6
libc6-powerpc-cross: /usr/powerpc-linux-gnu/lib/libc.so.6
libc6-powerpc-ppc64-cross: /usr/powerpc64-linux-gnu/lib32/libc.so.6
libc6-ppc64-cross: /usr/powerpc64-linux-gnu/lib/libc.so.6
libc6-ppc64-powerpc-cross: /usr/powerpc-linux-gnu/lib64/libc.so.6
libc6-ppc64el-cross: /usr/powerpc64le-linux-gnu/lib/libc.so.6
libc6-riscv64-cross: /usr/riscv64-linux-gnu/lib/libc.so.6
libc6-s390-s390x-cross: /usr/s390x-linux-gnu/lib32/libc.so.6
libc6-s390x-cross: /usr/s390x-linux-gnu/lib/libc.so.6
libc6-sh4-cross: /usr/sh4-linux-gnu/lib/libc.so.6
libc6-sparc-sparc64-cross: /usr/sparc64-linux-gnu/lib32/libc.so.6
libc6-sparc64-cross: /usr/sparc64-linux-gnu/lib/libc.so.6
libc6-x32: /libx32/libc.so.6
libc6-x32-amd64-cross: /usr/x86_64-linux-gnu/libx32/libc.so.6
libc6-x32-cross: /usr/x86_64-linux-gnux32/lib/libc.so.6
libc6-x32-i386-cross: /usr/i686-linux-gnu/libx32/libc.so.6
libc6.1-alpha-cross: /usr/alpha-linux-gnu/lib/libc.so.6.1
debiankaios@debiankaios:~$ sudo apt install libc6
[sudo] Passwort für debiankaios: 
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
libc6 ist schon die neueste Version (2.31-13+deb11u5).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.

User avatar
Blockhead
Member
Posts: 855
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under

Re: How do database files look like in Minetest

by Blockhead » Post

debiankaios wrote:
Wed Jan 04, 2023 19:51
libc6 ist schon die neueste Version (2.31-13+deb11u5).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
[/code]
Ah, classic Debian. "Old software only". Bullseye is a version too out of date to run it.. Oh well. I guess there are older versions available, or you can compile from source, if you really want.
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB

User avatar
snoopy
Member
Posts: 266
Joined: Thu Oct 20, 2016 16:49
Location: DE, European Union

Debian rocks - Re: How do database files look like in Minetest

by snoopy » Post

Hi,

@Blockhead - Sorry, but I agree to strongly disagree.
Blockhead wrote:
Thu Jan 05, 2023 02:04
Ah, classic Debian. "Old software only". Bullseye is a version too out of date to run it.. Oh well. I guess there are older versions available, or you can compile from source, if you really want.
@Blockhead - si tacuisses, philosophus mansisses

There are many Linux distributions, *BSD and some more Un*x options available for experts, developers and general users including but not limited to early adopters around for good reasons.

However, just bashing Debian again looks non-professional and IMO lacks some basic understanding.
  1. The Open Source Definition -- derived from the Debian Free Software Guidelines (DFSG)
  2. Debian Free Software Guidelines (DFSG)
  3. Debian turn{ed} 29!
  4. Reasons to use Debian
  5. Updated Debian 11: 11.6 released December 17th, 2022
Hope this helps to reach a more fruitful discussion ...

My five cents.
Last edited by snoopy on Fri Jan 06, 2023 12:54, edited 2 times in total.

User avatar
Blockhead
Member
Posts: 855
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under

Re: Debian rocks - Re: How do database files look like in Minetest

by Blockhead » Post

snoopy wrote:
Thu Jan 05, 2023 10:04
However, just bashing Debian again looks non-professional and IMO lacks some basic understanding.
You seem to have missed my point above:
Blockhead wrote:
Wed Jan 04, 2023 18:02
On Debian this is available through the package libc-bin or libc6 which works fine to run it for me on Debian Bookworm.
where I said I use Debian myself, just the testing distribution. I'm well aware of the philosophy and aims of Debian and that's why it's my preferred distribution. I'm just sharing the common frustration of using a stable distribution and not being able to use certain newer versions of software, which Debian stable users experience all too often. Those things we know most about we are most able to criticise. As is often the case with Debian stable, it looks like it's time for Debiankaios to compile from source again or use an older version. Now if the older version were available through apt, that would be easy, and that's the case for many, many programs on Debian, whose repositories are amongst if not the biggest of any Linux distribution. It's just a small omission of a relatively obscure program in this case.

Also why do you say "again"? I'm not in the habit of just "bashing" any operating system on here. I thought this was my first comment that had anything negative to say about Debian at all in this thread or really anywhere on the forums. In fact I try to participate in supporting users of Windows, macOS and Linux on here if you look through my post history. Consider my comment about "only old software" as a tongue-in-cheek caricature, much like calling Windows 10/11 Spyware, proclaiming "i use arch btw", or any other number of memes that proliferate about operating systems.

So this post isn't totally off-topic, here is an interesting little fact about Minetest: the unit tests for compression include tests for RLE, zlib and zstd compression to compare the performance when compressing pseudorandom data. The data in a mapblock is not likely to be quite as random, but it still proves zstd is a worthwhile codec for compressing mapblocks in the database.

You can see how long each test takes on your own system by running minetest --run-unittests. Despite compressing 10x more data, the zstd compression test runs in only 3-4 ms instead of the 1 ms of the zlib test. Impressive - though those figures may be subject to rounding problems of course.
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB

User avatar
debiankaios
Member
Posts: 886
Joined: Thu Dec 03, 2020 12:48
IRC: debiankaios
In-game: debiankaios Nowe
Location: germany
Contact:

Re: How do database files look like in Minetest

by debiankaios » Post

Sorry, i am new on this topic(databases). But i like my OS(devuan chimaera) where shnap isn't working. But i like not flathub.

User avatar
snoopy
Member
Posts: 266
Joined: Thu Oct 20, 2016 16:49
Location: DE, European Union

Devuan & Debian - Re: How do database files look like in Minetest

by snoopy » Post

Hi,

@debiankaios - Apparently you are a Devuan 'Friends and Software Freedom Lover' ?
debiankaios wrote:
Thu Jan 05, 2023 16:56
But i like my OS(devuan chimaera) where shnap isn't working. But i like not flathub.
Presumably you are using the sqlitestudio-3.4.1.tar.xz from the SQLiteStudio GitHub Release?

Did you try to use a.m. sqlitestudiocli from the XZ-package or did you produce a self compile from sources?

FYI

Unfortunately, I am not familiar with Devuan but familiar with Debian.

AFAIK the release info from Devuan does not hold an obvious date & time stamp, unfortunately. However, the more obvious release info available as of today shows: Obviously, there is no package available for SQLiteStudio from the Debian packages for any Debian platform.

Furthermore:
  1. SQLiteStudio
  2. SQLiteStudio 3.4.1 released! - Posted on 02 December 2022
  3. SQLiteStudio Download & GitHub Releases
  4. SQLiteStudio Compiling from sources
However, for compiling from sources:
  1. SQLiteStudio requires Qt 5.12+ apparently.
  2. Debian Bullseye available packages for qmake are
    • qt5-qmake 5.15.2+dfsg-9: amd64 and
    • qt5-qmake-bin 5.15.2+dfsg-9: amd64
  3. there are some other minor requirements easily met, I presume.
Hope this helps.

Last not least IMO you should use the stable SQLiteStudio 3.4.1 sources and not the unstable dev sources.

AFAIK you could give compiling from sources a try. Presumably on Devuan and certainly with Debian (stable).

Good luck!

My five cents.

User avatar
debiankaios
Member
Posts: 886
Joined: Thu Dec 03, 2020 12:48
IRC: debiankaios
In-game: debiankaios Nowe
Location: germany
Contact:

Re: How do database files look like in Minetest

by debiankaios » Post

I tried option 3, but not important, i don't need all features(i think). I want only read the basic things of databases.

User avatar
Zweihorn
Member
Posts: 22
Joined: Tue Dec 06, 2022 18:06

Re: How do database files look like in Minetest

by Zweihorn » Post

Hi,

My old friend @snoopy again catching some fish here?
debiankaios wrote:
Fri Jan 06, 2023 13:04
I tried option 3, but not important, i don't need all features(i think). I want only read the basic things of databases.
Here's my catch on this little endeavour, if I may introduce this here for MT dev SQLite Database enthusiasts.

Following the expert's advice from the Linux - Manual compilation - more detailed description under the SQLiteStudio GitHub wiki documentary.

For SQLiteStudio 3.4.1 compile from sources on Debian 11.6 Bullseye (stable) have a look at:
Q.E.D. and easy go with Debian (stable) after some little quirks healed by help found on the Debian package info and on the internet as always.

However, the SQLiteStudio3 program might be worth a try if you want to handle databases which are supported by this tool.

Have fun with MT and prosper.
Last edited by Zweihorn on Fri Jan 06, 2023 23:03, edited 1 time in total.

User avatar
snoopy
Member
Posts: 266
Joined: Thu Oct 20, 2016 16:49
Location: DE, European Union

Re: How do database files look like in Minetest

by snoopy » Post

Zweihorn wrote:
Fri Jan 06, 2023 14:22

Some more concise script for SQLiteStudio 3.4.1 compile from sources on Debian 11.6 Bullseye (stable) would be:
...
IMO this would apply to Devuan Chimaera almost similarily.

Have fun with MT and MT sqlite database backend.

Furthermore, only from the above I just learned that Devuan is a project by the ©2000-2022 Dyne.org foundation located in Amsterdam, EU.

Their motto is:
"Free to share code.
Code to share freedom."

Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests