commit: 402f78f998fece2197214236a1cee732bf0682ff Author: chunhui ouyang <jack9603301 <AT> 163 <DOT> com> AuthorDate: Wed Jun 8 14:19:35 2022 +0000 Commit: Florian Schmaus <flow <AT> gentoo <DOT> org> CommitDate: Wed Jun 8 14:19:35 2022 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=402f78f9
dev-libs/libmodbus: Merge libmodbus required by linuxcnc, ebuild modified from linuxcnc community sci-misc/linuxcnc: Merge libcnc required by linuxcnc, ebuild modified from linuxcnc community Signed-off-by: chunhui ouyang <jack9603301 <AT> 163.com> dev-libs/libmodbus/Manifest | 1 + dev-libs/libmodbus/libmodbus-3.0.6.ebuild | 25 ++++++ dev-libs/libmodbus/metadata.xml | 8 ++ sci-misc/linuxcnc/linuxcnc-9999.ebuild | 128 ++++++++++++++++++++++++++++++ sci-misc/linuxcnc/metadata.xml | 14 ++++ 5 files changed, 176 insertions(+) diff --git a/dev-libs/libmodbus/Manifest b/dev-libs/libmodbus/Manifest new file mode 100644 index 000000000..f062bb47b --- /dev/null +++ b/dev-libs/libmodbus/Manifest @@ -0,0 +1 @@ +DIST libmodbus-3.0.6.tar.gz 504757 SHA256 046d63f10f755e2160dc56ef681e5f5ad3862a57c1955fd82e0ce036b69471b6 SHA512 47a271b3677822701bac924f3e3245e3db72dbadfe1d860ae5d8171b32d2dbb1c761a351d055eafc661a15bc13cb60b793b2b0f9654bbafcf01b457d51991dca WHIRLPOOL f586f4e98083d9eccda7bc49dfda2ff24b167e50fb7cbf9a515066cef179b8a43190daecbf2de0871d09d443ff5d1ec871a77590b8d6f0d992354912a80d5215 diff --git a/dev-libs/libmodbus/libmodbus-3.0.6.ebuild b/dev-libs/libmodbus/libmodbus-3.0.6.ebuild new file mode 100644 index 000000000..52a8c9267 --- /dev/null +++ b/dev-libs/libmodbus/libmodbus-3.0.6.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# Thanks to the original author for the code, [email protected] for the code + +EAPI=8 + +DESCRIPTION="Modbus library which supports RTU communication over a serial line or a TCP link" +HOMEPAGE="http://libmodbus.org/" +SRC_URI="http://libmodbus.org/releases/${P}.tar.gz" + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="static-libs" + +src_configure() { + econf \ + --disable-silent-rules \ + $(use_enable static-libs static) +} + +src_install() { + emake install DESTDIR="${D}" + use static-libs || rm "${D}"/usr/*/libmodbus.la +} diff --git a/dev-libs/libmodbus/metadata.xml b/dev-libs/libmodbus/metadata.xml new file mode 100644 index 000000000..f5359f51c --- /dev/null +++ b/dev-libs/libmodbus/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> +<email>[email protected]</email> +<name>Michael Weber</name> +</maintainer> +</pkgmetadata> diff --git a/sci-misc/linuxcnc/linuxcnc-9999.ebuild b/sci-misc/linuxcnc/linuxcnc-9999.ebuild new file mode 100644 index 000000000..00d229f69 --- /dev/null +++ b/sci-misc/linuxcnc/linuxcnc-9999.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ +# Thanks to the original author's code, [email protected]'s code, because the original code is outdated, this ebuild has been modified portably + +EAPI="7" + +PYTHON_COMPAT=( python3_10 ) + +inherit autotools eutils flag-o-matic multilib python-single-r1 git-r3 + +DESCRIPTION="LinuxCNC " +HOMEPAGE="http://linuxcnc.org/" +#SRC_URI="mirror://sourceforge/gentoocnc/distfiles/${P}.tar.gz" +#SRC_URI="https://github.com/LinuxCNC/linuxcnc/archive/2.7.zip" +EGIT_REPO_URI="https://github.com/LinuxCNC/linuxcnc.git https://gitclone.com/github.com/LinuxCNC/linuxcnc.git" + +S="${WORKDIR}"/linuxcnc-9999/src + +LICENSE="LGPL-3" +SLOT="linuxcnc-9999" +KEYWORDS="~amd64 ~x86" +IUSE="+python +uspace +X +gtk -rt gstreamer modbus simulator usb" +# TODO: add shmdrv use flag + +# --disable-python uses python anyways and fails so python is a required use flag +REQUIRED_USE=" + python + python? ( ${PYTHON_REQUIRED_USE} ) + rt? ( !simulator ) + " + +DEPEND="dev-lang/tcl + dev-lang/tk + dev-tcltk/tkimg + dev-tcltk/tclx + dev-libs/boost[python] + modbus? ( <dev-libs/libmodbus-3.1 ) + dev-tcltk/bwidget + gtk? ( x11-libs/gtk+ ) + gstreamer? ( + dev-python/gst-python:0.10 + media-libs/gst-plugins-base:0.10 + ) + || ( + net-analyzer/openbsd-netcat + net-analyzer/netcat6 + ) + x11-libs/libXinerama + usb? ( virtual/libusb ) + dev-lang/python:3.10[tk] + $(python_gen_cond_dep 'dev-python/lxml[${PYTHON_USEDEP}]') + $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]') + $(python_gen_cond_dep 'dev-python/configobj[${PYTHON_USEDEP}]') + $(python_gen_cond_dep 'dev-python/pillow[tk,${PYTHON_USEDEP}]') + media-libs/mesa + x11-apps/mesa-progs + X? ( + x11-libs/libXaw + $(python_gen_cond_dep 'dev-python/python-xlib[${PYTHON_USEDEP}]') + ) + rt? ( sys-kernel/rt-sources ) + virtual/opengl + virtual/glu + ${PYTHON_DEPS} + sys-devel/gettext + sys-process/procps + sys-process/psmisc + net-firewall/iptables + media-gfx/graphviz + $(python_gen_cond_dep 'dev-python/pyopengl[${PYTHON_USEDEP}]') + $(python_gen_cond_dep 'dev-python/pygobject[${PYTHON_USEDEP}]') + x11-libs/gtksourceview:3.0 +" +RDEPEND="${DEPEND} + python? ( dev-python/yapps )" + +src_prepare() { + default + eautoreconf +} + +src_configure() { + #myconf="--prefix=${EPREFIX}/usr --with-kernel-headers=/usr/src/linux/ $(use_with modbus libmodbus)" + myconf="--prefix=${EPREFIX}/usr --enable-non-distributable=yes --with-boost-python=boost_python310 $(use_with modbus libmodbus)" + + use !gtk && myconf="${myconf} --disable-gtk" + use rt && myconf="${myconf} --with-realtime=uspace" + use simulator && myconf="${myconf} --with-realtime=uspace" + use !usb && myconf="${myconf} --without-libusb-1.0" +# use rtai && myconf="${myconf} --with-realtime=${EPREFIX}/usr/realtime --with-module-dir=${EPREFIX}/usr/lib/linuxcnc/rtai/" + use X && myconf="${myconf} --with-x" + + # TODO: fix that - get python version + #use python && myconf="${myconf} --with-python=/usr/bin/python3.10" + use !python && myconf="${myconf} --disable-python" + + econf ${myconf} +} + +src_install() { + emake DESTDIR="${D}" install + + local envd="${T}/51linuxcnc" + cat > "${envd}" <<-EOF + LDPATH="${EPREFIX}/usr/$(get_libdir)/linuxcnc" + EOF + doenvd "${envd}" + + insinto "/usr/share/linuxcnc/" + doins Makefile.inc + + insinto "/etc/linuxcnc/" + doins "../scripts/rtapi.conf" + + insinto "/usr/bin/" + doins "../scripts/rip-environment" + + doicon "../linuxcncicon.png" + make_desktop_entry linuxcnc LinuxCNC linuxcnc 'Science;Robotics' +} + +pkg_postinst() { + elog "The compiled software may not be redistributed due to use of packages with incompatible licenses." + elog "Opening machine configuration files from older Versions can crash the application as it cannot load old named modules, e.g. probe_parport.so not found" + elog "This is not a Gentoo- or build related error. It looks like linuxcnc 2.8 will have some kind of converter for them." + elog "If you created them with stepconf. You can just open the stepconf file and create them new. Don't forget to backup any manual changes (e.g. backlash!) from the .hal and .ini files and make them again." +} diff --git a/sci-misc/linuxcnc/metadata.xml b/sci-misc/linuxcnc/metadata.xml new file mode 100644 index 000000000..49ea295fe --- /dev/null +++ b/sci-misc/linuxcnc/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>[email protected]</email> + </maintainer> + <use> + <flag name="rt">Build with RT_PREEMPT threads modules</flag> + <flag name="simulator">Build with posix threads (no realtime)</flag> + <flag name="modbus">Build modbus libraries</flag> + <flag name="xenomai">Build with xenomai userland threads</flag> + <flag name="rtai">Build with realtime threads support</flag> + </use> +</pkgmetadata>
