Minetest may not build.

10 replies [Last post]
Other_Cody
Offline
Joined: 12/20/2023

minetest-5.4.1+repack works in it's binary but,

I do not know if minetest-5.4.1+repack from apt-get source
still can be built from source, unless I need more than the
dependencies shown in the README.md file.

I also see that some newer minetest versions may be using a Asymmetric numeral systems patent from Microsoft, as some newer versions are using ZSTD.

Some newer versions of ZSTD may have parts of Microsoft's Asymmetric numeral systems patent in them, though I do not know where the
Microsoft patented parts may be at.

I think this is only a problem with the build dependencies in Trisquel,
as this compiled before without any more dependencies than listed, just not now.

Though as long as there are no security problems,
minetest-5.4.1+repack still works well so no "update" to minetest is needed.

And security patches may be backported to avoid the Microsoft Asymmetric numeral systems patent, I hope.

Or it can be proven that Microsoft can not have that patent.

https://trisquel.info/en/forum/there-asymmetricnumeralsystems-patent

I did report this in

https://gitlab.trisquel.org/trisquel/trisquel-packages/-/issues/26

Here are the build dependencies.

For Debian/Ubuntu users:

sudo apt install g++ make libc6-dev libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev

Here is what I tried.
Though maybe I also should somehow test some missing json/json.h file.
Though I did not see that in the README.md file. I think I installed all the dependencies.

cmake . -DRUN_IN_PLACE=TRUE
make -j$(nproc)
CMake Deprecation Warning at CMakeLists.txt:3 (cmake_policy):
The OLD behavior for policy CMP0025 will be removed from a future version
of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.


