Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Установка MaNGOS (http://mangos.ytdb.ru/forumdisplay.php?f=25)
-   -   [Гайд] Компиляция MaNGOS под FreeBSD на примере 8.0-RELEASE (http://mangos.ytdb.ru/showthread.php?t=75)

xmolex 08.11.2010 15:05

Цитата:

Сообщение от rsa (Сообщение 15939)
и охота вам таким мазохизмом заниматься? --enable-builtin-ace=no, скомпилите либу полностью 1 раз и забудьте про эту асю насовсем...

Лично я не могу использовать внешний ACE. Возможно, кто-то тоже.
Но это тоже вариант, спасибо что указали его.

Resus 08.11.2010 16:42

xmolex Пасиб Огроменное щас вроде собираеться )))

Vladimir 08.11.2010 18:34

ACE к сожелению конкретно не дружит с *BSD - отмазка ACE team - у нас нет тестовых машин с этими операционками. Derex планировал предложить патчи им для исправления глюков с FreeBSD но когда это будет непонятно.

metacreo 05.12.2010 14:51

#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
в файле ~/mangos/dep/ACE_wrappers/ace/config.h.in

действительно помогает... собиреться на ура

Vladimir 08.12.2010 03:50

Но config-freebsd.h уже имеет

Цитата:

#if (__FreeBSD_version >= 320000)
# define ACE_HAS_REENTRANT_FUNCTIONS
# define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
# define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
#endif /* __FreeBSD_version >= 320000 */

Aspro 18.02.2011 00:21

metacreo не дописал чуть
Переходим туда:
Код:

#cd build

PSZ 04.04.2011 11:10

Только скриптдев на гит уже перешел. http://github.com/scriptdev2/scriptdev2

metacreo 05.04.2011 07:53

Спасибо. Точно.. перешёл. Поправил.
Код:

% git clone git://github.com/scriptdev2/scriptdev2.git ~/mangos/src/bindings/ScriptDev2

D_f 23.04.2014 21:17

Не знаю куда написать, поэтому тут пишу. =)
Скомпилировал CMaNGOS-4.3.4 по этому гайду. Все скомпилировалось и запустилось. Но после захода в игру никаких действий совершить невозможно. В лог пишет следующие:
SESSION: received not handled opcode UNKNOWN (0x2314)
SESSION: received not handled opcode UNKNOWN (0x1027) и т.д.
Я читал, что в Катаклизме стали рандомные опкоды. Что тогда необходимо для запуска? Пропатчить клиент?
Если можно, необходимо поместить сообщение в правильный пост.

lovepsone 25.04.2014 16:32

Цитата:

Сообщение от D_f (Сообщение 32722)
Не знаю куда написать, поэтому тут пишу. =)
Скомпилировал CMaNGOS-4.3.4 по этому гайду. Все скомпилировалось и запустилось. Но после захода в игру никаких действий совершить невозможно. В лог пишет следующие:
SESSION: received not handled opcode UNKNOWN (0x2314)
SESSION: received not handled opcode UNKNOWN (0x1027) и т.д.
Я читал, что в Катаклизме стали рандомные опкоды. Что тогда необходимо для запуска? Пропатчить клиент?
Если можно, необходимо поместить сообщение в правильный пост.

С исходниками идет патчер...

killer67 24.04.2015 21:09

Вложений: 1
Всем привет, уже замучился с FreeBSD, может вопрос простой, но я решения не нашел..



А теперь о проблеме:
Пробовал по разным мануалам устанавливать толку не вышло.
Ошибка возникла на шаге:
Цитата:

Подготавливаем сборку, указав пути для сервера:
Код:
Код:

% cmake -DPREFIX=/home/wow/server ..

Описание:
#uname -a
Код:

FreeBSD western-soft.com 9.2-RELEASE-p15 FreeBSD 9.2-RELEASE-p15 #0: Mon Nov  3 20:31:29 UTC 2014    root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
Пытаюсь установить mangos-wotlk.
Основные изменения (раз уж добрался до этого шага) нашел и применил, например:
1.
вместо:
Код:

git clone git://github.com/mangos/mangos.git
прописал так:
Код:

git clone git://github.com/cmangos/mangos-wotlk.git
соотвественно в место:
Код:

