The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Установка Proftpd на FreeBSD6 из портов с конверсией KOI8-R->CP1251 (ftp rus patch charset koi8-r)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: ftp, rus, patch, charset, koi8-r,  (найти похожие документы)
From: boss-chifra <boss-chifra@mail.ru.> Newsgroups: email Date: Mon, 3 May 2006 14:31:37 +0000 (UTC) Subject: Установка Proftpd на FreeBSD6 из портов с конверсией KOI8-R->CP1251 Оригинал: http://2.uspenski.z8.ru/install_proftpd_freebsd6.txt Много у кого осталась нерешенной проблема использования на юниксовых серверах файлов с названиями в кодировке koi8 клиентами под windows. Аналогичную проблему испытывают японцы со своими языковыми кодировками. Их решение ("ProFTPD - iconv() charset conversion patch" http://home.h01.itscom.net/para/software/m...v/index-e.html) можно и использовать под нас. На своем сервере FreeBSD мне захотелось, что бы proftpd был установлен из портов, но был пропатченным. Итак, приступим. что имеем FreeBSD nat2.spb.ru 6.0-RELEASE FreeBSD 6.0-RELEASE #1: Mon Mar 6 11:03:40 MSK 2006 [email protected]:/usr/src/sys/i386/compile/NAT2 i386 cd /usr/ports/ftp/proftpd cat distinfo MD5 (proftpd-1.3.0rc3.tar.bz2) = 050c3e2caec0d930f8a331e7b3ec0931 SHA256 (proftpd-1.3.0rc3.tar.bz2) = ee181d7fe22b849589d9d886e5a4ed40fbe205cc14f8f4c95cc1db629c95ca97 SIZE (proftpd-1.3.0rc3.tar.bz2) = 1377481 Нам потребуется libiconv cd /usr/ports/converters/libiconv make install make clean Распакуем исходные тексты proftpd cd /usr/ports/ftp/proftpd make fetch make extract Скачаем сам патч в каталог /usr/ports/ftp/proftpd/work cd /usr/ports/ftp/proftpd/work fetch http://home.h01.itscom.net/para/software/misc/proftpd-iconv/pack/proftpd-1.2.10-iconv.patch.gz теперь делаем ход конем mv proftpd-1.3.0rc3 proftpd-1.2.10 патчим командой gzip -cd proftpd-1.2.10-iconv.patch.gz |patch -p0 обратный конь mv proftpd-1.2.10 proftpd-1.3.0rc3 теперь избавляемся от проблем от буквы Я в этом файле cd /usr/ports/ftp/proftpd/work/proftpd-1.3.0rc3/src/netio.c надо найти следующий кусок кода (или похожий на него): switch (mode) { case IAC: switch (cp) { case WILL: case WONT: case DO: case DONT: mode = cp; continue; case IAC: mode = 0; break; default: /* Ignore */ mode = 0; continue; } break; case WILL: case WONT: pr_netio_printf(out_nstrm, "%c%c%c", IAC, DONT, cp); mode = 0; continue; case DO: case DONT: pr_netio_printf(out_nstrm, "%c%c%c", IAC, WONT, cp); mode = 0; continue; default: if (cp == IAC) { mode = cp; continue; } break; } и вырезаем его целиком, начиная от команды switch и до завершающей фигурной скобки что будет находиться гдето от 913 до 954 строчки теперь немного переделываем /usr/ports/ftp/proftpd/Makefile добавляем такие строчки между любыми ".if defined(WITH_***)": MODULES:=${MODULES}:mod_codeconv INCLUDEDIRS:=${INCLUDEDIRS}:${PREFIX}/include LIBDIRS:=${LIBDIRS}:${PREFIX}/lib я добавил после .if defined(WITH_README) а также находим строчку CONFIGURE_ARGS= --localstatedir=/var/run \ это где-то 39 строчка и приводим к такому виду CONFIGURE_ARGS= --localstatedir=/var/run \ --sysconfdir=${EXAMPLESDIR}/etc \ --disable-sendfile \ --with-modules=mod_codeconv \ --with-libraries=/usr/local/lib \ --with-includes=/usr/local/include тоесть мы добавили это для того, что бы configure выполнилось с ключами --with-modules=mod_codeconv --with-libraries=/usr/local/lib --with-includes=/usr/local/include все с Makefile закончено сохраняем и выходим cd /usr/ports/ftp/proftpd/ Конфигурируем командой make configure после этого правим work/proftpd-1.3.0rc3/Make.rules находим LIBS= и в конец строки добавляем -liconv т.е приводим к виду LIBS= -lsupp -lcrypt -lutil -lwrap -lpam -liconv После этого уже делаем make make install Теперь в /usr/local/etc/proftpd.conf добавляем CharsetLocal KOI8-R CharsetRemote CP1251 Все!!! Теперь можно в качестве клиента любой браузер использовать без таблиц кодировки, т.е. имея к примеру на сервере unix+proftpd+samba клиенты под windows смогут без проблем работать с файлами в win1251 кодировке. P.S. Проблема с которой столкнулся при использования анонимнрго доступа, по умолчанию для этого используется пользователь ftp, а при создании его через sysinsyall ему дается шелл /nonexistent которого нет в /etc/shells и нам остается только дописать в конец файла echo '/nonexistent' >> /etc/shells и все будя окей. или пользоваться опцией RequireValidShell off RequireValidShell -- Allow connections based on /etc/shells RequireValidShell [ RequireValidShell on|off] Default RequireValidShell on у всех кого возникли проблемы сборки размещаю мой пакадж http://2.uspenski.z8.ru/proftpd-1.3.0.r3.tgz или ftp://ftp.opennet.ru/pub/net/ftp/proftpd-1.3.0.r3.tgz cat /var/db/ports/proftpd/options # This file is auto-generated by 'make config'. # No user-servicable parts inside! # Options for proftpd-1.3.0.r3 _OPTIONS_READ=proftpd-1.3.0.r3 WITHOUT_IPV6=true WITHOUT_LDAP=true WITHOUT_MYSQL=true WITHOUT_POSTGRESQL=true WITHOUT_OPENSSL=true WITHOUT_QUOTA=true WITH_IFSESSION=true WITH_README=true WITH_RATIO=true WITH_REWRITE=true WITH_WRAP=true WITHOUT_RADIUS=true ваш boss-chifra<САБАКА>mail.ru Взято с http://www.opennet.me обобщено и немного добавлено от себя (с миру по нитке) http://www.opennet.me/base/patch/rus_proftpd.txt.html

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, bosschifra (?), 18:26, 19/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    есть дополнения
    смотреть оригинал
     
  • 1.2, bosschifra (?), 14:02, 22/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    проверено на proftpd-1.3.0
    полет нормальный
     
  • 1.3, Serj7770 (?), 05:48, 05/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Господа помогите! FreeBSD 6.0, ProFTPD 1.3.0

    src/netio.o(.text+0xdb3): In function 'pr_netio_printf':
    : undefined reference to 'local2remote'
    modules/mod_ls.o(.text+0x65f): In function 'sendline':
    : undefined reference to 'local2remote'
    gmake: *** [proftpd] Ошибка 1
    *** Error code 2

     
     
  • 2.4, bosschifra (?), 11:03, 05/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    посмотри оригинал статьи http://2.uspenski.z8.ru/install_proftpd_freebsd6.txt
    похоже забыл написать
    LIBS= -lsupp -lcrypt  -lutil -lwrap  -lpam -liconv
     
     
  • 3.12, pnck (??), 08:25, 21/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    у меня тоже возникла такая проблема...
    > cat /usr/ports/ftp/proftpd/work/proftpd-1.3.0/Make.rules | grep -i libs
    LIBS= -lsupp -lcrypt  -lutil -lldap -llber  -lwrap  -lpam -liconv
    CURSES_LIBS=-lncurses
    делаю make
    выдает:
    cc -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/table.o src/regexp.o src/dirtree.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/response.o src/ident.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_auth_pam.o modules/mod_ifsession.o modules/mod_ldap.o modules/mod_wrap.o modules/mod_rewrite.o modules/mod_readme.o modules/mod_ratio.o modules/module_glue.o  -L/usr/ports/ftp/proftpd/work/proftpd-1.3.0/lib -L/usr/local/lib -lsupp -lcrypt -lutil /usr/local/lib/libldap.so -lssl -lcrypto /usr/local/lib/liblber.so -lwrap -lpam /usr/local/lib/libiconv.so -Wl,--rpath -Wl,/usr/local/lib -Wl,--rpath -Wl,/usr/local/lib
    src/netio.o(.text+0xbd9): In function 'pr_netio_printf':
    : undefined reference to 'local2remote'
    modules/mod_ls.o(.text+0x4b7): In function 'sendline':
    : undefined reference to 'local2remote'
    gmake: *** [proftpd] Ошибка 1
    *** Error code 2

    Stop in /usr/ports/ftp/proftpd.

     
     
  • 4.13, boss_chifra (?), 10:11, 21/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >у меня тоже возникла такая проблема...
    >> cat /usr/ports/ftp/proftpd/work/proftpd-1.3.0/Make.rules | grep -i libs
    >LIBS= -lsupp -lcrypt  -lutil -lldap -llber  -lwrap  -lpam -liconv
    >
    >CURSES_LIBS=-lncurses
    >делаю make
    >выдает:
    >cc -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/table.o src/regexp.o src/dirtree.o src/support.o src/netaddr.o
    >src/inet.o src/child.o src/parser.o src/log.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o
    >src/netio.o src/response.o src/ident.o src/data.o src/modules.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o
    >src/var.o modules/mod_core.o modules/mod_xfer.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_auth_pam.o
    >modules/mod_ifsession.o modules/mod_ldap.o modules/mod_wrap.o modules/mod_rewrite.o modules/mod_readme.o modules/mod_ratio.o modules/module_glue.o  -L/usr/ports/ftp/proftpd/work/proftpd-1.3.0/lib -L/usr/local/lib -lsupp
    >-lcrypt -lutil /usr/local/lib/libldap.so -lssl -lcrypto /usr/local/lib/liblber.so -lwrap -lpam /usr/local/lib/libiconv.so -Wl,--rpath -Wl,/usr/local/lib
    >-Wl,--rpath -Wl,/usr/local/lib
    >src/netio.o(.text+0xbd9): In function 'pr_netio_printf':
    >: undefined reference to 'local2remote'
    >modules/mod_ls.o(.text+0x4b7): In function 'sendline':
    >: undefined reference to 'local2remote'
    >gmake: *** [proftpd] Ошибка 1
    >*** Error code 2
    >
    >Stop in /usr/ports/ftp/proftpd.


    ребят все работает честное слово
    я уже 5 раз с разными версиями proftpd пробовал все собирается и работает. Где-то у вас ошибка в действиях. если хотите скачайте пакадж или скажите с какими make config вам нужно  я кину вам пакадж. Поверте все правильно, проверте еще раз все.

     

  • 1.5, Zont (?), 17:14, 18/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а порт сделать не сутьба?
    в /usr/ports/russian/
     
     
  • 2.6, bosschifra (?), 17:41, 18/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >а порт сделать не сутьба?
    >в /usr/ports/russian/

    если честно то лениво, работа с фрей несвязана вот и нет столько свободного времени чтоб еще порты клепать, кому надо те пакадж скачают.

     

  • 1.7, Zont (?), 13:21, 19/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ===

    P.S.
    Проблема с которой столкнулся при использования анонимнрго доступа,
    по умолчанию для этого используется пользователь ftp, а при создании
    его через sysinsyall ему дается шелл /nonexistent которого нет в
    /etc/shells и нам остается только дописать в конец файла
    echo '/nonexistent' >> /etc/shells и все будя окей.
    ===
    так проще

    RequireValidShell            no

    в конфиг :)

     
     
  • 2.9, bosschifra (?), 14:43, 19/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    повторюсь
    оригинал
    http://2.uspenski.z8.ru/install_proftpd_freebsd6.txt
    и там об этом давным давно написано
     
     
  • 3.11, Аноним (-), 09:38, 20/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >http://2.uspenski.z8.ru/install_proftpd_freebsd6.txt
    >и там об этом давным давно написано

    Поправили бы на opennet статью тоже, благо кнопка "Правка" над статьей есть.

     

  • 1.8, Zont (?), 13:23, 19/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а кстати патчик не пашет...

    заливаю "ямакаси" создаёца - "ямtedit"

    заливаюца файлы через тотал командер

    как проблема решаеца?

     
     
  • 2.10, bosschifra (?), 19:58, 19/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    короче сначала разберись а потом флуди
    все работает
    и проблема не в FTP а в твоем TC
    ведь наверно тотал командером заливал?
    возми и зделай файл ящик.txt а потом выдели его и Shift+F4 и увидишь свое ямtedit
    вот и делай выводы отсюда что FTP тут непричем и глюки это TC
     

  • 1.14, pnck (??), 16:09, 21/07/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    iconv-2 0_3 Charset conversion library and utilities libiconv-1 9 2_2 ... большой текст свёрнут, показать
     
     
  • 2.15, bosschifra (?), 19:22, 21/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >src/netio.o(.text+0xbd9): In function 'pr_netio_printf':
    >: undefined reference to 'local2remote'
    >modules/mod_ls.o(.text+0x4b7): In function 'sendline':
    >: undefined reference to 'local2remote'
    >gmake: *** [proftpd] Ошибка 1
    >*** Error code 2
    >
    >Stop in /usr/ports/ftp/proftpd.
    >
    >:(


    ребят вы меня уже надоели )))
    скажите какае файлы вам выложить чтоб вы сравнили и нашли ошибку ...
    или весь /usr/ports/ftp/proftpd вам зашарить чтоб сами только make да make install дали а?
    в будни выложу только скажите что?
    я и на 5.4 и на 6.0 ставил все окей

     
     
  • 3.16, pnck (??), 19:47, 21/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    да я сам этот патч ставил без проблем :)
    правда давно это было
    месяца три назад
    в этом файлике mod_ls.с функиция local2remote определяется как
    extern char* local2remote (char*)
    на скоко я знаю си это значит что тело функция сама объявленна в другом месте... а именно в инклудах... но ни в одном файле из папки /usr/rorts/ftp/proftpd поиск на строку local2remote не принес ни каких результатов... как Вы видете я все делал по инструкции (возможно я где то накосматил, но это маловероятно поскольку повторял я все шаги ни один раз)... у меня ужо появляеться спортивный инетерес :) ...
    буду оч признателен если Вы выложите данный файлик mod_ls.с
     
  • 3.17, pnck (??), 10:38, 23/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    объясняю в чем прикол в статье написанно:

    добавляем такие строчки между любыми ".if defined(WITH_***)":

            MODULES:=${MODULES}:mod_codeconv
            INCLUDEDIRS:=${INCLUDEDIRS}:${PREFIX}/include
            LIBDIRS:=${LIBDIRS}:${PREFIX}/lib

    на самом деле это не так... главное чтобы этот модуль был включен в конфиге... если этот модуль не включен то ничего и не обработаеться поэтому и мейк не проходил... после того как я преместил этот кусок в другой виз все заработало точнее я поместил его после:
    .if !defined(WITHOUT_README)
    все заработало :) спасибо :)

     
     
  • 4.18, boss_chifra (?), 10:40, 24/07/2006 [^] [^^] [^^^] [ответить]  
  • +/
    цитирую себя

    добавляем такие строчки между любыми ".if defined(WITH_***)":

            MODULES:=${MODULES}:mod_codeconv
            INCLUDEDIRS:=${INCLUDEDIRS}:${PREFIX}/include
            LIBDIRS:=${LIBDIRS}:${PREFIX}/lib


    я добавил после .if defined(WITH_README)


    т.е. нужно было делать как написано точь в точь


    >>я добавил после .if defined(WITH_README)

     
     
  • 5.19, xeno (??), 20:53, 26/11/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Тем, у кого вылезает undefined reference to 'local2remote' при make, есть такое мнение:в файле Mаke.rules посмотреть на строчку
    LDFLAGS=-L$(top_srcdir)/lib
    Неободимо добавить в эту строчку путь к libiconv.so, для фрибсд это /usr/local/lib, т.е. станет
    LDFLAGS=-L$(top_srcdir)/lib -L/usr/local/lib
    После этого, make должен прекратить ругаться на отсутствие библиотеки...
     

  • 1.20, drill (?), 13:28, 11/02/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    описанный здесь метод не подходит для версии 1.3.1 если ставить из портов фрибсд.
    есть выход http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2007-January/111393.htm
    у меня перкрасно установилось и работает.
     
     
  • 2.21, Daemon66 (?), 11:21, 20/02/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше уж смотреть сюда:
    http://www.freebsd.org/cgi/query-pr.cgi?pr=108244
     
     
  • 3.22, leonidnev (??), 13:03, 25/02/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Не  работает патч от туда :(
     

  • 1.23, userok (?), 18:22, 10/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    при попытки запуска демона выдаёт ошибку -
    Starting proftpd.
    - IPv4 getaddrinfo 'server.localnet' error: hostname nor servname provided, or not known
    - warning: unable to determine IP address of 'server.localnet'
    - error: no valid servers configured
    - Fatal: error processing configuration file '/usr/local/etc/proftpd.conf'

    что может быть??? помогите ПЛЗ

     
     
  • 2.24, Lenin (??), 18:26, 10/04/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >при попытки запуска демона выдаёт ошибку -
    >Starting proftpd.
    > - IPv4 getaddrinfo 'server.localnet' error: hostname nor servname provided, or not
    >known
    > - warning: unable to determine IP address of 'server.localnet'
    > - error: no valid servers configured
    > - Fatal: error processing configuration file '/usr/local/etc/proftpd.conf'
    >
    >что может быть??? помогите ПЛЗ

    Настройте нормально DNS. В частности у хоста должно быть нормальное (разрешаемое в адрес) имя.

     
     
  • 3.26, userok (?), 18:54, 10/04/2007 [^] [^^] [^^^] [ответить]  
  • +/
    сенк, уже разобрался... теперь никак не получается под anonymous файло на запись сделать

    сорри за тупость, с англицким у меня плохо

     

  • 1.25, userok (?), 18:53, 10/04/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а всё туплю в hosts была бага
     
  • 1.27, sondrex (??), 16:45, 10/08/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Большая просьба помочь, я новичок в UNIX стораюсь все выполнить по инструкции но у меня нет интернета на машине как быть а то он после первой же команды лезет на сайты достучаться не может и пишет ошибку, так что я застрял на первой команде
    Нам потребуется libiconv

            cd /usr/ports/converters/libiconv
            make install
            make clean

     
  • 1.28, bohdan200 (ok), 22:22, 27/09/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Нашел патч для 1.3.0
    http://www.hakusan.tsg.ne.jp/tjkawa/software/misc/proftpd-iconv/pack/proftpd-
     
  • 1.29, eGuru (ok), 15:22, 23/10/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Патч, указанный в статье, с текущей версией proftpd-1.3.1 не работает, требуется доводка напильником. Я довел, куда положить, не знаю.

    Как уже описывали, в Makefile порта надо добавить строчки для корректного подключения нового модуля и библиотеки libiconv. Я добавил их к опции порта, устанавливающей кириллический патч. Привожу кусок полностью:

    .if defined (WITH_CYRFIX)
    EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-cyrillic-fix-netio.c
    MODULES:=${MODULES}:mod_codeconv
    INCLUDEDIRS:=${INCLUDEDIRS}:${LOCALBASE}/include
    LIBDIRS:=${LIBDIRS}:${LOCALBASE}/lib
    PROFTPD_LIBS+=  -lintl -L${LOCALBASE}/lib
    .endif

    В целом, с текущим состоянием порта proftpd-1.3.1_1, из действий описанных в статье, требуется только установка патча для iconv и коррекция Makefile порта.

     
     
  • 2.30, Simplefest (??), 07:16, 22/12/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Патч, указанный в статье, с текущей версией proftpd-1.3.1 не работает, требуется доводка
    >напильником. Я довел, куда положить, не знаю.

    У меня все встало, все работает, кроме одной маленькой особенности:

    если заходить любым нормальным ftp-клиентом, то все ок, а если windows explorer, то proftpd стреляется "kernel: pid 60221 (proftpd), uid 900: exited on signal 11".

    С версией 1.2.10 такой проблемы не наблюдалось, на 1.3.1 наблюдается как на FreeBSD, так и на Linux.

    Никто с таким не сталкивался, как можно решить проблему?

     

  • 1.31, Vedymak (?), 23:43, 04/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    по крайней мере под 1.3.2 rc2 не надо так маяться...
    в conf-файле прописать:

    LangEngine on
    UseEncoding KOI8-R CP1251

    и будет вам счастье ;)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру