far2l icon indicating copy to clipboard operation
far2l copied to clipboard

how to make build for centos

Open vlbash opened this issue 7 years ago • 7 comments

vlbash avatar May 20 '18 17:05 vlbash

I was able to successfully build it in Fedora 29.

But it makes troubles in CentOS.

We need new CMake and libs which are not available in CentOS 7.

ghost avatar Jan 30 '19 15:01 ghost

Easiest way (not tested, though) is to convert .deb to .rpm using alien: yum install alien alien -r PACKAGE_FILE_NAME.deb sudo yum localinstall PACKAGE_FILE_NAME.rpm

debs available here: https://github.com/unxed/far2l-deb consider trying versions for the oldest distros first

ps: not sure if alien is able to correctly process dependencies.

This does not work. It requires the following:

Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libwx_gtk2u_core-3.0.so.0()(64bit)
Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libcrypto.so.1.1()(64bit)
Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libwx_gtk2u_core-3.0.so.0(WXU_3.0)(64bit)
Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)
Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libstdc++.so.6(GLIBCXX_3.4.22)(64bit)
Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libstdc++.so.6(CXXABI_1.3.8)(64bit)
Error: Package: far2l-2.0-2.x86_64 (/far2l-2.0-2.x86_64)
           Requires: libstdc++.so.6(CXXABI_1.3.9)(64bit)

ghost avatar Jan 30 '19 16:01 ghost

I guess you can add the following instructions for CentOS 7:

Install development packages and tools:

yum install gawk m4 glib2-devel wxGTK3-devel cmake gcc-c++ git

Install cmake3, and new gcc, use it with scl:

yum install cmake3
yum install centos-release-scl
yum install devtoolset-8-gcc*
scl enable devtoolset-8 bash
which gcc
gcc --version

Clone far2l and do the same thing as described in readme:

git clone https://github.com/elfmz/far2l
mkdir build
cd build
cmake3 -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..
make -j4
make install

Enjoy!

--

centos-release-7-6.1810.2.el7.centos.x86_64

image

ghost avatar Jan 30 '19 18:01 ghost

Here is a script for installing Far2l on CentOS 8:

https://github.com/pgagarinov/centos-config/blob/master/centos8/basic/install_far2l.sh

pgagarinov avatar Aug 01 '20 12:08 pgagarinov

Here is a script for installing Far2l on CentOS 8:

https://github.com/pgagarinov/centos-config/blob/master/centos8/basic/install_far2l.sh

have two issues with this script on centos 8:

  1. wxGTK3-devel was not available, need to: dnf search epel-release sudo dnf install epel-release sudo dnf install wxGTK3-devel
  2. After installation, change Terminal flag in /usr/local/share/applications/far2l.desktop: Terminal=true

rshekhovtsov avatar Sep 06 '20 10:09 rshekhovtsov

Here is a script for installing Far2l on CentOS 8: https://github.com/pgagarinov/centos-config/blob/master/centos8/basic/install_far2l.sh

have two issues with this script on centos 8:

1. wxGTK3-devel was not available, need to:
   dnf search epel-release
   sudo dnf install epel-release
   sudo dnf install wxGTK3-devel

2. After installation, change Terminal flag in /usr/local/share/applications/far2l.desktop:
   Terminal=true

Fixed in https://github.com/Alliedium/awesome-linux-config/blob/master/centos8/basic/install_far2l.sh

pgagarinov avatar Sep 24 '20 21:09 pgagarinov

I guess you can add the following instructions for CentOS 7:

Install development packages and tools:

yum install gawk m4 glib2-devel wxGTK3-devel cmake gcc-c++ git

Install cmake3, and new gcc, use it with scl:

yum install cmake3
yum install centos-release-scl
yum install devtoolset-8-gcc*
scl enable devtoolset-8 bash
which gcc
gcc --version

Clone far2l and do the same thing as described in readme:

git clone https://github.com/elfmz/far2l
mkdir build
cd build
cmake3 -DUSEWX=no -DCMAKE_BUILD_TYPE=Release ..
make -j4
make install

Enjoy!

--

centos-release-7-6.1810.2.el7.centos.x86_64

image

Has a problem with configuring on centos 7

