LINUX.ORG.RU

Прошу помощи в тестировании и исправлении ebuild-а kicad

 , ,


0

2

Здравствуйте, пробую работать на Gentoo Linux(второй раз), правда беда, софта, а именно ебилдов маловато или они устарели, хотя концепция у дистрибутива просто замечательная. Решил исправить ситуацию, подправить ebuild-ы по важным для меня программам.

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

Исправленный ebuild sci-electronics/kicad-99999999

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# rafaelmartins: Please try to keep the live ebuild synchronized with
# the latest snapshot ebuild. e.g.:
# cp kicad-YYYYMMDD_pXXXX.ebuild kicad-99999999.ebuild

EAPI="3"
PYTHON_DEPEND=2

WX_GTK_VER="2.8"

inherit cmake-utils wxwidgets fdo-mime gnome2-utils bzr python

DESCRIPTION="Electronic Schematic and PCB design tools."
HOMEPAGE="http://kicad.sourceforge.net"

SRC_URI=""

LICENSE="GPL-2"
SLOT="0"
EBZR_REPO_URI="lp:kicad"

KEYWORDS=""
if [[ "${PV}" != "99999999" ]]; then
	KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
fi

IUSE="dev-doc debug doc examples minimal python nanometr gost sexpr"

CDEPEND="x11-libs/wxGTK:2.8[X,opengl]"
DEPEND="${CDEPEND}
	>=dev-util/cmake-2.6.0
	>=dev-libs/boost-1.40[python?]
	app-arch/xz-utils
	dev-doc? ( app-doc/doxygen )"
RDEPEND="${CDEPEND}
	sys-libs/zlib
	sci-electronics/electronics-menu"

pkg_setup() {
        python_set_active_version 2
}

src_unpack() {
	if [[ "${PV}" != "99999999" ]]; then
		EBZR_REVISION="${PV#*_p}"
	fi
	bzr_src_unpack

	if [[ "${PV}" = "99999999" ]]; then
		EBZR_REVISION=""
	else
		local date="${PV%_p*}"
		EBZR_REVISION="before:${date:0:4}-${date:4:2}-${date:6:2},23:59:59"
	fi

	# FIXME: we need to send patches for bzr.eclass, to avoid the weird
	# declarations of ${P} below.

	if ! use minimal; then
		EBZR_REPO_URI="lp:~kicad-lib-committers/kicad/library" \
			EBZR_PROJECT="kicad-library" \
			P="${P}/kicad-library" \
			EBZR_CACHE_DIR="kicad-library" \
			bzr_fetch
	fi

	if use doc; then
		EBZR_REPO_URI="lp:~kicad-developers/kicad/doc" \
			EBZR_PROJECT="kicad-doc" \
			P="${P}/kicad-doc" \
			EBZR_CACHE_DIR="kicad-doc" \
			bzr_fetch
	fi
}