-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- *** Will build version 5.4.1 ***
-- Found Irrlicht: /usr/lib/x86_64-linux-gnu/libIrrlicht.so
-- Using GMP provided by system.
-- Found GMP: /usr/lib/x86_64-linux-gnu/libgmp.so
-- Using bundled JSONCPP library.
-- Could NOT find LuaJIT (missing: LUA_LIBRARY LUA_INCLUDE_DIR)
-- LuaJIT not found, using the version of Lua provided by the system.
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so
-- cURL support enabled.
-- Found GettextLib: /usr/include
-- GetText enabled; locales found: ar;be;bg;ca;cs;da;de;dv;el;eo;es;et;eu;fi;fr;gd;gl;he;hi;hu;id;it;ja;jbo;kk;kn;ko;ky;lt;lv;ms;ms_Arab;nb;nl;nn;pl;pt;pt_BR;ro;ru;sk;sl;sr_Cyrl;sr_Latn;sv;sw;th;tr;uk;vi;zh_CN;zh_TW
-- Found OpenAL: /usr/lib/x86_64-linux-gnu/libopenal.so
-- Found Vorbis: /usr/include
-- Sound enabled.
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1")
-- Freetype enabled.
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
-- ncurses not found!
-- Could NOT find PostgreSQL (missing: PostgreSQL_LIBRARY PostgreSQL_INCLUDE_DIR)
-- PostgreSQL not found!
-- LevelDB not found!
-- Redis not found!
-- Found SQLite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so
-- Prometheus client disabled.
-- SpatialIndex not found!
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80")
-- Found BZip2: /usr/lib/x86_64-linux-gnu/libbz2.so (found version "1.0.8")
-- Looking for BZ2_bzCompressInit
-- Looking for BZ2_bzCompressInit - found
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37")
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for include file endian.h
-- Looking for include file endian.h - found
-- Locale blacklist applied; Locales used: be;bg;ca;cs;da;de;dv;el;eo;es;et;eu;fi;fr;gd;gl;hi;hu;id;it;ja;jbo;kk;kn;ko;lt;lv;ms;nb;nl;nn;pl;pt;pt_BR;ro;ru;sk;sl;sr_Cyrl;sr_Latn;sv;sw;tr;uk;vi;zh_CN;zh_TW
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/codyu/Desktop/untitled folder/apt-get_minetest/3/minetest-5.4.1+repack
[ 0%] Building CXX object lib/jsoncpp/CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o
[ 0%] Built target GenerateVersion
/home/codyu/Desktop/untitled folder/apt-get_minetest/3/minetest-5.4.1+repack/lib/jsoncpp/jsoncpp.cpp:76:10: fatal error: json/json.h: No such file or directory
76 | #include "json/json.h"
| ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [lib/jsoncpp/CMakeFiles/jsoncpp.dir/build.make:76: lib/jsoncpp/CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:385: lib/jsoncpp/CMakeFiles/jsoncpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 1%] mo-update [bg]: Creating locale directory.
[ 1%] mo-update [be]: Creating locale directory.
[ 1%] mo-update [ca]: Creating locale directory.
[ 1%] mo-update [cs]: Creating locale directory.
[ 2%] mo-update [da]: Creating locale directory.
[ 2%] mo-update [de]: Creating locale directory.
[ 2%] mo-update [dv]: Creating locale directory.
[ 2%] mo-update [el]: Creating locale directory.
[ 3%] mo-update [eo]: Creating locale directory.
[ 3%] mo-update [es]: Creating locale directory.
[ 3%] mo-update [et]: Creating locale directory.
[ 3%] mo-update [eu]: Creating locale directory.
[ 4%] mo-update [fi]: Creating locale directory.
[ 4%] mo-update [fr]: Creating locale directory.
[ 4%] mo-update [gd]: Creating locale directory.
[ 4%] mo-update [gl]: Creating locale directory.
[ 5%] mo-update [hi]: Creating locale directory.
[ 5%] mo-update [hu]: Creating locale directory.
[ 5%] mo-update [id]: Creating locale directory.
[ 5%] mo-update [it]: Creating locale directory.
[ 6%] mo-update [ja]: Creating locale directory.
[ 6%] mo-update [jbo]: Creating locale directory.
[ 6%] mo-update [kk]: Creating locale directory.
[ 7%] mo-update [kn]: Creating locale directory.
[ 7%] mo-update [ko]: Creating locale directory.
[ 7%] mo-update [lv]: Creating locale directory.
[ 7%] mo-update [lt]: Creating locale directory.
[ 8%] mo-update [ms]: Creating locale directory.
[ 8%] mo-update [nb]: Creating locale directory.
[ 8%] mo-update [nl]: Creating locale directory.
[ 8%] mo-update [nn]: Creating locale directory.
[ 9%] mo-update [pl]: Creating locale directory.
[ 9%] mo-update [pt]: Creating locale directory.
[ 9%] mo-update [pt_BR]: Creating locale directory.
[ 9%] mo-update [ro]: Creating locale directory.
[ 10%] mo-update [ru]: Creating locale directory.
[ 10%] mo-update [sk]: Creating locale directory.
[ 10%] mo-update [sl]: Creating locale directory.
[ 10%] mo-update [sr_Cyrl]: Creating locale directory.
[ 11%] mo-update [sr_Latn]: Creating locale directory.
[ 11%] mo-update [sw]: Creating locale directory.
[ 11%] mo-update [sv]: Creating locale directory.
[ 11%] mo-update [tr]: Creating locale directory.
[ 12%] mo-update [uk]: Creating locale directory.
[ 12%] mo-update [vi]: Creating locale directory.
[ 12%] mo-update [zh_CN]: Creating locale directory.
[ 13%] mo-update [zh_TW]: Creating locale directory.
[ 13%] mo-update [be]: Creating mo file.
[ 14%] mo-update [bg]: Creating mo file.
[ 14%] mo-update [ca]: Creating mo file.
[ 14%] mo-update [cs]: Creating mo file.
[ 14%] mo-update [da]: Creating mo file.
[ 15%] mo-update [de]: Creating mo file.
[ 15%] mo-update [dv]: Creating mo file.
[ 15%] mo-update [el]: Creating mo file.
[ 15%] mo-update [eo]: Creating mo file.
[ 16%] mo-update [es]: Creating mo file.
[ 16%] mo-update [et]: Creating mo file.
[ 16%] mo-update [eu]: Creating mo file.
[ 16%] mo-update [fi]: Creating mo file.
[ 17%] mo-update [fr]: Creating mo file.
[ 17%] mo-update [gd]: Creating mo file.
[ 17%] mo-update [gl]: Creating mo file.
[ 18%] mo-update [hi]: Creating mo file.
[ 18%] mo-update [hu]: Creating mo file.
[ 18%] mo-update [id]: Creating mo file.
[ 18%] mo-update [it]: Creating mo file.
[ 19%] mo-update [ja]: Creating mo file.
[ 19%] mo-update [jbo]: Creating mo file.
[ 19%] mo-update [kk]: Creating mo file.
[ 19%] mo-update [kn]: Creating mo file.
[ 20%] mo-update [ko]: Creating mo file.
[ 20%] mo-update [lt]: Creating mo file.
[ 20%] mo-update [lv]: Creating mo file.
[ 20%] mo-update [ms]: Creating mo file.
[ 21%] mo-update [nb]: Creating mo file.
[ 21%] mo-update [nl]: Creating mo file.
[ 21%] mo-update [nn]: Creating mo file.
[ 21%] mo-update [pl]: Creating mo file.
[ 22%] mo-update [pt]: Creating mo file.
[ 22%] mo-update [pt_BR]: Creating mo file.
[ 22%] mo-update [ro]: Creating mo file.
[ 22%] mo-update [ru]: Creating mo file.
[ 23%] mo-update [sk]: Creating mo file.
[ 23%] mo-update [sl]: Creating mo file.
[ 23%] mo-update [sr_Cyrl]: Creating mo file.
[ 23%] mo-update [sr_Latn]: Creating mo file.
[ 24%] mo-update [sv]: Creating mo file.
[ 24%] mo-update [sw]: Creating mo file.
[ 24%] mo-update [tr]: Creating mo file.
[ 25%] mo-update [uk]: Creating mo file.
[ 25%] mo-update [vi]: Creating mo file.
[ 25%] mo-update [zh_CN]: Creating mo file.
[ 25%] mo-update [zh_TW]: Creating mo file.
[ 25%] mo update
[ 25%] Built target translations
make: *** [Makefile:156: all] Error 2

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

