twisterarmy / twister-core

Community driven twister-core
MIT License
3 stars 0 forks source link

compilation error: flexible array member ‘fiemap::fm_extents’ #11

Closed d47081 closed 10 months ago

d47081 commented 11 months ago

Ubuntu 23.10

In file included from /usr/include/features.h:502,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/os_defines.h:39,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/c++config.h:679,
                 from /usr/include/c++/13/cstddef:49,
                 from /usr/local/include/boost/config/compiler/gcc.hpp:165,
                 from /usr/local/include/boost/config.hpp:39,
                 from ./libtorrent/include/libtorrent/config.hpp:41,
                 from libtorrent/src/file.cpp:38:
/usr/include/dirent.h:191:12: note: declared here
  191 | extern int __REDIRECT (readdir_r,
      |            ^~~~~~~~~~
In file included from libtorrent/src/file.cpp:91:
/usr/include/linux/fiemap.h: In member function ‘libtorrent::size_type libtorrent::file::phys_offset(libtorrent::size_type)’:
/usr/include/linux/fiemap.h:37:30: error: flexible array member ‘fiemap::fm_extents’ not at end of ‘struct libtorrent::file::phys_offset(libtorrent::size_type)::fm’
   37 |         struct fiemap_extent fm_extents[]; /* array of mapped extents (out) */
      |                              ^~~~~~~~~~
libtorrent/src/file.cpp:1839:46: note: next member ‘fiemap_extent libtorrent::file::phys_offset(libtorrent::size_type)::fm::extent’ declared here
 1839 |                         struct fiemap_extent extent;
      |                                              ^~~~~~
libtorrent/src/file.cpp:1836:24: note: in the definition of ‘struct libtorrent::file::phys_offset(libtorrent::size_type)::fm’
 1836 |                 struct fm
      |                        ^~
make: *** [Makefile:1542: libtorrent/src/file.o] Error 1
RealVegOs commented 10 months ago

Just that! My Raspi 3 was running twisterd for years. As I lost the system image, I did not succeed to recompile it. This stuff needs more than a simple fork. Is there nobody with the required skills willing to maintain Twister?

Twister is dead in several ways. Glad to see the Fediverse grow and flourish. It's not P2P but it's decentralized and better than all commercial social networks. Lot of activists, media, scientists, universities and even German authorities are using it.

fediverse_120x120

d47081 commented 10 months ago

compilation still possible on Ubuntu 22.04 and Debian 12, I'm using first one build for Ubuntu 23.10 and it works well.

anyway in the official branch someone pushed updates for LTS libboost versions pre-compiled binaries (amd64 and sometimes arm) also attached in TA Edition releases https://github.com/twisterarmy/twister-core/releases/tag/twisterarmy-1.3

RealVegOs commented 10 months ago

It worked on Devuan (forgot the version, perhaps 4) for me, but not on Debian 12. The precompiled TA Edition twisterd runs on Debian 12. Just tested. THX!

d47081 commented 10 months ago

maybe I forgot and just copied 1.3 version for debian to deploy node faster

if nobody push updates for next LTS I'll try to make those fixes. anyway, glad this release was useful for you it also includes additional DNS resolver to make new nodes connectable, because seed2.twister.net.co does not work time to time.

new users also can connect to the peers manually using following page: https://twisterarmy.github.io/network

btw, twister-html TA edition contain additional templates and UI features e.g. build-in posts translation (configurable)

d47081 commented 10 months ago

@RealVegOs could you please try to recompile twister-core with this update 9a0d8cb79f3f901ab9a2c915f97d05e03bfa98bd

it works for me on Debian 12, just my Ubuntu 23.10 build have modified boost libraries to make the test.

TA branch already contain this update, and I've sent PR to official repo https://github.com/miguelfreitas/twister-core/pull/463

RealVegOs commented 10 months ago

THX much! Compiled and runs. I used this: ./autotool.sh ./configure --with-boost-libdir=/usr/lib/x86_64-linux-gnu/ make