src_prepare() {
	sed -i \
		-e '/add_subdirectory(template)/ a \
			add_subdirectory(kicad-doc)\
			add_subdirectory(kicad-library)' \
		-e 's/create_svn_version_header()/#create_svn_version_header()/' \
		-e 's/ -O2 / /' \
		CMakeLists.txt || die 'sed failed'

	sed -i \
		-e 's/Scientific;Development/Engineering;Electronics/' \
		resources/linux/mime/applications/*.desktop || die 'sed failed'

	# Use native boost
	sed -i -e '/Boost/s/^#check_find_package/check_find_package/' \
		-e '/Boost/s/^#find_package/find_package/' CMakeLists.txt || die "sed failed"

	# Add important doc files
	sed -i -e 's/INSTALL.txt/AUTHORS.txt CHANGELOG.txt README.txt TODO.txt/' CMakeLists.txt || die "sed failed"

	# Fix desktop files
	rm resources/linux/mime/applications/eeschema.desktop
	sed -i -e 's/Development;//' resources/linux/mime/applications/kicad.desktop || die "sed failed"

	# Handle optional minimal install
	if use minimal ; then
		sed -i -e '/add_subdirectory(template)/d' \
			-e '/add_subdirectory(kicad-library)/d' CMakeLists.txt || die "sed failed"
	fi

	# Add documentation and fix necessary code if requested
	if use doc ; then
		sed -i -e "s/subdirs.Add( wxT( \"kicad\" ) );/subdirs.Add( wxT( \"${PF}\" ) );/" \
			-e '/subdirs.Add( _T( "help" ) );/d' common/edaappl.cpp || die "sed failed"
	else
		sed -i -e '/add_subdirectory(kicad-doc)/d' CMakeLists.txt || die "sed failed"
	fi

	# Install examples in the right place if requested
	if use examples ; then
		sed -i -e 's:${KICAD_DATA}/demos:${KICAD_DOCS}/examples:' CMakeLists.txt || die "sed failed"
	else
		sed -i -e '/add_subdirectory(demos)/d' CMakeLists.txt || die "sed failed"
	fi
}

src_configure() {
	need-wxwidgets unicode

	mycmakeargs="${mycmakeargs}
		-DKICAD_MINIZIP=OFF
		-DKICAD_CYRILLIC=ON
		-DwxUSE_UNICODE=ON
		$(cmake-utils_use gost KICAD_GOST)
		$(cmake-utils_use nanometr USE_PCBNEW_NANOMETRES)
		$(cmake-utils_use sexpr USE_PCBNEW_SEXPR_FILE_FORMAT)
		-DKICAD_AUIMANAGER=OFF
		-DKICAD_AUITOOLBAR=OFF
		$(cmake-utils_use python KICAD_SCRIPTING)
		$(cmake-utils_use python KICAD_SCRIPTING_MODULES)
		-DKICAD_DOCS=/usr/share/doc/${PF}
		-DKICAD_HELP=/usr/share/doc/${PF}"

	if [[ "${PV}" = "99999999" ]]; then
		mycmakeargs="${mycmakeargs} -DKICAD_TESTING_VERSION=ON"
		echo "======Testing====="
	else
		mycmakeargs="${mycmakeargs} -DKICAD_STABLE_VERSION=ON"
	fi

	cmake-utils_src_configure
}

src_compile() {
	cmake-utils_src_compile
	use dev-doc && doxygen Doxyfile
}

src_install() {
	cmake-utils_src_install
	if use dev-doc ; then
		insinto /usr/share/doc/${PF}
		doins uncrustify.cfg
		cd Documentation
		doins -r GUI_Translation_HOWTO.pdf guidelines/UIpolicies.txt doxygen/doxygen
	fi
}

pkg_preinst() {
	gnome2_icon_savelist
}

pkg_postinst() {
	fdo-mime_desktop_database_update
	fdo-mime_mime_database_update
	gnome2_icon_cache_update

	if use minimal ; then
		ewarn "If the schematic and/or board editors complain about missing libraries when you"
		ewarn "open old projects, you will have to take one or more of the following actions :"
		ewarn "- Install the missing libraries manually."
		ewarn "- Remove the libraries from the 'Libs and Dir' preferences."
		ewarn "- Fix the libraries' locations in the 'Libs and Dir' preferences."
		ewarn "- Emerge kicad without the 'minimal' USE flag."
		elog
	fi
	elog "You may want to emerge media-gfx/wings if you want to create 3D models of components."
}

pkg_postrm() {
	fdo-mime_desktop_database_update
	fdo-mime_mime_database_update
	gnome2_icon_cache_update
}

Всё замечательно собирается до момента в 100% , где происходят какие-то нарушения с линковкой

Linking CXX executable pcbnew
cd /var/tmp/portage/sci-electronics/kicad-99999999-r3/work/kicad-99999999_build/pcbnew && /usr/bin/cmake -E cmake_link_script CMakeFiles/pcbnew.dir/link.txt --verbose=1

....стена текста подряд

make[2]: Выход из каталога `/var/tmp/portage/sci-electronics/kicad-99999999-r3/work/kicad-99999999_build'
/usr/bin/cmake -E cmake_progress_report /var/tmp/portage/sci-electronics/kicad-99999999-r3/work/kicad-99999999_build/CMakeFiles  83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
[100%] Built target pcbnew
make[1]: Выход из каталога `/var/tmp/portage/sci-electronics/kicad-99999999-r3/work/kicad-99999999_build'
make: *** [all] Ошибка 2
emake failed

Подробный лог

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

И если кто хочет/может добавте в официальный поисковик ебилдов или overlay ,когда заработает. Сам я с английским не особо в ладах и решил с начало здесь помощи поискать.

★★★★★

Ответ на: комментарий от fat_angel
In file included from /var/tmp/portage/sci-electronics/kicad-99999999/work/kicad-99999999/include/wxstruct.h:46:0,
                 from /var/tmp/portage/sci-electronics/kicad-99999999/work/kicad-99999999/common/dialog_about/AboutDialog_main.cpp:22:
/var/tmp/portage/sci-electronics/kicad-99999999/work/kicad-99999999/include/common.h:50:9: ошибка: #error "You must use '--with-gnomeprint' or '--with-gtkprint' in your wx library configuration."
megabaks ★★★★ ()
Ответ на: комментарий от megabaks

--with-gtkprint в ебилде wx не фигурирует и, видимо, не задан при сборке по умолчанию (если такой ключ вообще существует), раз сабж матерится на его отсутствие
ещё вопросы будут?

megabaks ★★★★ ()

на Debian все собралось без запинок, так что проблема чисто гентушная.

больше никогда не делай таких глупых выводов до полного понимания ситуации!

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

покажи полный лог

На pastebin грузиться не захотел вот http://rghost.ru/39347163

приведенный поисковик вообще не годный - ни разу вот годный

не знаю на счет годности ищу в обоих, т.к. в годном поисковике ебилдов Elmer-а например нет.

DR_SL ★★★★★ ()
Ответ на: комментарий от megabaks

больше никогда не делай таких глупых выводов до полного понимания ситуации!

Это не вывод , это сообщения для того чтобы люди знали что проблема не в кривом релизе, что у разрабов иногда бывает. На дебиане работает схема.

cmake .. (ну там с параметрами)
make
make install

На генте же , не из ебилда, он не видит библиотеки wxWidget , при конфигурации.... но это так мелочи.

DR_SL ★★★★★ ()
Ответ на: комментарий от megabaks

Ок, прошу прощения попробуйте собрать с флагами,

USE=«doc examples gost nanometr python sexpr»

Проблема скорее всего в флаге python и его нововведениях, так как его я добавил совсем недавно(посмотрите в поисковик исходный ебилд если надо убедиться) .

DR_SL ★★★★★ ()
Ответ на: комментарий от megabaks

Да у меня библиотека wxGTK собрана с этими флагами.

DR_SL ★★★★★ ()

на багзиллу патч к ебилду отправить не забудьте. В дереве kicad есть, только замаскированный...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от megabaks

Странно, проблема в моей системе? мборка продолжилась но не сильно дальше.

Linking CXX executable pcbnew
[100%] Building CXX object pcbnew/CMakeFiles/_pcbnew.dir/zones_non_copper_type_functions.cpp.o
[100%] Building CXX object pcbnew/CMakeFiles/_pcbnew.dir/zones_polygons_insulated_copper_islands.cpp.o
[100%] Built target pcbnew
[100%] Building CXX object pcbnew/CMakeFiles/_pcbnew.dir/zones_polygons_test_connections.cpp.o
[100%] Building CXX object pcbnew/CMakeFiles/_pcbnew.dir/zones_test_and_combine_areas.cpp.o
[100%] Building CXX object pcbnew/CMakeFiles/_pcbnew.dir/class_footprint_wizard.cpp.o
[100%] Building CXX object pcbnew/CMakeFiles/_pcbnew.dir/__/common/dialogs/dialog_page_settings.cpp.o
Scanning dependencies of target FixSwigImportsScripting
[100%] Fixing swig_import_helper
swig_import_helper fixed for /var/tmp/portage/sci-electronics/kicad-99999999-r4/work/kicad-99999999_build/pcbnew/pcbnew.py
[100%] Built target FixSwigImportsScripting
[100%] Building CXX object pcbnew/CMakeFiles/_pcbnew.dir/__/common/base_units.cpp.o
Linking CXX shared module _pcbnew.so
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: ../3d-viewer/lib3d-viewer.a(3d_aux.cpp.o): relocation R_X86_64_32 against `.rodata.str4.8' can not be used when making a shared object; recompile with -fPIC
../3d-viewer/lib3d-viewer.a: could not read symbols: Bad value
collect2: выполнение ld завершилось с кодом возврата 1
make[2]: *** [pcbnew/_pcbnew.so] Ошибка 1
make[1]: *** [pcbnew/CMakeFiles/_pcbnew.dir/all] Ошибка 2
make: *** [all] Ошибка 2
emake failed

DR_SL ★★★★★ ()
Ответ на: комментарий от DR_SL

хм...чот в голову пока ничего не приходит
покажи хоть выхлопы
emerge --info
и с какими флагами собраны зависимости

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

dev-libs/boost 1.48.0-r2 eselect python

dev-lang/python 2.7.3-r2(2.7)examples gdbm ipv6 ncurses readline sqlite ssl threads wide-unicode xml

x11-libs/wxGTK 2.8.12.1(2.8) X gnome gstreamer opengl sdl tiff

sys-libs/zlib 1.2.5.1-r2 minizip

DR_SL ★★★★★ ()
Ответ на: комментарий от megabaks

Все норм, это возможно проблема 64 битной архитектуры, т.к. на Debian я собирал в i486. Норм потому как в рассылке появилась эта ошибка, а значит виноват не ебилд.

Thanks for the answer Miguel, it's the same hack I made. Some trickier linker error results as well:

Linking CXX shared module _pcbnew.so /usr/bin/ld: ../3d-viewer/lib3d-viewer.a(3d_aux.cpp.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

Google point to multiple of faults, CMake and Boost included. Binutils 2.21.53.20110810-0ubuntu5.1 and GCC 4:4.6.1-2ubuntu5 here.

-Vesa

Спасибо за помощь!!!, закрою как только пофиксят

DR_SL ★★★★★ ()
Ответ на: комментарий от megabaks

Изменил флаг, собралось!!! в ебилде это надо править(как временное изменение флагов компиляции)?:)

Я вообще очень неграмотный в плане поддержки собственного дистрибутива)

DR_SL ★★★★★ ()
Ответ на: комментарий от DR_SL

эм...есть екласс flag-o-matic
в нём есть функция append-cflags
прикрути проверку архитектуры в src_configure
что-то типа

if use amd64;then
append-cflags -fPIC
fi

megabaks ★★★★ ()
Ответ на: комментарий от DR_SL

ну и отпишись тогда туда, откуда цитату притащил с аналогичным косяком

megabaks ★★★★ ()
Ответ на: комментарий от DR_SL

3d_aux.cpp

ой!
append-cxxflags же
хотя можно и оба
пробуй, короче
у меня во-первых 32, во-вторых уже пересобрал wx на свои юзы обратно и снёс зависимости лишние

megabaks ★★★★ ()

Мадам и месье, конечный вариант ебилда.

# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

# rafaelmartins: Please try to keep the live ebuild synchronized with
# the latest snapshot ebuild. e.g.:
# cp kicad-YYYYMMDD_pXXXX.ebuild kicad-99999999.ebuild

EAPI="3"
PYTHON_DEPEND=2

WX_GTK_VER="2.8"

inherit cmake-utils wxwidgets fdo-mime gnome2-utils bzr python flag-o-matic

DESCRIPTION="Electronic Schematic and PCB design tools."
HOMEPAGE="http://kicad.sourceforge.net"

SRC_URI=""

LICENSE="GPL-2"
SLOT="0"
EBZR_REPO_URI="lp:kicad"

KEYWORDS=""
if [[ "${PV}" != "99999999" ]]; then
	KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
fi

IUSE="dev-doc debug doc examples minimal python nanometr gost sexpr"

CDEPEND="x11-libs/wxGTK:2.8[X,opengl,gnome]"
DEPEND="${CDEPEND}
	>=dev-util/cmake-2.6.0
	>=dev-libs/boost-1.40[python?]
	app-arch/xz-utils
	dev-doc? ( app-doc/doxygen )"
RDEPEND="${CDEPEND}
	sys-libs/zlib
	sci-electronics/electronics-menu"

pkg_setup() {
        python_set_active_version 2
}

src_unpack() {
	if [[ "${PV}" != "99999999" ]]; then
		EBZR_REVISION="${PV#*_p}"
	fi
	bzr_src_unpack

	if [[ "${PV}" = "99999999" ]]; then
		EBZR_REVISION=""
	else
		local date="${PV%_p*}"
		EBZR_REVISION="before:${date:0:4}-${date:4:2}-${date:6:2},23:59:59"
	fi

	# FIXME: we need to send patches for bzr.eclass, to avoid the weird
	# declarations of ${P} below.

	if ! use minimal; then
		EBZR_REPO_URI="lp:~kicad-lib-committers/kicad/library" \
			EBZR_PROJECT="kicad-library" \
			P="${P}/kicad-library" \
			EBZR_CACHE_DIR="kicad-library" \
			bzr_fetch
	fi

	if use doc; then
		EBZR_REPO_URI="lp:~kicad-developers/kicad/doc" \
			EBZR_PROJECT="kicad-doc" \
			P="${P}/kicad-doc" \
			EBZR_CACHE_DIR="kicad-doc" \
			bzr_fetch
	fi
}

src_prepare() {
	sed -i \
		-e '/add_subdirectory(template)/ a \
			add_subdirectory(kicad-doc)\
			add_subdirectory(kicad-library)' \
		-e 's/create_svn_version_header()/#create_svn_version_header()/' \
		-e 's/ -O2 / /' \
		CMakeLists.txt || die 'sed failed'

	sed -i \
		-e 's/Scientific;Development/Engineering;Electronics/' \
		resources/linux/mime/applications/*.desktop || die 'sed failed'

	# Use native boost
	sed -i -e '/Boost/s/^#check_find_package/check_find_package/' \
		-e '/Boost/s/^#find_package/find_package/' CMakeLists.txt || die "sed failed"

	# Add important doc files
	sed -i -e 's/INSTALL.txt/AUTHORS.txt CHANGELOG.txt README.txt TODO.txt/' CMakeLists.txt || die "sed failed"

	# Fix desktop files
	rm resources/linux/mime/applications/eeschema.desktop
	sed -i -e 's/Development;//' resources/linux/mime/applications/kicad.desktop || die "sed failed"

	# Handle optional minimal install
	if use minimal ; then
		sed -i -e '/add_subdirectory(template)/d' \
			-e '/add_subdirectory(kicad-library)/d' CMakeLists.txt || die "sed failed"
	fi

	# Add documentation and fix necessary code if requested
	if use doc ; then
		sed -i -e "s/subdirs.Add( wxT( \"kicad\" ) );/subdirs.Add( wxT( \"${PF}\" ) );/" \
			-e '/subdirs.Add( _T( "help" ) );/d' common/edaappl.cpp || die "sed failed"
	else
		sed -i -e '/add_subdirectory(kicad-doc)/d' CMakeLists.txt || die "sed failed"
	fi

	# Install examples in the right place if requested
	if use examples ; then
		sed -i -e 's:${KICAD_DATA}/demos:${KICAD_DOCS}/examples:' CMakeLists.txt || die "sed failed"
	else
		sed -i -e '/add_subdirectory(demos)/d' CMakeLists.txt || die "sed failed"
	fi
}

src_configure() {
	if use amd64;then
		append-cxxflags -fPIC
	fi
	need-wxwidgets unicode

	mycmakeargs="${mycmakeargs}
		-DKICAD_MINIZIP=OFF
		-DKICAD_CYRILLIC=ON
		-DwxUSE_UNICODE=ON
		$(cmake-utils_use gost KICAD_GOST)
		$(cmake-utils_use nanometr USE_PCBNEW_NANOMETRES)
		$(cmake-utils_use sexpr USE_PCBNEW_SEXPR_FILE_FORMAT)
		-DKICAD_AUIMANAGER=OFF
		-DKICAD_AUITOOLBAR=OFF
		$(cmake-utils_use python KICAD_SCRIPTING)
		$(cmake-utils_use python KICAD_SCRIPTING_MODULES)
		-DKICAD_DOCS=/usr/share/doc/${PF}
		-DKICAD_HELP=/usr/share/doc/${PF}"

	if [[ "${PV}" = "99999999" ]]; then
		mycmakeargs="${mycmakeargs} -DKICAD_TESTING_VERSION=ON"
		echo "======Testing====="
	else
		mycmakeargs="${mycmakeargs} -DKICAD_STABLE_VERSION=ON"
	fi

	cmake-utils_src_configure
}

src_compile() {
	use dev-doc && doxygen Doxyfile
}

src_install() {
	cmake-utils_src_install
	if use dev-doc ; then
		insinto /usr/share/doc/${PF}
		doins uncrustify.cfg
		cd Documentation
		doins -r GUI_Translation_HOWTO.pdf guidelines/UIpolicies.txt doxygen/doxygen
	fi
}

pkg_preinst() {
	gnome2_icon_savelist
}

pkg_postinst() {
	fdo-mime_desktop_database_update
	fdo-mime_mime_database_update
	gnome2_icon_cache_update

	if use minimal ; then
		ewarn "If the schematic and/or board editors complain about missing libraries when you"
		ewarn "open old projects, you will have to take one or more of the following actions :"
		ewarn "- Install the missing libraries manually."
		ewarn "- Remove the libraries from the 'Libs and Dir' preferences."
		ewarn "- Fix the libraries' locations in the 'Libs and Dir' preferences."
		ewarn "- Emerge kicad without the 'minimal' USE flag."
		elog
	fi
	elog "You may want to emerge media-gfx/wings if you want to create 3D models of components."
}

pkg_postrm() {
	fdo-mime_desktop_database_update
	fdo-mime_mime_database_update
	gnome2_icon_cache_update
}

Спасибо, за участие, через 6 часов уеду на неделю в места практически без интернета, но к пятнице постараюсь отправить репорт в багзиллу генты.

Есть интерес к пакетам Salome, Elmer и их обновлению.

DR_SL ★★★★★ ()
Ответ на: комментарий от DR_SL

запилил в stuff
а в багзилле жуть - баг неподтверждённый, а фикс в дереве
дебилы, чо

megabaks ★★★★ ()
Ответ на: комментарий от DR_SL

Есть интерес к пакетам Salome, Elmer и их обновлению.

это не пакеты - это целые тонные пакетов
каждый из них - это куча ебилдов
так что вряд ли найдёшь желающих, да тем более ещё и узко-специфичные

megabaks ★★★★ ()
Ответ на: комментарий от megabaks

Тем не менее, интерес есть да и ебилды для затравки тоже есть. У меня сейчас подправленный freecad-0.13,надо будет сюда выложить.

Мне сказали что аттестовываться по писанию ебилдов, надо на каких-то quiz примерах??? можно ссылку??

Есть ещё linuxcnc , но он либо под ядро 2.6, либо из джита, но в обоих случаях требует накладку реалтайм патча на ядро.

DR_SL ★★★★★ ()
Ответ на: комментарий от DR_SL

Мне сказали что аттестовываться по писанию ебилдов, надо на каких-то quiz примерах??? можно ссылку??

о_О???
самому бы кто дал

megabaks ★★★★ ()
28 сентября 2012 г.
Ответ на: комментарий от megabaks

А можно выпилить те строки из include/common.h.

 48 /*
 49 #if defined( __WXGTK__ )
 50 #   if !wxUSE_LIBGNOMEPRINT && !wxUSE_GTKPRINT && !SWIG
 51 #       error "You must use '--with-gnomeprint' or '--with-gtkprint' in your wx library configuration."
 52 #   endif
 53 #endif
 54 */

У меня собралось и работает. Наверно даже печатать будет, не проверял.

https://lists.launchpad.net/kicad-developers/msg07833.html

amaora ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.