-- git hash: 706304a
-- Build Type: Release Version: 2.5.2-706304a-beta
-- Enabling registry support due to enabled LEGACY
-- generating headers and languages
-- Building with libuchardet
CMake Error at /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
  Could NOT find Uchardet (missing: UCHARDET_LIBRARY UCHARDET_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:445 (_FPHSA_FAILURE_MESSAGE)
  cmake/modules/FindUchardet.cmake:16 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  far2l/CMakeLists.txt:214 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/kadmin/far2l/_build/CMakeFiles/CMakeOutput.log".
See also "/home/kadmin/far2l/_build/CMakeFiles/CMakeError.log"

Inside /home/kadmin/far2l/_build/CMakeFiles/CMakeError.log

Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output:
Change Dir: /home/kadmin/far2l/_build/CMakeFiles/CMakeTmp

Run Build Command(s):/bin/gmake cmTC_0d082/fast && /bin/gmake  -f CMakeFiles/cmTC_0d082.dir/build.make CMakeFiles/cmTC_0d082.dir/build
gmake[1]: Entering directory `/home/kadmin/far2l/_build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_0d082.dir/src.c.o
/opt/rh/devtoolset-8/root/usr/bin/cc   -Wall -std=c99 -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -Wl,--gc-sections -DWINPORT_REGISTRY -DCMAKE_HAVE_LIBC_PTHREAD   -o CMakeFiles/cmTC_0d082.dir/src.c.o   -c /home/kadmin/far2l/_bui
ld/CMakeFiles/CMakeTmp/src.c
Linking C executable cmTC_0d082
/usr/bin/cmake3 -E cmake_link_script CMakeFiles/cmTC_0d082.dir/link.txt --verbose=1
/opt/rh/devtoolset-8/root/usr/bin/cc  -Wall -std=c99 -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -Wl,--gc-sections -DWINPORT_REGISTRY -DCMAKE_HAVE_LIBC_PTHREAD    -rdynamic CMakeFiles/cmTC_0d082.dir/src.c.o  -o cmTC_0d082
CMakeFiles/cmTC_0d082.dir/src.c.o: In function `main':
src.c:(.text.main+0x21): undefined reference to `pthread_create'
src.c:(.text.main+0x2d): undefined reference to `pthread_detach'
src.c:(.text.main+0x39): undefined reference to `pthread_cancel'
src.c:(.text.main+0x4a): undefined reference to `pthread_join'
src.c:(.text.main+0x5e): undefined reference to `pthread_atfork'
collect2: error: ld returned 1 exit status
gmake[1]: *** [cmTC_0d082] Error 1
gmake[1]: Leaving directory `/home/kadmin/far2l/_build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_0d082/fast] Error 2


Source file was:
#include <pthread.h>

void* test_func(void* data)
{
  return data;
}

int main(void)
{
  pthread_t thread;
  pthread_create(&thread, NULL, test_func, NULL);
  pthread_detach(thread);
  pthread_cancel(thread);
  pthread_join(thread, NULL);
  pthread_atfork(NULL, NULL, NULL);
  pthread_exit(NULL);

  return 0;
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/kadmin/far2l/_build/CMakeFiles/CMakeTmp

Run Build Command(s):/bin/gmake cmTC_d6556/fast && /bin/gmake  -f CMakeFiles/cmTC_d6556.dir/build.make CMakeFiles/cmTC_d6556.dir/build
gmake[1]: Entering directory `/home/kadmin/far2l/_build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_d6556.dir/CheckFunctionExists.c.o
/opt/rh/devtoolset-8/root/usr/bin/cc   -Wall -std=c99 -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -Wl,--gc-sections -DWINPORT_REGISTRY -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_d6556.dir/CheckFunctionExists.c.o
   -c /usr/share/cmake3/Modules/CheckFunctionExists.c
Linking C executable cmTC_d6556
/usr/bin/cmake3 -E cmake_link_script CMakeFiles/cmTC_d6556.dir/link.txt --verbose=1
/opt/rh/devtoolset-8/root/usr/bin/cc  -Wall -std=c99 -fPIC -Wno-unused-function -D_FILE_OFFSET_BITS=64 -ffunction-sections -fdata-sections -Wl,--gc-sections -DWINPORT_REGISTRY -DCHECK_FUNCTION_EXISTS=pthread_create    -rdynamic CMakeFiles/cmTC_d6556.dir/CheckFunctionExi
sts.c.o  -o cmTC_d6556  -lpthreads
/opt/rh/devtoolset-8/root/usr/libexec/gcc/x86_64-redhat-linux/8/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
gmake[1]: *** [cmTC_d6556] Error 1
gmake[1]: Leaving directory `/home/kadmin/far2l/_build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_d6556/fast] Error 2

ldconfig has output

ldconfig -p | grep pthread
	libpthread.so.0 (libc6,x86-64, OS ABI: Linux 2.6.32) => /lib64/libpthread.so.0
	libpthread.so.0 (libc6, OS ABI: Linux 2.6.32) => /lib/libpthread.so.0
	libgpgme-pthread.so.11 (libc6,x86-64) => /lib64/libgpgme-pthread.so.11
	libevent_pthreads-2.0.so.5 (libc6,x86-64) => /lib64/libevent_pthreads-2.0.so.5

valdemar1977 avatar Oct 04 '23 09:10 valdemar1977