git clone git://github.com/scriptdev2/scriptdev2.git ~/mangos/src/bindings/ScriptDev2
Прописал:
Код:

git clone git://github.com/scriptdev2/scriptdev2.git ~/mangos-wotlk/src/bindings/ScriptDev2
В место:
Код:

cd mangos
Соотвественно:
Код:

cd mangos-wotlk
Птчи не применял, т.к. в ScriptDev2 вообще отсутствует папка patches и все файлы которые имею расширение: .patch

Порты обновлены, мангоса в них уже нету :resent:.

При выполнении команды получаю такой текст:
Цитата:

# cmake -DPREFIX=/usr/home/wow/mangos/comp/ ../src/mangos-wotlk/
-- The C compiler identification is GNU 4.2.1
-- The CXX compiler identification is GNU 4.2.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
-- Check for working CXX compiler: /usr/bin/CC
-- Check for working CXX compiler: /usr/bin/CC -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done

This script builds the MaNGOS server.
Options that can be used in order to configure the process:
CMAKE_INSTALL_PREFIX Path where the server should be installed to
PCH Use precompiled headers
DEBUG Debug mode
INCLUDE_BINDINGS_DIR Include a script library in src/bindings/ with the
defined name. the name must corespond to the name of
the folder and the folder must contain a valid
CMakeLists.txt
TBB_USE_EXTERNAL Use external TBB
USE_STD_MALLOC Use standard malloc instead of TBB
ACE_USE_EXTERNAL Use external ACE
To set an option simply type -D<OPTION>=<VALUE> after 'cmake <srcs>'.
Also, you can specify the generator with -G. see 'cmake --help' for more details
For example: cmake .. -DDEBUG=1 -DCMAKE_INSTALL_PREFIX=/opt/mangos

CMake Error at CMakeLists.txt:84 (message):
The parameter PREFIX has been removed. Please re-run CMake and use
CMAKE_INSTALL_PREFIX instead to define your installation location!


-- Configuring incomplete, errors occurred!
See also "/usr/home/wow/mangos/comp/CMakeFiles/CMakeOutput.log".
лог CMakeOutput.log - вложил Вложение 1286.

Читал в этой теме что компилить надо вне папки исходников, по этому нашел тему и пробовал по таким путям:
~/manos/comp/
~/manos/src/
Результат не меняется, сообщение остается тем же.

PS: 1. прошу прощения за большие цитаты, но не нашел кнопки спойлера.
2. Первый и второй пост имеют ошибки, предлагаю 2 решения, после установки либо на моем сервере либо на виртуалке кто нить поставит, каждую команду пробовать и после успеха вносить ее в топик. (Если получится, готов сам заняться этим вопросом.)

Mayss 25.04.2015 17:33

Месяц назад собрал wotlk на Debian, проблем не было, при этом не указывал не каких настроек.
попробуйте перед тем как собрать, выполнить в build, это
cmake -DPREFIX= -DCMAKE_INSTALL_PREFIX=/path/to/your/mangos/install path/to/your/source
Или если у вас исходники в ~/mangos-wotlk а после сборки Cmake проект в ~/mangos-wotlk/build и установить его в ~/mangos-wotlk/install нужно выполнить
cmake -DPREFIX= -DCMAKE_INSTALL_PREFIX=../install ..

С относительными путями или использовать абсолютные.

killer67 25.04.2015 18:12

Собрался.

Использовал эти команды:

Код:

git clone git://github.com/cmangos/mangos-wotlk.git mangos
Код:

git clone git://github.com/scriptdev2/scriptdev2.git ~/mangos/src/bindings/ScriptDev2
Код:

mkdir mangos/build
Код:

cd mangos/build
Код:

cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/home/wow/mangos/build/  -DPCH=1 -DACE_USE_EXTERNAL=0 -DDEBUG=1 -DTBB_USE_EXTERNAL=0;
Код:

make install clean
После чего возникали ошибки при компиляции.
файл:
/dep/src/g3dlite/FileSystem.cpp

Там код в начале файла:

Код:

#  include <io.h>

#define stat64 _stat64
#else
#  include <dirent.h>
#  include <fnmatch.h>
#  include <unistd.h>
#  define _getcwd getcwd
#  define _stat stat
#endif

