Pure-ftpd поддержка кодировок

Форум для технических вопросов на любые темы от новичков
antidote
Сообщения: 4
Зарегистрирован: 10 июл 2017, 16:37

Сообщение antidote » 10 июл 2017, 19:07

Доброго времени суток.

Keenetic Ultra, прошивка 2.10.A.4.0-0, entware-3x.

Столкнулся с проблемой что вижу не читаемые имена файлов в FTP-клиенте. У сервера есть опции FileSystemCharset и ClientCharset, но при их установке ничего не меняется и в логе пишется

Код: Выделить всё

pure-ftpd(?@?) [WARNING] Unknown run-time option

Pure-ftpd отключен в UI и переустановлен через opkg, вероятно пакет собран без --with-rfc2640

Судя по всему у меня файловая система в UTF-8 (NTFS). По крайней мере при подборе преобразования UTF-8 -> CP1251 читаются нормальные слова. Есть ли какое-либо решение? Спасибо.

antidote
Сообщения: 4
Зарегистрирован: 10 июл 2017, 16:37

Сообщение antidote » 12 июл 2017, 08:37

Посмотрел еще немножко. Проблема в том, что сервер не отдает UTF8 в ответ на FEAT. Хотя если пользоваться клиентом, который умеет использовать кодировку, игнорируя ответ сервера, то всё хорошо.

Код: Выделить всё

Command:	FEAT
Response:	211-Extensions supported:
Response:	 EPRT
Response:	 IDLE
Response:	 MDTM
Response:	 SIZE
Response:	 MFMT
Response:	 REST STREAM
Response:	 MLST type*;size*;sizd*;modify*;UNIX.mode*;UNIX.uid*;UNIX.gid*;unique*;
Response:	 MLSD
Response:	 AUTH TLS
Response:	 PBSZ
Response:	 PROT
Response:	 ESTA
Response:	 PASV
Response:	 EPSV
Response:	 SPSV
Response:	 ESTP
Response:	211 End.

antidote
Сообщения: 4
Зарегистрирован: 10 июл 2017, 16:37

Сообщение antidote » 18 июл 2017, 17:14

В общем раз такая пляска пошла, решил ставить эксперименты и собрать пакет, но в итоге пока без положительного результата:
1. скачал репозиторий на виртуалку с Debian 9 32-bit
2. посмотрел что выдает моя железка (повторюсь, у меня Ultra)

Код: Выделить всё

/opt/sbin# uname -mrsvo
Linux 3.4.113 #1 SMP Sat Jul 15 00:30:16 MSK 2017 mips GNU/Linux

3. На основании п.2 выбираю mips-3x.config

Код: Выделить всё

    make clean
    make dirclean;
    cp ./configs/mips-3x.config ./.config
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    make defconfig 
# убеждаюсь что потом совпадает платформа в конфиге CONFIG_TARGET_mips_3x=y
    $make prereq 
# Checking 'rsync'... ok. Пока всё хорошо.
    make tools/install
    make/toolchain/install
    make target/compile


Правлю, меняю with-mysql (не нужен мне) на with-rfc2640
./feeds/rtndev/pureftpd/MakeFile

Код: Выделить всё

#
# Copyright (C) 2011-2017 Entware
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=pureftpd
PKG_VERSION:=1.0.46
PKG_REV:=91f9f02606dde5199dc531a4ffa6479a5b6546c0
PKG_RELEASE:=1

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_URL:=https://github.com/jedisct1/pure-ftpd.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_VERSION:=$(PKG_REV)

PKG_FIXUP:=autoreconf
PKG_INSTALL:=1

include $(INCLUDE_DIR)/package.mk

define Package/pureftpd
	SECTION:=net
	CATEGORY:=Network
	SUBMENU:=File Transfer
	DEPENDS:=+libsodium +libopenssl
	TITLE:=Pure FTP server
	URL:=http://www.pureftpd.org/
	MAINTAINER:=Entware team, http://entware.net
endef

define Package/pureftpd/description
 Pure-FTPd is a fast, production-quality, standard-conformant FTP server,
 based upon Troll-FTPd.
endef

CONFIGURE_ARGS += \
	--with-everything \
	--with-virtualchroot \
	--without-capabilities \
	--with-paranoidmsg \
	--with-rfc2640 \
	--with-tls \
	--with-certfile=/opt/etc/ssl/private/pure-ftpd.pem

define Package/pureftpd/conffiles
/opt/etc/pureftp/pure-ftpd.conf
endef

define Package/pureftpd/install
	$(INSTALL_DIR) $(1)/opt/bin
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/opt/bin/pure-* $(1)/opt/bin
	$(INSTALL_DIR) $(1)/opt/sbin
	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/opt/sbin/pure-* $(1)/opt/sbin
	$(INSTALL_DIR) $(1)/opt/etc/init.d
	$(INSTALL_CONF) $(PKG_INSTALL_DIR)/opt/etc/pure-* $(1)/opt/etc
	$(INSTALL_BIN) files/S65pureftpd $(1)/opt/etc/init.d
endef

$(eval $(call BuildPackage,pureftpd))
Свернуть

4. Собираю пакет

Код: Выделить всё

make package/pureftpd/compile

Потом переношу в роутер файлы из ./build_dir/target-mips_mips32r2_glibc-2.25/:
  • opt/bin
  • opt/etc
  • opt/sbin
Выставляю chmod -R 755, chown -R root:root и копирую файлы по местам. (пусть пока будет так, с .ipk пока не разбирался, дойду позже).

В итоге pure-ftpd не стартует:
 

Код: Выделить всё

/opt/sbin# ./pure-ftpd
./pure-ftpd: line 1: 4
p4: not found
PuTTY./pure-ftpd: line 1: ▒▒▒p▒▒p▒▒▒▒▒▒▒▒▒▒▒▒▒▒: Invalid argument
PuTTYPuTTY./pure-ftpd: line 1:ELWn▒▒
T0▒▒0/▒d: Invalid argument
PuTTY./pure-ftpd: line 2: K
                           p5▒@▒▒K: Invalid argument
./pure-ftpd: line 3: can't open : no such file
./pure-ftpd: line 3: ▒R▒▒b-▒▒DU: Invalid argument
./pure-ftpd: line 3: pppo▒▒o▒▒▒I▒o▒▒▒o▒▒▒E▒▒▒▒▒▒▒o▒
Y▒0+▒▒7g: Invalid argument
./pure-ftpd: line 4: syntax error: unexpected word (expecting ")")
Свернуть

Если несложно, подтолкните к разгадке. Собирать для mipsel?

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1237
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 18 июл 2017, 17:46

antidote писал(а):Источник цитаты решил ставить эксперименты и собрать пакет

Сборке посвящен целый раздел форума. Вы ошиблись с выбором архитектуры. Все дальнейшие вопросы по сборке в этой теме будут удалены. Создайте тему в другом разделе, если вопросы еще есть.

antidote
Сообщения: 4
Зарегистрирован: 10 июл 2017, 16:37

Сообщение antidote » 18 июл 2017, 21:00

Благодарю. С mipsel все получилось как надо. Кодировки вернулись в норму. FEAT теперь возвращает UTF8 как и должен был изначально.


Вернуться в «Песочница»

Кто сейчас на конференции

Всего 1 посетитель :: 1 зарегистрированный, 0 скрытых и 0 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: CommonCrawl [Bot] и 0 гостей