Автор Тема: Vsftpd + glibc-2.5.0 - компил. от сорс на slack 12  (Прочетена 1468 пъти)

carpo

  • Напреднали
  • *****
  • Публикации: 19
    • Профил
Здравейте!

Администрирам сървър, който до скоро беше със Slackware 10.2, но реших да го обновя. Сложих Slackware 12.0.0.
Пренасянето на настройките, потребителски данни и т.н. мина успешно, с някои забележки, естествено...
Проблема, който не ми дава мира е следният:
докато машината беше със стария слак, имах инсталиран vsftpd 2.0.5 + PAM 0.9x.x, като беше настроен със виртуални потребители и т.н. Всичко компилирах от сорс.

При опит за компилиране на vsftpd 2.0.5  на слак 12 се сблъсквам със следния проблем:
Примерен код

sysdeputil.c:162: error: expected declaration specifiers or '...' before 'capset'
sysdeputil.c:162: error: expected declaration specifiers or '...' before 'header'
sysdeputil.c:162: error: expected declaration specifiers or '...' before 'data'
In file included from sysdeputil.c:170:
/usr/include/sys/sendfile.h: In function '_syscall2':
/usr/include/sys/sendfile.h:35: error: storage class specified for parameter 'sendfile'
sysdeputil.c:186: error: storage class specified for parameter 'environ'
sysdeputil.c:187: error: storage class specified for parameter 's_proctitle_space'
sysdeputil.c:187: error: parameter 's_proctitle_space' is initialized
sysdeputil.c:188: error: storage class specified for parameter 's_proctitle_inited'
sysdeputil.c:188: error: parameter 's_proctitle_inited' is initialized
sysdeputil.c:189: error: storage class specified for parameter 's_p_proctitle'
sysdeputil.c:189: error: parameter 's_p_proctitle' is initialized
sysdeputil.c:201: error: storage class specified for parameter 'do_sendfile'
sysdeputil.c:202: error: storage class specified for parameter 'vsf_sysutil_setproctitle_internal'
sysdeputil.c:203: error: storage class specified for parameter 's_proctitle_prefix_str'
sysdeputil.c:278: error: storage class specified for parameter 's_pamh'
sysdeputil.c:279: error: storage class specified for parameter 's_pword_str'
sysdeputil.c:281: error: storage class specified for parameter 'pam_conv_func'
sysdeputil.c:282: error: storage class specified for parameter 'vsf_auth_shutdown'
sysdeputil.c:288: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:383: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:398: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:436: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:474: error: storage class specified for parameter 'do_checkcap'
sysdeputil.c:478: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:497: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:514: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:527: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:604: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:641: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:796: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:803: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:809: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:856: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:889: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:930: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:935: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:976: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:1012: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:1128: error: storage class specified for parameter 's_uwtmp_inserted'
sysdeputil.c:1129: error: storage class specified for parameter 's_utent'
sysdeputil.c:1134: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:1173: error: expected '=', ',', ';', 'asm' or '' before '{' token
sysdeputil.c:1189: error: old-style parameter declarations in prototyped function definition
sysdeputil.c:162: error: parameter name omitted
sysdeputil.c:162: error: parameter name omitted
sysdeputil.c:162: error: parameter name omitted
sysdeputil.c:1189: error: expected '{' at end of input
make: *** [sysdeputil.o] Error 1


Реших, че има нещо гнило в цялата работа, и порових из интернет. Открих следното - цък.
На форума от линка, господата казват общо взето, че понеже слак 12 идвал без PAM (цък), видите ли, трябвало да го зарязваме, и да минаваме на друго дистро. Е да, ама аз не ща!

Рових из сорсовете - както се вижда от кода по-горе, vsftpd във файла си sysdeputil.c включва /usr/include/sys/sendfile.h, който, стига да погледне човек във него, си пише, че е част от glibc-2.5 (това във Slackware 12).

Според вас, не е ли редно автора на иначе страхотната програма vsftpd да вземе да я погледне - изпратил съм му e-mail, описващ проблема - в случая - съвместимост със glibc-2.5.0;
и нещо по-"практически приложимо" : ще опита ли някой от вас, със система с glibc версия поне 2.5.0 да компилира vsftpd-2.0.5 (сайт) от сорс, за да знам струва ли си мъката да опитвам да обновявам glibc ?

Благодарности!
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1452
    • Профил
Vsftpd + glibc-2.5.0 - компил. от сорс на slack 12
« Отговор #1 -: Oct 16, 2007, 19:32 »
Здравейте,

При мен (glibc-2,6.1) и непроменен builddefs.h (виж INSTALL) се компилира (Gentoo).
$cat builddefs.h
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H

#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */
...край...
Успех. Румен
Активен

carpo

  • Напреднали
  • *****
  • Публикации: 19
    • Профил
Vsftpd + glibc-2.5.0 - компил. от сорс на slack 12
« Отговор #2 -: Oct 17, 2007, 08:07 »
Румба, благодаря ти, че си отделил време да опиташ компилация от сорс!

Сега следва сложното за мене - обновяване на glibc на жива и иначе много дробре работеща система...
...или измисляне на пач, който оправя нещата поне при мен...

Благодаря!
Активен

carpo

  • Напреднали
  • *****
  • Публикации: 19
    • Профил
Vsftpd + glibc-2.5.0 - компил. от сорс на slack 12
« Отговор #3 -: Oct 17, 2007, 10:22 »
И така, за всички желаещи да компилират vsftpd-2.0.5 + PAM от сорс на ОС Slackware 12.0.0,
предлагам да използват следния пач:
Примерен код

--- a/sysdeputil.c   2006-07-03 01:14:10.000000000 +0300
+++ b/sysdeputil.c   2007-10-17 09:40:18.000000000 +0300
@@ -159,7 +159,7 @@
 #include <linux/capability.h>
 #include <errno.h>
 #include <syscall.h>
-_syscall2(int, capset, cap_user_header_t, header, const cap_user_data_t, data)
+//_syscall2(int, capset, cap_user_header_t, header, const cap_user_data_t, data)
 /* Gross HACK to avoid warnings - linux headers overlap glibc headers */
 #undef FDMASK


Точна последователност от нужни действия:
1) запазвате горния код, например под името vsftpd-2.0.5-glibc-2.5-patch
2) разархивирате vsftpd-2.0.5.tar.gz :
Примерен код

user@machine$ cd /tmp/compile
user@machine$ gunzip -c /път/до/vsftpd-2.0.5.tar.gz | tar -xv
user@machine$ cd vsftpd-2.0.5
user@machine$ cat /път/до/vsftpd-2.0.5-glibc-2.5-patch | patch -p1


Следва редактиране на builddefs.h по ваш вкус, като например ако искате PAM поддръжка, то трябва предварително да сте инсталирали PAM....
Пускаме компилирането:
Примерен код

user@machine$ time make
user@machine$ su -c "make install"

... и вече имаме изпълнимият файл /usr/local/sbin/vsftpd

Приготвяте и конфигурационните файлове, и сте готови!

Изпробвано и работещо на Slackware 12. По време на компилиране на пачнатия vsftpd излизат няколко warning-а, но не забелязвам това да дава някакво отражение в работата на компилирания сървър.

Успех!
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
GLIBC Update
Настройка на програми
kol40 1 2103 Последна публикация Nov 23, 2002, 12:56
от HipHop
glibc documentation
Настройка на програми
hippo 0 1476 Последна публикация May 26, 2004, 00:35
от hippo
Glibc-2.4
Хардуерни и софтуерни проблеми
ZEN 0 1702 Последна публикация May 30, 2006, 09:47
от ZEN
Glibc 2.0 Проблем
Настройка на програми
padi 1 2074 Последна публикация Sep 06, 2006, 17:33
от
Glibc-2.7 счупи линукса ми 3 пъти
Настройка на програми
yavor76 8 2920 Последна публикация Nov 05, 2007, 11:42
от yavor76