namespace G3D {

Необходимо изменить на этот:

Код:

#  include <io.h>

#define stat64 _stat64
#elif defined(__FreeBSD__)
#  include <dirent.h>
#  include <fnmatch.h>
#  include <unistd.h>
#  define O_LARGEFILE 0100000
#  define stat64 stat
#  define _stat stat
#  define _getcwd getcwd
#else
#  include <dirent.h>
#  include <fnmatch.h>
#  include <unistd.h>
#  define _getcwd getcwd
#  define _stat stat
#endif

namespace G3D {

Взято от сюда: https://github.com/cmangos/issues/issues/72

PS. только ScriptDev2 у меня не появился конфиг и при запуске не работает sh скрипт, выдает not found, проверил каждую команду построчно (кроме конечно строк с переменными) все работает, но скрипт не запускает.

И после запуска отключает мод ahbot, пишет не найден конфиг, хотя его и на самом деле нет (

Mayss 25.04.2015 19:27

Файл ahbot.conf бота, находится в https://github.com/cmangos/mangos-wo...uctionHouseBot

Amaru 27.04.2015 17:12

Цитата:

Сообщение от killer67 (Сообщение 33910)
Собрался.

Использовал эти команды:

Код:

git clone git://github.com/cmangos/mangos-wotlk.git mangos
Код:

git clone git://github.com/scriptdev2/scriptdev2.git ~/mangos/src/bindings/ScriptDev2
Код:

mkdir mangos/build
Код:

cd mangos/build

После этого было проще делать через гуи -
Код:

ccmake ..
Там бы выбрал все параметры

killer67 15.08.2015 10:58

Пытаюсь установить WOT LK на FreeBSD 10 получаю ошибку:

Код:

gmake[3]: Entering directory '/usr/home/wow/mangos-wotlk/mangos/dep/tbb'
cd "./build/libs_release" && sh ../../build/generate_tbbvars.sh libs_release
cd "./build/libs_debug" && sh ../../build/generate_tbbvars.sh libs_debug
gmake -C "./build/libs_debug"  -r -f ../../build/Makefile.tbb cfg=debug tbb_root=../..
gmake[4]: Entering directory '/usr/home/wow/mangos-wotlk/mangos/dep/tbb/build/libs_debug'
g++  -c -MMD -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -m64 -fPIC -D__TBB_BUILD=1 -Wall    -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_hash_map.cpp
g++  -c -MMD -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -m64 -fPIC -D__TBB_BUILD=1 -Wall    -I../../src -I../../src/rml/include -I../../include ../../src/tbb/concurrent_queue.cpp
gmake[4]: g++: Command not found
../../build/common_rules.inc:93: recipe for target 'concurrent_hash_map.o' failed
gmake[4]: *** [concurrent_hash_map.o] Error 127
gmake[4]: g++: Command not found
gmake[4]: *** Waiting for unfinished jobs....
../../build/common_rules.inc:93: recipe for target 'concurrent_queue.o' failed
gmake[4]: *** [concurrent_queue.o] Error 127
gmake[4]: Leaving directory '/usr/home/wow/mangos-wotlk/mangos/dep/tbb/build/libs_debug'
Makefile:40: recipe for target 'tbb' failed
gmake[3]: *** [tbb] Error 2
gmake[3]: Leaving directory '/usr/home/wow/mangos-wotlk/mangos/dep/tbb'

При возникновении таких ошибок делаем так:
# cd /usr/local/bin
# rm -rf gcc
# rm -rf g++
# ln -s gcc48 gcc
# ln -s g++48 g++

(48 - Это версия которая у вас установлена)

killer67 17.08.2015 08:17

В общем кучу ошибок компиляции прошел, но в итоге наткнулся на такую:
Код:

/usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only handles version 2 information.
Пока не знаю как решить.

killdozer 22.09.2015 15:39

Собирал classic на freebsd 10.2, тоже наткнулся на такую ошибку при линковке.
Как я понял означает она, что формат отладочной информации включенный в код при компиляции "несколько" новее и дефолтный линкер в системе его не понимает.
дефолтный линкер у меня:
Код:

/usr/bin/ld -v
GNU ld 2.17.50 [FreeBSD] 2007-07-03

хотя есть и такой из binutils:
Код:

/usr/local/bin/ld -v
GNU ld (GNU Binutils) 2.25

с ходу не смог cmake заставить использовать линкер из binutils, особо не вникал.

поэтому принудительно заставил генерить отладочную инфу в старом варианте:
Код:

cmake ../classic -DCMAKE_INSTALL_PREFIX=/home/mangos/run -DINCLUDE_BINDINGS_DIR=ScriptDev2 -DDEBUG=1 -DCMAKE_CXX_FLAGS='-gdwarf-2 -gstrict-dwarf'
Это еще не все, почему то у меня cmake заставляет компилить g3dlite с помощью clang, поэтому принудительно делаем:
Код:

CC=gcc CXX=g++ cmake ........
и еще патч, иначе не соберется:
Код:

diff --git a/dep/include/g3dlite/G3D/System.h b/dep/include/g3dlite/G3D/System.h
index 3183064..ed14d4a 100755
--- a/dep/include/g3dlite/G3D/System.h
+++ b/dep/include/g3dlite/G3D/System.h
@@ -20,6 +20,10 @@
 #include "G3D/BinaryFormat.h"
 #include <string>
 
+#ifdef G3D_FREEBSD
+#  include <sys/_timeval.h>
+#endif
+
 #ifdef G3D_OSX
 #  include <CoreServices/CoreServices.h>
 #endif
diff --git a/dep/src/g3dlite/FileSystem.cpp b/dep/src/g3dlite/FileSystem.cpp
index e51098a..11729f4 100644
--- a/dep/src/g3dlite/FileSystem.cpp
+++ b/dep/src/g3dlite/FileSystem.cpp
@@ -31,6 +31,8 @@
 #  include <dirent.h>
 #  include <fnmatch.h>
 #  include <unistd.h>
+#  define O_LARGEFILE      0100000
+#  define stat64 stat
 #  define _getcwd getcwd
 #  define _stat stat
 #endif


killer67 22.09.2015 16:37

А такая ошибка не встречалась?

PHP код:

/usr/home/wow/mangos_wotlk/mangos/src/realmd/AuthSocket.cpp:826:53errorcannot pass object of non-POD type 'std::__1::nullptr_t' through variadic methodcall will abort at
      runtime 
***91;-Wnon-pod-varargs***93;
    
sha.UpdateBigNumbers(&t1, &_reconnectProof, &Knullptr);
                                                    ^
/
usr/include/c++/v1/cstddef:88:17noteexpanded from macro 'nullptr'
#define nullptr _VSTD::__get_nullptr_t()
                
^
/
usr/include/c++/v1/__config:341:15noteexpanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
              
^
6 warnings and 7 errors generated.
*** 
Error code 1

Stop
.
make***91;2***93;: stopped in /usr/home/wow/mangos_wotlk/server
*** Error code 1

Stop
.
make***91;1***93;: stopped in /usr/home/wow/mangos_wotlk/server
*** Error code 1

Stop
.
makestopped in /usr/home/wow/mangos_wotlk/server 


killdozer 22.09.2015 17:01

нет, последний раз собирал wotlk лет 5 назад, и он собирался )

killer67 05.03.2016 09:43

Не ужели за пол года так никто и не собирал mangos на FreeBSD 10.1 ???

На русском офф. форуме поддержка молчит (((

HKnix 24.10.2018 14:27

Доброго времени суток. Скачал Последние исходники mangos и scriptdev2, решил собрать под freebsd 11.2. Увидев отсутствие в scriptdev2 папки patches задался вопросом, а как теперь прикручивать scriptdev2 к мангосу?

NeatElves 25.10.2018 08:03

Никак, он уже прикручен к ядру.

HKnix 25.10.2018 14:40

вобщем сервер собрался без экстракторов.

[ 96%] Building CXX object contrib/vmap_extractor/vmapextract/CMakeFiles/vmap_extractor.dir/vmapexport.cpp.o
/usr/home/hk/mangos/compile/contrib/vmap_extractor/vmapextract/vmapexport.cpp:295:23: error: use of undeclared identifier
'fopen64'; did you mean 'fopen'?
if (FILE* h = fopen64(path, "rb"))
^~~~~~~
fopen
/usr/include/stdio.h:257:7: note: 'fopen' declared here
FILE *fopen(const char * __restrict, const char * __restrict);
^
1 error generated.
*** Error code 1


Текущее время: 10:07. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS