• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • If you're using Gesior 2012 or MyAAC, please review this thread for information about a serious security vulnerability and a fix.

Compiling Compiling TFS 1.3 on CentOS 8

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
Hello.

TL;DR
I tried compile TFS 1.3 on CentOS 8 based on this wiki page:
SELinux is enabled.
cmake throw:
-- Performing Test COMPILER_KNOWS_STDLIB - Failed

Longer answer
So far I created bash script:
Code:
#!/bin/bash

set -e

# Enable PowerTools to install lua-devel
sudo sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/CentOS-PowerTools.repo
sudo sed -i 's/enabled=0/enabled=1/g' /etc/yum.repos.d/CentOS-Devel.repo

# Remove yum cache
sudo yum clean all

# Install this package to get pugixml-devel
sudo yum install epel-release
sudo yum install git cmake gcc-c++ boost-devel gmp-devel mariadb-devel
sudo yum install lua-devel pugixml-devel

# Install to fix cmake error
sudo yum install cryptopp-devel

# IT DOESN'T HELP
# sudo yum groups install "Development tools"

# Prepare tfs user and group
sudo groupadd tfs
sudo useradd -g tfs -s /bin/bash -m tfs
sudo chmod 750 /home/tfs

# Run code as tfs user
sudo su - tfs -c 'git clone --recursive https://github.com/otland/forgottenserver.git'
sudo su - tfs -c 'cd forgottenserver && mkdir build'
sudo su - tfs -c 'cd forgottenserver/build && cmake ..'
sudo su - tfs -c 'cd forgottenserver/build && make'


There is problem with step cmake ..
Code:
[[email protected] build]$ cmake ..
-- The C compiler identification is GNU 8.3.1
-- The CXX compiler identification is GNU 8.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- cotire 1.7.6 loaded.
-- Performing Test COMPILER_KNOWS_CXX11
-- Performing Test COMPILER_KNOWS_CXX11 - Success
-- Performing Test COMPILER_KNOWS_STDLIB
-- Performing Test COMPILER_KNOWS_STDLIB - Failed
-- Performing Test COMPILER_KNOWS_LTO
-- Performing Test COMPILER_KNOWS_LTO - Success
-- Found Crypto++: /usr/include 
-- Found PugiXML: /usr/include 
-- MySQL Include dir: /usr/include/mysql  library dir: /usr/lib64
-- MySQL client libraries: /usr/lib64/libmysqlclient.so
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE 
-- Could NOT find LuaJIT (missing: LUA_LIBRARIES LUA_INCLUDE_DIR)
-- Found Lua: /usr/lib64/liblua.so;/usr/lib64/libm.so (found version "")
-- Boost version: 1.66.0
-- Found the following Boost libraries:
--   system
--   filesystem
--   iostreams
--   regex
-- CXX target tfs cotired without unity build.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tfs/forgottenserver/build


If I ignore this, then in last step, make throw
Code:
[[email protected] build]$ make
[  1%] Generating CXX prefix source cotire/tfs_CXX_prefix.cxx
[  2%] Generating CXX prefix header cotire/tfs_CXX_prefix.hxx
[  3%] Building CXX precompiled header cotire/tfs_CXX_prefix.hxx.gch
Scanning dependencies of target tfs
[  4%] Building CXX object CMakeFiles/tfs.dir/src/otpch.cpp.o
cc1plus: error: /home/tfs/forgottenserver/build/cotire/tfs_CXX_prefix.hxx.gch: had text segment at different address [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/tfs.dir/build.make:77: CMakeFiles/tfs.dir/src/otpch.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:100: CMakeFiles/tfs.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

I guess I have to install additional package. I don't know which one.
Anyone can help with this issue?
 
Last edited:
Solution
Not even sure since the app in question only uses nginx as a reverse proxy, and generally end-users would be connected to the websocket endpoint directly. Adding nginx into that mix always created extra ambiguities in support tickets so we just stopped because it wasn't worth it. So it was some wierdness between Cloudflare and N|Solid.

Code:
OS template centos-8-x86_64 cache was created
Wow. The amount of guess work and random tries to get that to happen.
(Gotta be real careful playing at updating packages when the OS is the hypervisor of a live mission-critical metal, which is hosting production VMs and CTs)

I should now finally have a CentOS 8 CT in a few minutes. I was worried I'd have to go full VM there for a minute...

Lessaire

Omniscient Hypervisor
Joined
Dec 29, 2009
Messages
1,264
Solutions
46
Reaction score
455
Location
Oregon
Well... there is no way you actually are missing the C Standard Library, I'm gonna a random guess...

How about sudo yum groups install "Development Tools" were groups is plural and a separate word?
 
OP
OP
hellboy

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
Well... there is no way you actually are missing the C Standard Library, I'm gonna a random guess...

How about sudo yum groups install "Development Tools" were groups is plural and a separate word?


Thanks. This command worked (return code = 0).
Code:
sudo yum groups install "Development Tools"

But still I have same cmake and make errors :/

There is any log file produced by cmake or make?
Post automatically merged:

I changed SELinux settings from "enforce" to "permissive". With same result.
 
Last edited:

Lessaire

Omniscient Hypervisor
Joined
Dec 29, 2009
Messages
1,264
Solutions
46
Reaction score
455
Location
Oregon
Thanks. This command worked (return code = 0).
👍 <-- That is thanks.


I changed SELinux settings from "enforce" to "permissive". With same result.

Your SELinux settings shouldn't interfere with any compilations, and if they do then start doing comps on a different box and rsync/scp built packages.

Cmake should definitely give you logs. From inside the build folder:
Bash:
$ find | grep '.log$'
./CMakeFiles/CMakeOutput.log
./CMakeFiles/CMakeError.log
 
OP
OP
hellboy

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
👍 <-- That is thanks.




Your SELinux settings shouldn't interfere with any compilations, and if they do then start doing comps on a different box and rsync/scp built packages.

Cmake should definitely give you logs. From inside the build folder:
Bash:
$ find | grep '.log$'
./CMakeFiles/CMakeOutput.log
./CMakeFiles/CMakeError.log


I guess I miss some core c++ package :/
Determining if the pthread_create exist failed with the following output:

CMakeError.log
Code:
Performing C++ SOURCE FILE Test COMPILER_KNOWS_STDLIB failed with the following output:
Change Dir: /home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_8e1b2/fast"
/usr/bin/gmake -f CMakeFiles/cmTC_8e1b2.dir/build.make CMakeFiles/cmTC_8e1b2.dir/build
gmake[1]: Entering directory '/home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp'
Building CXX object CMakeFiles/cmTC_8e1b2.dir/src.cxx.o
/usr/bin/c++    -DCOMPILER_KNOWS_STDLIB   -stdlib=libc++ -o CMakeFiles/cmTC_8e1b2.dir/src.cxx.o -c /home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp/src.cxx
c++: error: unrecognized command line option '-stdlib=libc++'
gmake[1]: *** [CMakeFiles/cmTC_8e1b2.dir/build.make:66: CMakeFiles/cmTC_8e1b2.dir/src.cxx.o] Error 1
gmake[1]: Leaving directory '/home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:126: cmTC_8e1b2/fast] Error 2

Source file was:
int main() { return 0; }
Determining if the pthread_create exist failed with the following output:
Change Dir: /home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_e3d12/fast"
/usr/bin/gmake -f CMakeFiles/cmTC_e3d12.dir/build.make CMakeFiles/cmTC_e3d12.dir/build
gmake[1]: Entering directory '/home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_e3d12.dir/CheckSymbolExists.c.o
/usr/bin/cc    -o CMakeFiles/cmTC_e3d12.dir/CheckSymbolExists.c.o   -c /home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c
Linking C executable cmTC_e3d12
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e3d12.dir/link.txt --verbose=1
/usr/bin/cc      -rdynamic CMakeFiles/cmTC_e3d12.dir/CheckSymbolExists.c.o  -o cmTC_e3d12 
CMakeFiles/cmTC_e3d12.dir/CheckSymbolExists.c.o: In function `main':
CheckSymbolExists.c:(.text+0x16): undefined reference to `pthread_create'
collect2: error: ld returned 1 exit status
gmake[1]: *** [CMakeFiles/cmTC_e3d12.dir/build.make:87: cmTC_e3d12] Error 1
gmake[1]: Leaving directory '/home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:126: cmTC_e3d12/fast] Error 2

File /home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:
/* */
#include <pthread.h>

int main(int argc, char** argv)
{
  (void)argv;
#ifndef pthread_create
  return ((int*)(&pthread_create))[argc];
#else
  (void)argc;
  return 0;
#endif
}

Determining if the function pthread_create exists in the pthreads failed with the following output:
Change Dir: /home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp

Run Build Command:"/usr/bin/gmake" "cmTC_35b0a/fast"
/usr/bin/gmake -f CMakeFiles/cmTC_35b0a.dir/build.make CMakeFiles/cmTC_35b0a.dir/build
gmake[1]: Entering directory '/home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_35b0a.dir/CheckFunctionExists.c.o
/usr/bin/cc   -DCHECK_FUNCTION_EXISTS=pthread_create   -o CMakeFiles/cmTC_35b0a.dir/CheckFunctionExists.c.o   -c /usr/share/cmake/Modules/CheckFunctionExists.c
Linking C executable cmTC_35b0a
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_35b0a.dir/link.txt --verbose=1
/usr/bin/cc  -DCHECK_FUNCTION_EXISTS=pthread_create    -rdynamic CMakeFiles/cmTC_35b0a.dir/CheckFunctionExists.c.o  -o cmTC_35b0a -lpthreads 
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
gmake[1]: *** [CMakeFiles/cmTC_35b0a.dir/build.make:87: cmTC_35b0a] Error 1
gmake[1]: Leaving directory '/home/tfs/forgottenserver/build/CMakeFiles/CMakeTmp'
gmake: *** [Makefile:126: cmTC_35b0a/fast] Error 2

CMakeOutput.log in attached file
 

Attachments

Lessaire

Omniscient Hypervisor
Joined
Dec 29, 2009
Messages
1,264
Solutions
46
Reaction score
455
Location
Oregon
Nah, your problem is earlier. on line 9

c++: error: unrecognized command line option '-stdlib=libc++'

That flag is specific to LLVM and should be tossed if you're using GCC. I would just spin up a CentOS8 vm and try this myself, but the rep++ wages of helping in the support forum aren't what they used to be. 🙃
 
OP
OP
hellboy

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
Nah, your problem is earlier. on line 9

c++: error: unrecognized command line option '-stdlib=libc++'

That flag is specific to LLVM and should be tossed if you're using GCC. I would just spin up a CentOS8 vm and try this myself, but the rep++ wages of helping in the support forum aren't what they used to be. 🙃

👍

When it'll be fixed I should make pull request to forgottenserver wiki here:

It's a little bit outdated now :D Back in 2016 there was Centos 6 and Centos 7 supported
Code:
8 Feb 2016

 

Lessaire

Omniscient Hypervisor
Joined
Dec 29, 2009
Messages
1,264
Solutions
46
Reaction score
455
Location
Oregon
Did your compile work after that?; be sure marked my post as having solved your thread if so. (And give my other posts their thumbs)

If not, tell me your next error.
 
OP
OP
hellboy

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
Did your compile work after that?; be sure marked my post as having solved your thread if so. (And give my other posts their thumbs)

If not, tell me your next error.

Hello.
Nope it doesn't compile. I'm not sure if I removed correctly param -stdlib=libc++

I commented out lines: 9 and 15, 16, 17, 18.

I also tried to find lib pthread lib files
Code:
# find /usr/lib64/ -name "*pthread*"
/usr/lib64/libpthread-2.28.so
/usr/lib64/libpthread.so.0
/usr/lib64/perl5/bits/pthreadtypes-arch.ph
/usr/lib64/perl5/bits/pthreadtypes.ph
/usr/lib64/pkgconfig/pthread-stubs.pc
/usr/lib64/libevent_pthreads-2.1.so.6
/usr/lib64/libevent_pthreads-2.1.so.6.0.2
/usr/lib64/libpthread.so
/usr/lib64/libpthread_nonshared.a

New logs in attachments.
 

Attachments

Lessaire

Omniscient Hypervisor
Joined
Dec 29, 2009
Messages
1,264
Solutions
46
Reaction score
455
Location
Oregon
I'll deploy a CentOS 8 VM today. Standby.

Sorry, I had a client take an extra large chunk of my day.
 
Last edited:

Lessaire

Omniscient Hypervisor
Joined
Dec 29, 2009
Messages
1,264
Solutions
46
Reaction score
455
Location
Oregon
Alright. Client dispathed, and you are next on the list.

It's nice to get back to some pro bono work that actually fulfills my own curiosities
after dealing with making cloudflare work with end-to-end encrypted websockets. 😣🔫
 
OP
OP
hellboy

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
Alright. Client dispathed, and you are next on the list.

It's nice to get back to some pro bono work that actually fulfills my own curiosities
after dealing with making cloudflare work with end-to-end encrypted websockets. 😣🔫
Thanks.

Anyway CF problem was in nginx/apache2 configuration or CF configuration?
I'm just curious :)
 

Lessaire

Omniscient Hypervisor
Joined
Dec 29, 2009
Messages
1,264
Solutions
46
Reaction score
455
Location
Oregon
Not even sure since the app in question only uses nginx as a reverse proxy, and generally end-users would be connected to the websocket endpoint directly. Adding nginx into that mix always created extra ambiguities in support tickets so we just stopped because it wasn't worth it. So it was some wierdness between Cloudflare and N|Solid.

Code:
OS template centos-8-x86_64 cache was created
Wow. The amount of guess work and random tries to get that to happen.
(Gotta be real careful playing at updating packages when the OS is the hypervisor of a live mission-critical metal, which is hosting production VMs and CTs)

I should now finally have a CentOS 8 CT in a few minutes. I was worried I'd have to go full VM there for a minute.
Post automatically merged:

So... fresh CentOS 8 CT spawn from a CentOS 7/vzlinux hypervisor.
minor issue getting resolv jiggered. reboot. installed nano text editor. injected your script. output to file. chmod +x. ran it.
error cuz of -Werror
su tfs
cd /home/tfs/forgottenserver
rm build -rfv
nano CMakeLists.txt # dropped -Werror
mkdir build;
cd build
make -j2 # hypervisor is mean to CTs that aren't explicitly granted CPU allocation.

and.... we get this:

1586608068342.png


So... 🤷‍♂️
Post automatically merged:

Shell output said:
[[email protected] ~/forgottenserver/build]$ file tfs
tfs: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=34522b384f58a438d2eb883dbae6911692ba000f, not stripped
[[email protected] ~/forgottenserver/build]$
[[email protected] ~/forgottenserver/build]$ ls -la tfs
-rwxrwxr-x 1 tfs tfs 9429856 Apr 11 05:23 tfs
[[email protected] ~/forgottenserver/build]$ ls -lAtr tfs
-rwxrwxr-x 1 tfs tfs 9429856 Apr 11 05:23 tfs
[[email protected] ~/forgottenserver/build]$ md5sum tfs
947d530cf4685b850b07c87a7e729027 tfs
[[email protected] ~/forgottenserver/build]$ tar caf tfs.xz tfs
[[email protected] ~/forgottenserver/build]$
[[email protected] ~/forgottenserver/build]$ md5sum tfs.xz
1ba2e3faa38a150aa321a1d453e6ef4f tfs.xz
[[email protected] ~/forgottenserver/build]$ ls -lAtr
total 10648
-rw-rw-r-- 1 tfs tfs 5167 Apr 11 05:15 tfs_CXX_cotire.cmake
-rw-rw-r-- 1 tfs tfs 19613 Apr 11 05:15 CMakeCache.txt
drwxrwxr-x 3 tfs tfs 4096 Apr 11 05:15 src
-rw-rw-r-- 1 tfs tfs 1668 Apr 11 05:15 cmake_install.cmake
-rw-rw-r-- 1 tfs tfs 63898 Apr 11 05:15 Makefile
drwxrwxr-x 2 tfs tfs 4096 Apr 11 05:19 cotire
-rwxrwxr-x 1 tfs tfs 9429856 Apr 11 05:23 tfs
drwxrwxr-x 8 tfs tfs 4096 Apr 11 05:23 CMakeFiles
-rw-rw-r-- 1 tfs tfs 1359696 Apr 11 05:33 tfs.xz
[[email protected] ~/forgottenserver/build]$ scp tfs.xz [email protected]:
CMakeCache.txt CMakeFiles/ Makefile cmake_install.cmake cotire/ src/ tfs tfs.xz tfs_CXX_cotire.cmake
[tfs[email protected] ~/forgottenserver/build]$ scp tfs.xz [email protected]:
The authenticity of host 'xaekai.net (207.115.84.58)' can't be established.
ECDSA key fingerprint is SHA256:P3SqY4MawxRhroTDeeot5PpKa1yvBwy8Oo4ExqnbTdg.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'xaekai.net,207.115.84.58' (ECDSA) to the list of known hosts.
[email protected]'s password:
tfs.xz 100% 1328KB 96.7MB/s 00:00
[[email protected] ~/forgottenserver/build]$ curl -I https://xaekai.net/tfs.xz
HTTP/1.1 200 OK
Server: nginx/1.16.1
Date: Sat, 11 Apr 2020 12:40:58 GMT
Content-Type: application/x-xz
Content-Length: 1359696
Last-Modified: Sat, 11 Apr 2020 12:39:18 GMT
Connection: keep-alive
ETag: "5e91ba76-14bf50"
Accept-Ranges: bytes

[[email protected] ~/forgottenserver/build]$ curl https://xaekai.net/tfs.xz | md5sum
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1327k 100 1327k 0 0 40.5M 0 --:--:-- --:--:-- --:--:-- 40.5M
1ba2e3faa38a150aa321a1d453e6ef4f -
[[email protected] ~/forgottenserver/build]$

If you wanna check it: https://xaekai.net/tfs.xz
xz archive should be 1359696 bytes with an md5sum of 1ba2e3faa38a150aa321a1d453e6ef4f
tfs binary should be 9429856 bytes with an md5sum of 947d530cf4685b850b07c87a7e729027

I'd see if all the libs it needs are around, I've had that give me insight in the past with minor system differences to help track down the problem package.
Command you want for that is ldd. man page.
 
Last edited:
Solution
OP
OP
hellboy

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
Not even sure since the app in question only uses nginx as a reverse proxy, and generally end-users would be connected to the websocket endpoint directly. Adding nginx into that mix always created extra ambiguities in support tickets so we just stopped because it wasn't worth it. So it was some wierdness between Cloudflare and N|Solid.

Code:
OS template centos-8-x86_64 cache was created
Wow. The amount of guess work and random tries to get that to happen.
(Gotta be real careful playing at updating packages when the OS is the hypervisor of a live mission-critical metal, which is hosting production VMs and CTs)

I should now finally have a CentOS 8 CT in a few minutes. I was worried I'd have to go full VM there for a minute.
Post automatically merged:

So... fresh CentOS 8 CT spawn from a CentOS 7/vzlinux hypervisor.
minor issue getting resolv jiggered. reboot. installed nano text editor. injected your script. output to file. chmod +x. ran it.
error cuz of -Werror
su tfs
cd /home/tfs/forgottenserver
rm build -rfv
nano CMakeLists.txt # dropped -Werror
mkdir build;
cd build
make -j2 # hypervisor is mean to CTs that aren't explicitly granted CPU allocation.

and.... we get this:

View attachment 44106


So... 🤷‍♂️
Post automatically merged:



If you wanna check it: https://xaekai.net/tfs.xz
xz archive should be 1359696 bytes with an md5sum of 1ba2e3faa38a150aa321a1d453e6ef4f
tfs binary should be 9429856 bytes with an md5sum of 947d530cf4685b850b07c87a7e729027

I'd see if all the libs it needs are around, I've had that give me insight in the past with minor system differences to help track down the problem package.
Command you want for that is ldd. man page.

Strange. I'll check this tomorrow.

I installed centos 8 on old laptop. What repositories you have enabled in virtual machine?
I tommorow reinstall OS and try again.
 
OP
OP
hellboy

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
Hello I reinstalled centos 8 on laptop (just in case of messing up something in packages).
I used OS ISO: CentOS-8.1.1911-x86_64-dvd1.iso

1.
I have same repolist as VM.
2. Script end with same result. I installed additional make package. (I reported first post because I want to update it also there).
3. All dynamic linked libraries with path showed with ldd are present on my centos (I'm not sure about linux-vdso.so.1 it don't show path to check)
4. Could you provide diff with installed packages or list of packages in VM?
Code:
# I need only stdout with no stderr
yum list installed > vm-installed-packages.txt
diff ./yum-installed-list.txt ./vm-installed-packages.txt

After that I'll check every package and try to fix my installation.
And after all I'll make pull request with fix to TFS wiki.
 

Attachments

  • yum-installed-list.txt
    155.3 KB · Views: 2 · VirusTotal

Lessaire

Omniscient Hypervisor
Joined
Dec 29, 2009
Messages
1,264
Solutions
46
Reaction score
455
Location
Oregon
My CT is not made from an ISO, The hypervisor literally runs the target package managers for various systems in a chroot, and can bootstrap fully up to date systems into containers from there. (i.e. it runs dpkg and builds a local repo for Debian, another for Ubuntu, does the same with yum for CentOS, can also do pacman for Arch, etc)

The diff you requested would be useless. Even if you had thought to add the parameters for ignoring whitespace it still produces too much output.

I played with the lists locally, using various sorts and Beyond Compare.

sort -k3 reveals the major difference between these lists is the repo anaconda, which I do not have present in mine. I sed filtered your list to rename that to "System" and that helped significantly, and revealed most of the differences were not, lots of the package versions were identical.

now later.... I've kept playing around but with all the noise from your DE packages its hard to tell whats up. I think the best approach would be to eliminate all packages on your list that aren't present on the vm list, and then only compare what's left over. efficient way to accomplish that with greps|awk|sed et al is not coming to me readily at the moment.. my brain is a bit mush still from the long crunch past couple days. I'll try again later. Maybe just use Node or Python.

Here is the whole file.
http://xaekai.net/gustav.pkglist.txt
 
OP
OP
hellboy

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
500
Solutions
4
Reaction score
101
Location
player:getTown()
My CT is not made from an ISO, The hypervisor literally runs the target package managers for various systems in a chroot, and can bootstrap fully up to date systems into containers from there. (i.e. it runs dpkg and builds a local repo for Debian, another for Ubuntu, does the same with yum for CentOS, can also do pacman for Arch, etc)

The diff you requested would be useless. Even if you had thought to add the parameters for ignoring whitespace it still produces too much output.

I played with the lists locally, using various sorts and Beyond Compare.

sort -k3 reveals the major difference between these lists is the repo anaconda, which I do not have present in mine. I sed filtered your list to rename that to "System" and that helped significantly, and revealed most of the differences were not, lots of the package versions were identical.

now later.... I've kept playing around but with all the noise from your DE packages its hard to tell whats up. I think the best approach would be to eliminate all packages on your list that aren't present on the vm list, and then only compare what's left over. efficient way to accomplish that with greps|awk|sed et al is not coming to me readily at the moment.. my brain is a bit mush still from the long crunch past couple days. I'll try again later. Maybe just use Node or Python.

Here is the whole file.
http://xaekai.net/gustav.pkglist.txt

Hello.
I installed Centos 8 minimal on VM.
I also installed some packages missing from Your list on my installation.
There is still same effect.

In first test I ignored packages version and some propably unused packages (samba, http, ftp, etc)
How I got missing packages list?
Code:
cat ./my-pkglist.txt | cut -d ' ' -f1 | sort > ./sorted-my-pkglist.txt
cat ./gustav.pkglist.txt | cut -d ' ' -f1 | sort > ./sorted-gustav-pkglist.txt

grep -v -f ./sorted-my-pkglist.txt ./sorted-gustav-pkglist.txt | more

After testing and additional installation steps there is list of missing packages now.
Code:
apr-util.x86_64
apr.x86_64
attr.x86_64
authselect-compat.x86_64
avahi-libs.x86_64
bind-libs-lite.x86_64
bind-libs.x86_64
bind-license.noarch
bind.x86_64
centos-logos-httpd.noarch
cronie-noanacron.x86_64
cups-libs.x86_64
cyrus-sasl.x86_64
ed.x86_64
fetchmail.x86_64
ftp.x86_64
gpm-libs.x86_64
httpd-filesystem.noarch
httpd-tools.x86_64
httpd.x86_64
hunspell-en-GB.noarch
hunspell-en.noarch
hunspell-en-US.noarch
hunspell.x86_64
Installed
iptables-services.x86_64
libsmbclient.x86_64
libwbclient.x86_64
lsof.x86_64
mailcap.noarch
mailx.x86_64
man-pages.x86_64
mlocate.x86_64
mod_http2.x86_64
nano.x86_64
ncompress.x86_64
net-snmp-utils.x86_64
network-scripts.x86_64
nscd.x86_64
ntsysv.x86_64
procmail.x86_64
python36.x86_64
python3-pip.noarch
python3-setuptools.noarch
quota-nls.noarch
quota.x86_64
rpcbind.x86_64
rsync.x86_64
samba-client-libs.x86_64
samba-client.x86_64
samba-common-libs.x86_64
samba-common.noarch
samba-common-tools.x86_64
samba-libs.x86_64
samba.x86_64
sendmail-cf.noarch
sendmail.x86_64
stunnel.x86_64
tcpdump.x86_64
tcsh.x86_64
telnet.x86_64
time.x86_64
tmpwatch.x86_64
traceroute.x86_64
vim-common.x86_64
vim-enhanced.x86_64
vim-filesystem.noarch
vzdummy-systemd-el8.noarch
xinetd.x86_64


Where make/cmake add this line option "-stdlib=libc++"?
Code:
c++: error: unrecognized command line option '-stdlib=libc++'

Maybe I should try one more time to just replace it in script before compiler run.
 
Top