mirror of
https://github.com/outbackdingo/UltraGrid.git
synced 2026-03-03 00:15:36 +00:00
PACKAGING: XIMEA drivers package specification
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
SHELL=/bin/bash
|
||||
DEB_BUILD_ROOT=$(shell realpath . )/debian/tmp
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
echo "no configure here"
|
||||
|
||||
override_dh_auto_build:
|
||||
echo "dummy build"
|
||||
|
||||
override_dh_auto_install:
|
||||
mkdir -p $(DEB_BUILD_ROOT)/usr/src/ultragrid-externals/ximea_sdk_placeholder
|
||||
ln -s ximea_sdk_placeholder $(DEB_BUILD_ROOT)/usr/src/ultragrid-externals/ximea_sdk
|
||||
touch $(DEB_BUILD_ROOT)/usr/src/ultragrid-externals/ximea_sdk_placeholder/.keep
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,12 @@
|
||||
# see https://en.opensuse.org/openSUSE:Build_Service_Debian_builds#packageName.dsc
|
||||
DEBTRANSFORM-TAR: dummy.tar.gz
|
||||
DEBTRANSFORM-FILES-TAR: debian.tar.gz
|
||||
DEBTRANSFORM-SERIES: debian-patches-series
|
||||
Format: 1.0
|
||||
Source: ultragrid-proprietary-drivers-ximea-placeholder
|
||||
Binary: ultragrid-proprietary-drivers-ximea-placeholder
|
||||
Architecture: any
|
||||
Version: 20200227
|
||||
Standards-Version: 3.9.6
|
||||
Maintainer: Lukas Rucka <ultragrid-dev@cesnet.cz>
|
||||
Build-Depends: debhelper (>= 7.0.50~), build-essential, coreutils, bash
|
||||
@@ -0,0 +1,52 @@
|
||||
Name: ultragrid-proprietary-drivers-ximea-placeholder
|
||||
Version: 20200227
|
||||
Release: 1%{?dist}
|
||||
Summary: Ultragrid drivers ximea pseudo package
|
||||
Group: Applications/Multimedia
|
||||
|
||||
License: GPL
|
||||
URL: http://www.ultragrid.cz
|
||||
|
||||
# replace this line with generated conflicts
|
||||
Provides: ultragrid-proprietary-drivers-ximea-nightly
|
||||
Provides: ultragrid-proprietary-drivers-ximea-release-1.6
|
||||
|
||||
BuildRequires: make, coreutils
|
||||
|
||||
Source0: dummy.tar.gz
|
||||
|
||||
%description
|
||||
Inject dummy dependency
|
||||
And create empty .keep file in correspoximeang location
|
||||
|
||||
# hack over the way fedora ignores dependences in /usr/lib/dir/*.so
|
||||
%define _use_internal_dependency_generator 0
|
||||
%define _missing_build_ids_terminate_build 0
|
||||
|
||||
%prep
|
||||
#%setup -q
|
||||
tar -xvf %{SOURCE0}
|
||||
|
||||
%build
|
||||
%define debug_package %{nil}
|
||||
echo "dummy build"
|
||||
|
||||
%install
|
||||
mkdir -p ${RPM_BUILD_ROOT}/%{_prefix}/src/ultragrid-externals/ximea_sdk_placeholder
|
||||
touch ${RPM_BUILD_ROOT}/%{_prefix}/src/ultragrid-externals/ximea_sdk_placeholder/.keep
|
||||
ln -s ximea_sdk_placeholder ${RPM_BUILD_ROOT}/%{_prefix}/src/ultragrid-externals/ximea_sdk
|
||||
|
||||
export NO_BRP_CHECK_RPATH=true
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{_prefix}/src/ultragrid-externals
|
||||
%{_prefix}/src/ultragrid-externals/ximea_sdk_placeholder
|
||||
%{_prefix}/src/ultragrid-externals/ximea_sdk_placeholder/.keep
|
||||
%{_prefix}/src/ultragrid-externals/ximea_sdk
|
||||
|
||||
|
||||
%changelog
|
||||
* Thu Feb 27 2020 Lukas Rucka <ultragrid-dev@cesnet.cz>
|
||||
- 20200227
|
||||
- Create RPM such that proprietary driver requirements are satisfied
|
||||
@@ -0,0 +1,125 @@
|
||||
#!/bin/bash
|
||||
|
||||
optpath=${RPM_BUILD_ROOT}/opt/XIMEA
|
||||
platform_bits=64
|
||||
api_version=2
|
||||
|
||||
mkdir -p ${RPM_BUILD_ROOT}/${SYSCONFDIR}/udev/rules.d/
|
||||
cp libs/libusb/*.rules ${RPM_BUILD_ROOT}/${SYSCONFDIR}/udev/rules.d/
|
||||
|
||||
mkdir -p $optpath/bin $optpath/lib $optpath/src $optpath/CamTool $optpath/backup 2>/dev/null
|
||||
mkdir -p "$optpath/data"
|
||||
cp README* uninstall version_LINUX_SP.txt "$optpath"
|
||||
touch $optpath/backup/files.txt
|
||||
|
||||
# libusb copy
|
||||
cp -r libs/libusb/* $optpath/lib/
|
||||
|
||||
|
||||
mkdir -p ${RPM_BUILD_ROOT}/${LIBDIR}
|
||||
|
||||
# install api
|
||||
cp api/X$platform_bits/libm3api.so.$api_version ${RPM_BUILD_ROOT}/${LIBDIR}/libm3api.so.${api_version}.0.0 && \
|
||||
ln -snf libm3api.so.$api_version ${RPM_BUILD_ROOT}/${LIBDIR}/libm3api.so
|
||||
|
||||
cp libs/gentl/X$platform_bits/libXIMEA_GenTL.cti $optpath/lib/
|
||||
cp libs/gentl/X$platform_bits/libxiFapi_GenTL.cti $optpath/lib/
|
||||
|
||||
[ -e libs/xiapi_dng_store/X$platform_bits ] && cp libs/xiapi_dng_store/X$platform_bits/libxiapi_dng_store.so $optpath/lib/ || true
|
||||
|
||||
cp bin/xiSample.$platform_bits $optpath/bin/xiSample
|
||||
cp "bin/xiCOP.$platform_bits" "$optpath/bin/xiCOP"
|
||||
cp "data/fw_update_tools_map.xml" "$optpath/data/"
|
||||
|
||||
cp bin/streamViewer.$platform_bits $optpath/bin/streamViewer
|
||||
|
||||
mkdir -p ${RPM_BUILD_ROOT}/${DATADIR}/applications
|
||||
|
||||
newlauncher=${RPM_BUILD_ROOT}/${DATADIR}/applications/streamViewer.desktop
|
||||
echo "[Desktop Entry]" >$newlauncher
|
||||
echo "Version=1.0" >>$newlauncher
|
||||
echo "Type=Application" >>$newlauncher
|
||||
echo "Terminal=false" >>$newlauncher
|
||||
echo "Icon[en_US]=gnome-panel-launcher" >>$newlauncher
|
||||
echo "Name=streamViewer" >>$newlauncher
|
||||
echo "Exec=$optpath/bin/streamViewer" >>$newlauncher
|
||||
echo "Categories=AudioVideo;Player;Recorder;AudioVideo;Video;" >> $newlauncher
|
||||
echo "GenericName=Stream Viewer Tool" >> $newlauncher
|
||||
chmod a+x $newlauncher
|
||||
|
||||
echo Installing CamTool
|
||||
libh264=libopenh264-1.4.0-linux"$platform_bits".so
|
||||
# Remove files from previous versions since they can cause CamTool crashes
|
||||
find "$optpath"/CamTool -mindepth 1 \! -name "$libh264" -delete
|
||||
cp bin/xiCamTool $optpath/bin/
|
||||
cp -R CamTool.$platform_bits/* $optpath/CamTool
|
||||
|
||||
# should be handled by download service
|
||||
# if [! -e "$optpath"/CamTool/"$libh264" ] ; then
|
||||
#wget -O "$optpath"/CamTool/"$libh264".bz2 http://ciscobinary.openh264.org/"$libh264".bz2
|
||||
#bunzip2 "$optpath"/CamTool/"$libh264".bz2
|
||||
#fi
|
||||
|
||||
newlauncher=${RPM_BUILD_ROOT}/${DATADIR}/applications/xiCamTool.desktop
|
||||
echo "[Desktop Entry]" >$newlauncher
|
||||
echo "Version=1.0" >>$newlauncher
|
||||
echo "Type=Application" >>$newlauncher
|
||||
echo "Terminal=false" >>$newlauncher
|
||||
echo "Icon=/opt/XIMEA/CamTool/icon.png" >>$newlauncher
|
||||
echo "Name=xiCamTool" >>$newlauncher
|
||||
echo "Exec=$optpath/bin/xiCamTool" >>$newlauncher
|
||||
echo "Categories=AudioVideo;Player;Recorder;AudioVideo;Video;" >> $newlauncher
|
||||
echo "GenericName=Ximea Camera Viewer Tool" >> $newlauncher
|
||||
chmod a+x $newlauncher
|
||||
|
||||
mkdir -p ${RPM_BUILD_ROOT}/${SYSCONFDIR}/modprobe.d/
|
||||
echo install usbcore usbfs_memory_mb=0 > ${RPM_BUILD_ROOT}/${SYSCONFDIR}/modprobe.d/99-ximea-usbcore.conf
|
||||
|
||||
mkdir -p ${RPM_BUILD_ROOT}/${SYSCONFDIR}/profile.d
|
||||
echo "export GENICAM_GENTL${platform_bits}_PATH=/opt/XIMEA/lib/" >> ${RPM_BUILD_ROOT}/${SYSCONFDIR}/profile.d/99-ximea-genicam.sh
|
||||
|
||||
# sample code
|
||||
cp -R include $optpath/
|
||||
cp -R examples $optpath/
|
||||
cp -R samples $optpath/
|
||||
|
||||
# include dir
|
||||
mkdir -p ${RPM_BUILD_ROOT}/${INCLUDEDIR}
|
||||
ln -snf /opt/XIMEA/include ${RPM_BUILD_ROOT}/${INCLUDEDIR}/m3api
|
||||
|
||||
|
||||
for d in api/Python/v*/ximea/libs/ ; do
|
||||
pushd $d
|
||||
rm -rf $(find . -mindepth 1 -maxdepth 1 -type d | grep -iv X64)
|
||||
popd
|
||||
done
|
||||
|
||||
# python wrappers - copypasted from the install script, except for ${RPM_BUILD_ROOT}
|
||||
for py in python python2 python3
|
||||
do
|
||||
if type $py &>/dev/null
|
||||
then
|
||||
py_ver="$($py -c "import sys; pyver=sys.version_info[0]; print(pyver)")"
|
||||
py_site_dir="$($py -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")"
|
||||
if [ -n "$py_site_dir" ]
|
||||
then
|
||||
mkdir -p "${RPM_BUILD_ROOT}/$py_site_dir"/ximea
|
||||
if [ "$py_ver" -gt 2 ]
|
||||
then
|
||||
echo "Installing python package version 3.x"
|
||||
cp -R api/Python/v3/ximea "${RPM_BUILD_ROOT}/$py_site_dir"
|
||||
else
|
||||
echo "Installing python package version 2.x"
|
||||
cp -R api/Python/v2/ximea "${RPM_BUILD_ROOT}/$py_site_dir"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
mkdir -p ${RPM_BUILD_ROOT}/${PREFIX}/src/ultragrid-externals/
|
||||
ln -s /opt/XIMEA ${RPM_BUILD_ROOT}/${PREFIX}/src/ultragrid-externals/ximea_sdk
|
||||
|
||||
pushd ${RPM_BUILD_ROOT}/opt/XIMEA/lib
|
||||
rm -rf $(find . -mindepth 1 -maxdepth 1 -type d | grep -v X64)
|
||||
popd
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
SHELL=/bin/bash
|
||||
DEB_BUILD_ROOT=$(shell realpath . )/debian/tmp
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
echo "no configure here"
|
||||
|
||||
|
||||
override_dh_shlibdeps:
|
||||
env LD_LIBRARY_PATH=$${LD_LIBRARY_PATH}:/usr/lib/x86_64-linux-gnu:/usr/lib:/opt/XIMEA/lib dh_shlibdeps -Xusr/src/ultragrid-externals -Xopt/XIMEA
|
||||
# -- --ignore-missing-info
|
||||
|
||||
override_dh_auto_build:
|
||||
echo placeholder
|
||||
|
||||
override_dh_auto_install:
|
||||
chmod +x debian/buildscript.sh
|
||||
env RPM_BUILD_ROOT=$(DEB_BUILD_ROOT) SYSCONFDIR=/etc LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) DATADIR=/usr/share INCLUDEDIR=/usr/lib/$(DEB_HOST_MULTIARCH) PREFIX=/usr debian/buildscript.sh
|
||||
|
||||
BIN
package_specs/ultragrid-proprietary-drivers-ximea/debian.tar.gz
Normal file
BIN
package_specs/ultragrid-proprietary-drivers-ximea/debian.tar.gz
Normal file
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* devel-file-in-non-devel-package")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* file-contains-date-and-time")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* wrong-script-end-of-line-encoding")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* files-duplicate")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* binary-or-shlib-calls-gethostbyname")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* executable-stack")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* no-soname")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* hidden-file-or-dir")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* incorrect-fsf-address")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* zero-length")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* shared-lib-calls-exit")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* shlib-policy-missing-suffix")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* version-control-internal-file")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* no-rpm-opt-flags")
|
||||
addFilter("ultragrid-proprietary-drivers-ximea.* non-executable-script")
|
||||
@@ -0,0 +1,12 @@
|
||||
# see https://en.opensuse.org/openSUSE:Build_Service_Debian_builds#packageName.dsc
|
||||
DEBTRANSFORM-TAR: ximea-linux-upstream.tar.gz
|
||||
DEBTRANSFORM-FILES-TAR: debian.tar.gz
|
||||
DEBTRANSFORM-SERIES: debian-patches-series
|
||||
Format: 1.0
|
||||
Source: ultragrid-proprietary-drivers-ximea
|
||||
Binary: ultragrid-proprietary-drivers-ximea
|
||||
Architecture: any
|
||||
Version: 20200109
|
||||
Standards-Version: 3.9.6
|
||||
Maintainer: Lukas Rucka <ultragrid-dev@cesnet.cz>
|
||||
Build-Depends: debhelper (>= 7.0.50~), build-essential, linux-headers, realpath, coreutils, autoconf, automake, linux-libc-dev, python3, python3-distutils-extra, bash, libraw1394-11, libtiff-dev, libusb-1.0-0
|
||||
@@ -0,0 +1,95 @@
|
||||
Name: ultragrid-proprietary-drivers-ximea
|
||||
Version: 20200109
|
||||
Release: 1%{?dist}
|
||||
Summary: Ultragrid drivers ximea pseudometapackage
|
||||
Group: Applications/Multimedia
|
||||
|
||||
# not really GPL
|
||||
License: Proprietary
|
||||
URL: http://www.ximea.com
|
||||
|
||||
# replace this line with generated conflicts
|
||||
Provides: ultragrid-proprietary-drivers-ximea-nightly
|
||||
Provides: ultragrid-proprietary-drivers-ximea-release-1.6
|
||||
|
||||
BuildRequires: gcc-c++, make, automake, autoconf, coreutils
|
||||
BuildRequires: libX11-devel, glew-devel, libXext-devel, glibc, ncurses-devel, qt-devel
|
||||
BuildRequires: %kernel_module_package_buildreqs , kernel
|
||||
|
||||
Source0: ximea-linux-upstream.tar.gz
|
||||
Source1: ultragrid-proprietary-drivers-ximea-rpmlintrc
|
||||
Source2: debian.buildscript.sh
|
||||
|
||||
%description
|
||||
Rewrite ximea installer to be compatible with packages,
|
||||
essentially create rpm for ultragrid
|
||||
+ udev rules for plugdev
|
||||
- pci
|
||||
- firewire
|
||||
+ usb
|
||||
* libusb copied to sdk, but not overriding system defaults
|
||||
|
||||
|
||||
# hack over the way fedora ignores dependences in /usr/lib/dir/*.so
|
||||
%define _use_internal_dependency_generator 0
|
||||
%define __find_requires bash -c 'cd %{_builddir}/ ; cat final-requires'
|
||||
%define __find_provides bash -c 'cd %{_builddir}/ ; cat final-provides'
|
||||
%define _missing_build_ids_terminate_build 0
|
||||
|
||||
%prep
|
||||
#%setup -q
|
||||
tar -xvf %{SOURCE0} && cd package
|
||||
|
||||
%build
|
||||
%define debug_package %{nil}
|
||||
cd package
|
||||
#env DESTDIR=${RPM_BUILD_ROOT} EUID=0 ./scripts/install_steps -x64 -noudev -nopci
|
||||
|
||||
%install
|
||||
chmod +x %{SOURCE2}
|
||||
pushd package
|
||||
env RPM_BUILD_ROOT=${RPM_BUILD_ROOT} SYSCONFDIR=%{_sysconfdir} LIBDIR=%{_libdir} DATADIR=%{_datadir} INCLUDEDIR=%{_includedir} PREFIX=%{_prefix} %{SOURCE2}
|
||||
popd
|
||||
|
||||
# generate dependencies
|
||||
pushd $RPM_BUILD_ROOT
|
||||
find . -iregex '.*\.so\(\.[0-9]+\)*$' -o -type f -executable | grep -vE '^\./opt' | /usr/lib/rpm/find-provides > ${RPM_BUILD_DIR}/package/install-provides
|
||||
find . -iregex '.*\.so\(\.[0-9]+\)*$' -o -type f -executable | /usr/lib/rpm/find-provides > ${RPM_BUILD_DIR}/package/install-provides-full
|
||||
find . -iregex '.*\.so\(\.[0-9]+\)*$' -o -type f -executable | /usr/lib/rpm/find-requires > ${RPM_BUILD_DIR}/package/install-requires
|
||||
popd
|
||||
#grep -vE 'lib.*\.so.*' install-provides > install-provides-nolibs
|
||||
|
||||
echo 'libopenh264.*.so.*' >> norequires
|
||||
echo 'libjasper.*.so.*' >> norequires
|
||||
echo 'libgst.*.0.10.*.so.*' >> norequires
|
||||
echo 'libQt5EglDeviceIntegration.so.5.*' >> norequires
|
||||
|
||||
grep -v -F -f install-provides-full install-requires > install-requires-noself || true
|
||||
grep -v -Ef noprovides install-provides > install-provides-result || true
|
||||
grep -v -Ef norequires install-requires-noself > install-requires-result || true
|
||||
|
||||
cp install-requires-result final-requires
|
||||
cp install-provides-result final-provides
|
||||
|
||||
export NO_BRP_CHECK_RPATH=true
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{_sysconfdir}/udev/rules.d/*.rules
|
||||
%{_sysconfdir}/modprobe.d/*.conf
|
||||
%{_sysconfdir}/profile.d/*.sh
|
||||
/opt/XIMEA
|
||||
%{_libdir}/*
|
||||
%{_includedir}/*
|
||||
%{_prefix}/lib*/python*
|
||||
%{_prefix}/src/ultragrid-externals
|
||||
%{_prefix}/src/ultragrid-externals/ximea_sdk
|
||||
%{_datadir}/applications/*.desktop
|
||||
|
||||
%changelog
|
||||
* Thu Feb 27 2020 Lukas Rucka <ultragrid-dev@cesnet.cz>
|
||||
- 20200227
|
||||
- Create RPM such that mirrors ximea installed
|
||||
Reference in New Issue
Block a user