I also see that some newer minetest versions may be using a Asymmetric numeral systems patent from Microsoft, as some newer versions are using ZSTD.

Software patents are an absurdity: https://patentabsurdity.com/watch.html

You almost always want to ignore them. If there is a really high risk that a given patent will be used against a free software program, then you can try to not depend on it too much. Indeed, in the worst-case scenario, that program may stop being developed or distributed. I very much doubt it will happen in the case of zstd. If it does though, one can uncompress its .zstd files (even if zstd becomes illegal, it will not disappear from the disks of its users) and recompress them with lz4 or gzip or any other similar command. That is certainly what the Minetest project would do. In all cases, free software programs do not become unethical if they infringe some patent.

I think I installed all the dependencies.

Execute that command to get all the dependencies of the minetest source package:
$ sudo apt-get build-dep minetest

The actual problem is indeed missing development headers:
fatal error: json/json.h: No such file or directory

Other_Cody
Offline
Joined: 12/20/2023

Thank you for the help.

I also think software patents are an absurdity.

Though this minetest version does not even use ZSDT.

I just did not know how to handle that in later versions that may have used the ZSDT that also had any so called "Asymmetric numeral systems patent " also in it.

I do not know what versions of ZSTD also have any so called "Asymmetric numeral systems patent " also in it, as not all of the ZSTD sources even include it.

I used sudo apt-get build-dep minetest

and got

clang-14 debhelper debugedit dh-strip-nondeterminism dwz lib32gcc-s1
lib32stdc++6 libc6-i386 libclang-common-14-dev libclang-cpp14 libclang1-14
libjson-perl libleveldb-dev libllvm14 libluajit-5.1-dev libncurses-dev
libobjc-11-dev libpfm4 libpq-dev libspatialindex-c6 libspatialindex-dev
libssl-dev libtinfo-dev libxml2-dev libz3-4 libz3-dev llvm-14 llvm-14-dev
llvm-14-linker-tools llvm-14-runtime llvm-14-tools po-debconf
postgresql-client-14 postgresql-client-common postgresql-common
postgresql-server-dev-14 postgresql-server-dev-all python3-pygments

after the dependencies also shown in the README.md file, but it still may not build, somehow.

cmake . -DRUN_IN_PLACE=TRUE
make -j$(nproc)
CMake Deprecation Warning at CMakeLists.txt:3 (cmake_policy):
The OLD behavior for policy CMP0025 will be removed from a future version
of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.


-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- *** Will build version 5.4.1 ***
-- Found Irrlicht: /usr/lib/x86_64-linux-gnu/libIrrlicht.so
-- Using GMP provided by system.
-- Found GMP: /usr/lib/x86_64-linux-gnu/libgmp.so
-- Using bundled JSONCPP library.
-- Found LuaJIT: /usr/lib/x86_64-linux-gnu/libluajit-5.1.so (found version "")
-- Using LuaJIT provided by system.
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so
-- cURL support enabled.
-- Found GettextLib: /usr/include
-- GetText enabled; locales found: ar;be;bg;ca;cs;da;de;dv;el;eo;es;et;eu;fi;fr;gd;gl;he;hi;hu;id;it;ja;jbo;kk;kn;ko;ky;lt;lv;ms;ms_Arab;nb;nl;nn;pl;pt;pt_BR;ro;ru;sk;sl;sr_Cyrl;sr_Latn;sv;sw;th;tr;uk;vi;zh_CN;zh_TW
-- Found OpenAL: /usr/lib/x86_64-linux-gnu/libopenal.so
-- Found Vorbis: /usr/include
-- Sound enabled.
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1")
-- Freetype enabled.
-- Looking for cbreak in /usr/lib/x86_64-linux-gnu/libncursesw.so
-- Looking for cbreak in /usr/lib/x86_64-linux-gnu/libncursesw.so - found
-- Found Ncursesw: /usr/lib/x86_64-linux-gnu/libncursesw.so
-- ncurses console enabled.
-- Found PostgreSQL: /usr/lib/x86_64-linux-gnu/libpq.so (found version "14.10")
-- PostgreSQL backend enabled
-- PostgreSQL includes: /usr/include/postgresql;/usr/include/postgresql/
-- LevelDB backend enabled.
-- Redis not found!
-- Found SQLite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so
-- Prometheus client disabled.
-- SpatialIndex AreaStore backend enabled.
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80")
-- Found BZip2: /usr/lib/x86_64-linux-gnu/libbz2.so (found version "1.0.8")
-- Looking for BZ2_bzCompressInit
-- Looking for BZ2_bzCompressInit - found
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37")
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for include file endian.h
-- Looking for include file endian.h - found
-- Locale blacklist applied; Locales used: be;bg;ca;cs;da;de;dv;el;eo;es;et;eu;fi;fr;gd;gl;hi;hu;id;it;ja;jbo;kk;kn;ko;lt;lv;ms;nb;nl;nn;pl;pt;pt_BR;ro;ru;sk;sl;sr_Cyrl;sr_Latn;sv;sw;tr;uk;vi;zh_CN;zh_TW
-- Performing Test IS_AARCH64
-- Performing Test IS_AARCH64 - Failed
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/codyu/Desktop/untitled folder 3/minetest-5.4.1+repack
[ 0%] Building CXX object lib/jsoncpp/CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o
[ 0%] Built target GenerateVersion
/home/codyu/Desktop/untitled folder 3/minetest-5.4.1+repack/lib/jsoncpp/jsoncpp.cpp:76:10: fatal error: json/json.h: No such file or directory
76 | #include "json/json.h"
| ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [lib/jsoncpp/CMakeFiles/jsoncpp.dir/build.make:76: lib/jsoncpp/CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:385: lib/jsoncpp/CMakeFiles/jsoncpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 0%] mo-update [bg]: Creating locale directory.
[ 1%] mo-update [be]: Creating locale directory.
[ 1%] mo-update [ca]: Creating locale directory.
[ 1%] mo-update [cs]: Creating locale directory.
[ 2%] mo-update [da]: Creating locale directory.
[ 2%] mo-update [de]: Creating locale directory.
[ 2%] mo-update [dv]: Creating locale directory.
[ 2%] mo-update [el]: Creating locale directory.
[ 3%] mo-update [eo]: Creating locale directory.
[ 3%] mo-update [es]: Creating locale directory.
[ 3%] mo-update [et]: Creating locale directory.
[ 3%] mo-update [eu]: Creating locale directory.
[ 4%] mo-update [fi]: Creating locale directory.
[ 4%] mo-update [fr]: Creating locale directory.
[ 4%] mo-update [gd]: Creating locale directory.
[ 4%] mo-update [gl]: Creating locale directory.
[ 5%] mo-update [hi]: Creating locale directory.
[ 5%] mo-update [hu]: Creating locale directory.
[ 5%] mo-update [id]: Creating locale directory.
[ 5%] mo-update [it]: Creating locale directory.
[ 6%] mo-update [ja]: Creating locale directory.
[ 6%] mo-update [jbo]: Creating locale directory.
[ 6%] mo-update [kk]: Creating locale directory.
[ 7%] mo-update [kn]: Creating locale directory.
[ 7%] mo-update [ko]: Creating locale directory.
[ 7%] mo-update [lt]: Creating locale directory.
[ 7%] mo-update [lv]: Creating locale directory.
[ 8%] mo-update [ms]: Creating locale directory.
[ 8%] mo-update [nb]: Creating locale directory.
[ 8%] mo-update [nl]: Creating locale directory.
[ 8%] mo-update [nn]: Creating locale directory.
[ 9%] mo-update [pl]: Creating locale directory.
[ 9%] mo-update [pt]: Creating locale directory.
[ 9%] mo-update [pt_BR]: Creating locale directory.
[ 9%] mo-update [ro]: Creating locale directory.
[ 10%] mo-update [ru]: Creating locale directory.
[ 10%] mo-update [sk]: Creating locale directory.
[ 10%] mo-update [sl]: Creating locale directory.
[ 10%] mo-update [sr_Cyrl]: Creating locale directory.
[ 11%] mo-update [sr_Latn]: Creating locale directory.
[ 11%] mo-update [sv]: Creating locale directory.
[ 11%] mo-update [tr]: Creating locale directory.
[ 11%] mo-update [sw]: Creating locale directory.
[ 12%] mo-update [uk]: Creating locale directory.
[ 12%] mo-update [vi]: Creating locale directory.
[ 12%] mo-update [zh_CN]: Creating locale directory.
[ 13%] mo-update [zh_TW]: Creating locale directory.
[ 14%] mo-update [bg]: Creating mo file.
[ 14%] mo-update [be]: Creating mo file.
[ 14%] mo-update [ca]: Creating mo file.
[ 14%] mo-update [cs]: Creating mo file.
[ 14%] mo-update [da]: Creating mo file.
[ 15%] mo-update [de]: Creating mo file.
[ 15%] mo-update [dv]: Creating mo file.
[ 15%] mo-update [el]: Creating mo file.
[ 15%] mo-update [eo]: Creating mo file.
[ 16%] mo-update [es]: Creating mo file.
[ 16%] mo-update [et]: Creating mo file.
[ 16%] mo-update [eu]: Creating mo file.
[ 16%] mo-update [fi]: Creating mo file.
[ 17%] mo-update [fr]: Creating mo file.
[ 17%] mo-update [gd]: Creating mo file.
[ 17%] mo-update [gl]: Creating mo file.
[ 18%] mo-update [hi]: Creating mo file.
[ 18%] mo-update [hu]: Creating mo file.
[ 18%] mo-update [id]: Creating mo file.
[ 18%] mo-update [it]: Creating mo file.
[ 19%] mo-update [ja]: Creating mo file.
[ 19%] mo-update [jbo]: Creating mo file.
[ 19%] mo-update [kk]: Creating mo file.
[ 19%] mo-update [kn]: Creating mo file.
[ 20%] mo-update [ko]: Creating mo file.
[ 20%] mo-update [lt]: Creating mo file.
[ 20%] mo-update [lv]: Creating mo file.
[ 20%] mo-update [ms]: Creating mo file.
[ 21%] mo-update [nb]: Creating mo file.
[ 21%] mo-update [nl]: Creating mo file.
[ 21%] mo-update [nn]: Creating mo file.
[ 21%] mo-update [pl]: Creating mo file.
[ 22%] mo-update [pt]: Creating mo file.
[ 22%] mo-update [pt_BR]: Creating mo file.
[ 22%] mo-update [ro]: Creating mo file.
[ 22%] mo-update [ru]: Creating mo file.
[ 23%] mo-update [sk]: Creating mo file.
[ 23%] mo-update [sl]: Creating mo file.
[ 23%] mo-update [sr_Cyrl]: Creating mo file.
[ 23%] mo-update [sr_Latn]: Creating mo file.
[ 24%] mo-update [sv]: Creating mo file.
[ 24%] mo-update [sw]: Creating mo file.
[ 24%] mo-update [tr]: Creating mo file.
[ 25%] mo-update [uk]: Creating mo file.
[ 25%] mo-update [vi]: Creating mo file.
[ 25%] mo-update [zh_CN]: Creating mo file.
[ 25%] mo-update [zh_TW]: Creating mo file.
[ 25%] mo update
[ 25%] Built target translations
make: *** [Makefile:156: all] Error 2

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

I just did not know how to handle that in later versions that may have used the ZSDT that also had any so called "Asymmetric numeral systems patent" also in it.

As I wrote, my advise is to ignore the patent. By the way, never publicly talk about a patent to developers possibly infringing it: you expose them to greater penalties (because they cannot plead ignorance). You can fight for the abolition of software patents in general though!

I used sudo apt-get build-dep minetest

OK. Now try to execute:
$ sudo apt-get -b source minetest

That should create the binary .deb package: https://wiki.debian.org/Packaging/SourcePackage#How_to_build_the_Debian_package

If the build is reproducible (what is not certain), that package will be bit-to-bit identical to the one you get with 'apt-get download minetest'.

Other_Cody
Offline
Joined: 12/20/2023

I used the build instructions in the README.md before

#### Build

Build a version that runs directly from the source directory:

cmake . -DRUN_IN_PLACE=TRUE
make -j$(nproc)


Run it:

./bin/minetest

so I thought it could still be built without sudo
as running in root to build something may not be as
secure as building as a normal user, like I did before.

I think I mostly used sudo only to install programs, not build them.
Though I used Synaptic Package Manager to install most programs.
As I use an account without root most of the time and switch accounts
to even be able to use the sudo program, other that with Synaptic Package Manager, if that uses sudo.

I do not know why sudo is now needed, as it was not before,
but it looks like it can be built with the super user with an
internet connection.

I also tested it with

apt-get -b source minetest

and it can not be built off-line as a normal user though.

Though I do not know why the build instructions in the
README.md did not work as they did work before.

I also did test building it off-line as a super user,
and that also worked.

Does anyone know why the
Build a version that runs directly from the source directory:
instructions that did work before, does not work now?

Or a way to build it the way I built it before? Using the

cmake . -DRUN_IN_PLACE=TRUE
make -j$(nproc)

Perhaps I built that before with git clone
and not apt-get source.

Though I thought those were almost the same source code and that both could
be built using the build instructions in the README.md file without sudo as I did before.

Also
apt-get source minetest
works without sudo to get the source code.

Near the end of these builds that worked with
sudo apt-get -b source minetest

I saw

dpkg-genbuildinfo --build=binary -O../minetest_5.4.1+repack-2build1_amd64.buildinfo
dpkg-genchanges --build=binary -O../minetest_5.4.1+repack-2build1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)

Does this "upload" thing try to upload anything to other computers?

Magic Banana

I am a member!

I am a translator!

Offline
Joined: 07/24/2010

I also tested it with 'apt-get -b source minetest' and it can not be built off-line as a normal user though.

https://wiki.debian.org/Packaging/SourcePackage#How_to_build_the_Debian_package (that I gave right after the above command) says "you need root privileges or fakeroot to build the .deb". So, apparently, fakeroot would work too. The description of that package says "fakeroot provides a fake 'root environment' by means of LD_PRELOAD and SysV IPC (or TCP) trickery. It puts wrappers around getuid(), chown(), stat(), and other file-manipulation functions, so that unprivileged users can (for instance) populate .deb archives with root-owned files; various build tools use fakeroot for this by default".

So, the reason is that the .deb archive contains files owned by root (as expected: those files end up in the system, for all users).

Perhaps I built that before with git clone and not apt-get source.

The difference may indeed come from modifications brought by the Debian Developer packaging Minetest.

Ark74

I am a member!

I am a translator!

Offline
Joined: 07/15/2009

Hello!

When rebuilding from source code, you may want to do it on ma VM or a machine not the one of your daily use, as you'll start gathering development packages pretty quick along with dependencies you may never use other than that only time for the package at the moment.

That said, you can use some of this pointers to rebuild from source.

sudo apt install dpkg-dev
sudo apt build-dep $package
apt source $package
cd $package-*
dpkg-buildpackage -us -uc

where $package can be virtually any package on the repo.

If you want to do level up the process, you may wanna use package-helpers and trisquel-builder tools to setup a build environment.

Regards.

megurineturilli
Offline
Joined: 01/10/2012

I recently installed Minetest via GNU Guix and it works. Currently I am working on a VR port of Minetest, on my Talos II which has both Debian and Trisquel installed. So I guess I will be able to find out weather the problem is inherited from Debian.

Ark74

I am a member!

I am a translator!

Offline
Joined: 07/15/2009

I didn't have any issue using sbuild + schroot to rebuild from source,

.....
+------------------------------------------------------------------------------+
| Cleanup |
+------------------------------------------------------------------------------+

Purging /<>
Not cleaning session: cloned chroot in use

+------------------------------------------------------------------------------+
| Summary |
+------------------------------------------------------------------------------+

Build Architecture: amd64
Build Type: binary
Build-Space: 2040988
Build-Time: 1605
Distribution: aramo
Host Architecture: amd64
Install-Time: 49
Job: minetest_5.4.1+repack-2build1+11.0trisquel0.dsc
Machine Architecture: amd64
Package: minetest
Package-Time: 1677
Source-Version: 5.4.1+repack-2build1+11.0trisquel0
Space: 2040988
Status: successful
Version: 5.4.1+repack-2build1+11.0trisquel0
--------------------------------------------------------------------------------
Finished at 2024-02-19T18:33:16Z
Build needed 00:27:57, 2040988k disk space

You can ignore the '+11.0trisquel0' part, as I used a package helper to get the source ready for the schroot.
Regards.

Other_Cody
Offline
Joined: 12/20/2023

Maybe I only had problems building with just the


Here are the build dependencies.

For Debian/Ubuntu users:

sudo apt install g++ make libc6-dev libirrlicht-dev cmake libbz2-dev libpng-dev libjpeg-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev

and the

cmake . -DRUN_IN_PLACE=TRUE

make -j$(nproc)

in the README.md file, the way I did before somehow but may not be able to do it now,
though I can build it the way Magic Banana showed me. Maybe using fakeroot with the README.md information could build it that way, though I did not yet test that way, or need fakeroot before.

Thank you Magic Banana for showing me another way to build this than just the way the README.md file showed.

I do not know how I built it before just using the text and the dependencies in the README.md file before, maybe I had more programs installed at that time than I thought.

Thank you Ark74 for the information about the virtual machine so I will not need to install many more programs on my smaller vgtrisquel-root partition I use mostly to update and install programs, and instead can even use my vgtrisquel-home partition, or other ways.

Other_Cody
Offline
Joined: 12/20/2023

Does not build this way,


fakeroot cmake . -DRUN_IN_PLACE=TRUE
fakeroot make -j$(nproc)
CMake Deprecation Warning at CMakeLists.txt:3 (cmake_policy):
The OLD behavior for policy CMP0025 will be removed from a future version
of CMake.

The cmake-policies(7) manual explains that the OLD behaviors of all
policies are deprecated and that a policy should be set to OLD only under
specific short-term circumstances. Projects should be ported to the NEW
behavior and not rely on setting a policy to OLD.

-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- *** Will build version 5.4.1 ***
-- Found Irrlicht: /usr/lib/x86_64-linux-gnu/libIrrlicht.so
-- Using GMP provided by system.
-- Found GMP: /usr/lib/x86_64-linux-gnu/libgmp.so
-- Using bundled JSONCPP library.
-- Found LuaJIT: /usr/lib/x86_64-linux-gnu/libluajit-5.1.so (found version "")
-- Using LuaJIT provided by system.
-- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so
-- cURL support enabled.
-- Found GettextLib: /usr/include
-- GetText enabled; locales found: ar;be;bg;ca;cs;da;de;dv;el;eo;es;et;eu;fi;fr;gd;gl;he;hi;hu;id;it;ja;jbo;kk;kn;ko;ky;lt;lv;ms;ms_Arab;nb;nl;nn;pl;pt;pt_BR;ro;ru;sk;sl;sr_Cyrl;sr_Latn;sv;sw;th;tr;uk;vi;zh_CN;zh_TW
-- Found OpenAL: /usr/lib/x86_64-linux-gnu/libopenal.so
-- Found Vorbis: /usr/include
-- Sound enabled.
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so
-- Found Freetype: /usr/lib/x86_64-linux-gnu/libfreetype.so (found version "2.11.1")
-- Freetype enabled.
-- Looking for cbreak in /usr/lib/x86_64-linux-gnu/libncursesw.so
-- Looking for cbreak in /usr/lib/x86_64-linux-gnu/libncursesw.so - found
-- Found Ncursesw: /usr/lib/x86_64-linux-gnu/libncursesw.so
-- ncurses console enabled.
-- Found PostgreSQL: /usr/lib/x86_64-linux-gnu/libpq.so (found version "14.10")
-- PostgreSQL backend enabled
-- PostgreSQL includes: /usr/include/postgresql;/usr/include/postgresql/
-- LevelDB backend enabled.
-- Redis not found!
-- Found SQLite3: /usr/lib/x86_64-linux-gnu/libsqlite3.so
-- Prometheus client disabled.
-- SpatialIndex AreaStore backend enabled.
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80")
-- Found BZip2: /usr/lib/x86_64-linux-gnu/libbz2.so (found version "1.0.8")
-- Looking for BZ2_bzCompressInit
-- Looking for BZ2_bzCompressInit - found
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37")
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Looking for include file endian.h
-- Looking for include file endian.h - found
-- Locale blacklist applied; Locales used: be;bg;ca;cs;da;de;dv;el;eo;es;et;eu;fi;fr;gd;gl;hi;hu;id;it;ja;jbo;kk;kn;ko;lt;lv;ms;nb;nl;nn;pl;pt;pt_BR;ro;ru;sk;sl;sr_Cyrl;sr_Latn;sv;sw;tr;uk;vi;zh_CN;zh_TW
-- Performing Test IS_AARCH64
-- Performing Test IS_AARCH64 - Failed
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/codyu/Desktop/untitled folder/4 (copy)/minetest-5.4.1+repack
/bin/sh: 1: Syntax error: "(" unexpected
make[2]: *** [src/CMakeFiles/GenerateVersion.dir/build.make:70: src/CMakeFiles/GenerateVersion] Error 2
make[1]: *** [CMakeFiles/Makefile2:411: src/CMakeFiles/GenerateVersion.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 0%] Building CXX object lib/jsoncpp/CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o
/home/codyu/Desktop/untitled folder/4 (copy)/minetest-5.4.1+repack/lib/jsoncpp/jsoncpp.cpp:76:10: fatal error: json/json.h: No such file or directory
76 | #include "json/json.h"
| ^~~~~~~~~~~~~
compilation terminated.
make[2]: *** [lib/jsoncpp/CMakeFiles/jsoncpp.dir/build.make:76: lib/jsoncpp/CMakeFiles/jsoncpp.dir/jsoncpp.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:385: lib/jsoncpp/CMakeFiles/jsoncpp.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

but I think builds with

fakeroot apt-get -b source minetest

after getting the extra

sudo apt-get build-dep minetest

dependencies that may not be shown in the README.md file.

I do not yet know if it will still be able to be built with just the dependencies shown in the README.md file and the way the README.md file shows, or if it needs the way and extra dependencies Magic Banana showed me now.