mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
create debian packages / multiple configs (#650)
* implement make install set CMAKE_INSTALL_PREFIX e.g. to /opt to install to /opt/hyperion set ENABLE_SYSTEM_INSTALL to ON to activate installation after compiling use make install or make install/strip (for performance/size optimized binaries - compile in Release to get best performance) * cleanup cmake files use cmake -DINSTALL_PREFIX=/opt/hyperion .. to install all files to hyperion or cmake -DINSTALL_PREFIX=/usr/ to install to usr. install folders are linux standard. bin go to bin folder and additionals (effects) go to share/hyperion * add uninstall target - be patient with that, this will remove files from your system install service files to share/hyperion - if you want to use them you have to make a symlink to your location of service files * optimize build release script install service files into hyperion share folder (services not activated, this must be done by distribution package script) initial support of cmake option -DPLATFORM= option. This selects platform specific cmake flags. no need for -DENABLE_... options (unless you want some special things) automatic detect for apple build * update submodule * fix cmake error when no platform is given * initial support for deb,rpm and tgz packages - no usefull content atm! * make packeages contain usefull stuff * add license make packes more functional. package specific install missing yet * implement debian postinstall * disable rpm generation until it has a working state * add hypercon compat * add posibility for multiple config files. first one found is taken Former-commit-id: 1c2669961da98fd05a97359e75f1d6d68e126715
This commit is contained in:
22
cmake/Toolchain-imx6.cmake
Normal file
22
cmake/Toolchain-imx6.cmake
Normal file
@@ -0,0 +1,22 @@
|
||||
SET(CUBIXCROSS_DIR $ENV{HOME}/hummingboard)
|
||||
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${CUBIXCROSS_DIR}/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${CUBIXCROSS_DIR}/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-g++)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard")
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard")
|
||||
|
||||
# where is the target environment
|
||||
SET(CMAKE_FIND_ROOT_PATH ${CUBIXCROSS_DIR}/rootfs)
|
||||
|
||||
# search for programs in the build host directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
# for libraries and headers in the target directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
include_directories(${CMAKE_FIND_ROOT_PATH}/usr/include)
|
19
cmake/Toolchain-rpi.cmake
Normal file
19
cmake/Toolchain-rpi.cmake
Normal file
@@ -0,0 +1,19 @@
|
||||
SET(RASPCROSS_DIR $ENV{HOME}/raspberrypi)
|
||||
|
||||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
SET(CMAKE_SYSTEM_VERSION 1)
|
||||
|
||||
# specify the cross compiler
|
||||
SET(CMAKE_C_COMPILER ${RASPCROSS_DIR}/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-gcc)
|
||||
SET(CMAKE_CXX_COMPILER ${RASPCROSS_DIR}/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++)
|
||||
|
||||
# where is the target environment
|
||||
SET(CMAKE_FIND_ROOT_PATH ${RASPCROSS_DIR}/rootfs)
|
||||
|
||||
# search for programs in the build host directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
# for libraries and headers in the target directories
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
12
cmake/Toolchain-x32.cmake
Normal file
12
cmake/Toolchain-x32.cmake
Normal file
@@ -0,0 +1,12 @@
|
||||
# toolchain file for building a 32bit version on a 64bit host
|
||||
|
||||
# use it like this:
|
||||
# cmake -DCMAKE_TOOLCHAIN_FILE=Toolchain-x32.cmake <sourcedir>
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_VERSION 1)
|
||||
set(CMAKE_SYSTEM_PROCESSOR "i686")
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32" CACHE STRING "c++ flags")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32" CACHE STRING "c flags")
|
||||
|
60
cmake/debian/postinst
Normal file
60
cmake/debian/postinst
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/sh
|
||||
|
||||
install_file()
|
||||
{
|
||||
src="$1"
|
||||
dest="$2"
|
||||
|
||||
if [ -e "$dest" ] && ! cmp --quiet "$src" "$dest"
|
||||
then
|
||||
cp "$src" "${dest}.new"
|
||||
else
|
||||
cp "$src" "${dest}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
echo "--- hyperion ambilight postinstall ---"
|
||||
echo "- install configuration template"
|
||||
mkdir -p /etc/hyperion
|
||||
install_file /usr/share/hyperion/config/hyperion.config.json /etc/hyperion/hyperion.config.json
|
||||
|
||||
|
||||
if grep -m1 systemd /proc/1/comm > /dev/null
|
||||
then
|
||||
# systemd
|
||||
echo
|
||||
systemctl stop hyperion 2> /dev/null
|
||||
install_file /usr/share/hyperion/service/hyperion.systemd.sh /etc/systemd/system/hyperion.service
|
||||
systemctl -q enable hyperion.service
|
||||
# if [ $OS_OSMC -eq 1 ]; then
|
||||
# echo '---> Modify systemd script for OSMC usage'
|
||||
# # Wait until kodi is sarted (for kodi checker)
|
||||
# sed -i '/After = mediacenter.service/d' /etc/systemd/system/hyperion.service
|
||||
# sed -i '/Unit/a After = mediacenter.service' /etc/systemd/system/hyperion.service
|
||||
# sed -i 's/User=osmc/User=root/g' /etc/systemd/system/hyperion.service
|
||||
# sed -i 's/Group=osmc/Group=root/g' /etc/systemd/system/hyperion.service
|
||||
# systemctl -q daemon-reload
|
||||
# fi
|
||||
systemctl start hyperion
|
||||
|
||||
elif [ -e /sbin/initctl ]
|
||||
then
|
||||
# upstart
|
||||
install_file /usr/share/hyperion/service/hyperion.initctl.sh /etc/init/hyperion.conf
|
||||
initctl reload-configuration
|
||||
initctl start hyperion
|
||||
|
||||
else
|
||||
# sysV
|
||||
service hyperion stop 2>/dev/null
|
||||
install_file /usr/share/hyperion/service/hyperion.init.sh /etc/init.d/hyperion
|
||||
chmod +x /etc/init.d/hyperion
|
||||
update-rc.d hyperion defaults 98 02
|
||||
service hyperion start
|
||||
fi
|
||||
echo "- done"
|
||||
|
||||
# hypercon compat
|
||||
mkdir -p /opt/hyperion/config
|
||||
ln -sf /usr/share/hyperion/effects /opt/hyperion/effects
|
@@ -1,3 +1,32 @@
|
||||
SET(CPACK_GENERATOR "DEB" "RPM" "TGZ" )
|
||||
SET(CPACK_DEBIAN_PACKAGE_MAINTAINER "hyperion team")
|
||||
include (CPack)
|
||||
# cmake file for generating distribution packages
|
||||
|
||||
SET ( CPACK_GENERATOR "DEB" "TGZ" "STGZ" ) # "RPM"
|
||||
|
||||
SET ( CPACK_PACKAGE_NAME "hyperion" )
|
||||
SET ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Hyperion is an opensource 'AmbiLight' implementation" )
|
||||
SET ( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_SOURCE_DIR}/README.md" )
|
||||
SET ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" )
|
||||
|
||||
SET ( CPACK_DEBIAN_PACKAGE_MAINTAINER "hyperion team")
|
||||
SET ( CPACK_DEBIAN_PACKAGE_NAME "hyperion" )
|
||||
SET ( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/cmake/debian/postinst" )
|
||||
SET ( CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/hyperion-project/hyperion" )
|
||||
SET ( CPACK_DEBIAN_PACKAGE_DEPENDS "libqtcore4 (>= 4:4.8.0), libqt4-network (>= 4:4.8.0)" )
|
||||
SET ( CPACK_DEBIAN_PACKAGE_SECTION "Miscellaneous" )
|
||||
|
||||
SET ( CPACK_RPM_PACKAGE_NAME "hyperion" )
|
||||
SET ( CPACK_RPM_PACKAGE_URL "https://github.com/hyperion-project/hyperion" )
|
||||
SET ( CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/rpm/postinst" )
|
||||
|
||||
SET(CPACK_PACKAGE_VERSION_MAJOR "1")
|
||||
SET(CPACK_PACKAGE_VERSION_MINOR "3")
|
||||
SET(CPACK_PACKAGE_VERSION_PATCH "0")
|
||||
|
||||
SET ( CPACK_COMPONENTS_ALL ambilight )
|
||||
SET ( CPACK_ARCHIVE_COMPONENT_INSTALL ON )
|
||||
SET ( CPACK_DEB_COMPONENT_INSTALL ON )
|
||||
SET ( CPACK_RPM_COMPONENT_INSTALL ON )
|
||||
SET ( CPACK_STRIP_FILES ON )
|
||||
|
||||
# no code after following line!
|
||||
INCLUDE ( CPack )
|
||||
|
57
cmake/rpm/postinst
Normal file
57
cmake/rpm/postinst
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/bin/sh
|
||||
|
||||
install_file()
|
||||
{
|
||||
src="$1"
|
||||
dest="$2"
|
||||
|
||||
if [ -e "$dest" ] && ! cmp --quiet "$src" "$dest"
|
||||
then
|
||||
cp "$src" "${dest}.new"
|
||||
else
|
||||
cp "$src" "${dest}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
echo "--- hyperion ambilight postinstall ---"
|
||||
echo "- install configuration template"
|
||||
mkdir -p /etc/hyperion
|
||||
install_file /usr/share/hyperion/config/hyperion.config.json /etc/hyperion/hyperion.config.json
|
||||
|
||||
|
||||
if grep -m1 systemd /proc/1/comm > /dev/null
|
||||
then
|
||||
# systemd
|
||||
echo
|
||||
systemctl stop hyperion 2> /dev/null
|
||||
install_file /usr/share/hyperion/service/hyperion.systemd.sh /etc/systemd/system/hyperion.service
|
||||
systemctl -q enable hyperion.service
|
||||
# if [ $OS_OSMC -eq 1 ]; then
|
||||
# echo '---> Modify systemd script for OSMC usage'
|
||||
# # Wait until kodi is sarted (for kodi checker)
|
||||
# sed -i '/After = mediacenter.service/d' /etc/systemd/system/hyperion.service
|
||||
# sed -i '/Unit/a After = mediacenter.service' /etc/systemd/system/hyperion.service
|
||||
# sed -i 's/User=osmc/User=root/g' /etc/systemd/system/hyperion.service
|
||||
# sed -i 's/Group=osmc/Group=root/g' /etc/systemd/system/hyperion.service
|
||||
# systemctl -q daemon-reload
|
||||
# fi
|
||||
systemctl start hyperion
|
||||
|
||||
elif [ -e /sbin/initctl ]
|
||||
then
|
||||
# upstart
|
||||
install_file /usr/share/hyperion/service/hyperion.initctl.sh /etc/init/hyperion.conf
|
||||
initctl reload-configuration
|
||||
initctl start hyperion
|
||||
|
||||
else
|
||||
# sysV
|
||||
service hyperion stop 2>/dev/null
|
||||
install_file /usr/share/hyperion/service/hyperion.init.sh /etc/init.d/hyperion
|
||||
chmod +x /etc/init.d/hyperion
|
||||
update-rc.d hyperion defaults 98 02
|
||||
service hyperion start
|
||||
fi
|
||||
echo "- done"
|
||||
|
Reference in New Issue
Block a user