# Copyright 1999-2023 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit cmake systemd subversion ESVN_REPO_URI="${OSCAM_ESVN_REPO_URI:-http://streamboard.tv/svn/oscam/trunk}" ESVN_REVISION="11734" DESCRIPTION="OSCam is an Open Source Conditional Access Module software" HOMEPAGE="www.streamboard.tv/wiki/OSCam/de/" SRC_URI="" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~arm ~arm64 ~x86" PROTOCOLS="camd33 camd35 camd35_tcp cccam cccshare constcw gbox ghttp newcamd pandora radegast serial" for share in ${PROTOCOLS}; do IUSE_PROTOCOLS+=" +protocol_${share}" done READERS="bulcrypt conax cryptoworks dgcrypt dre griffin irdeto nagra seca tongfang viaccess videoguard" for card in ${READERS}; do IUSE_READERS+=" +reader_${card}" done CARD_READERS="phoenix internal sc8in1 mp35 smargo smartreader db2com stapi" for cardreader in ${CARD_READERS}; do IUSE_CARDREADERS+=" +cardreader_${cardreader}" done IUSE="${IUSE_PROTOCOLS} ${IUSE_READERS} ${IUSE_CARDREADERS} +anticasc cacheex cw_cycle_check debug +dvbapi +emulator ipv6 irdeto_guessing lcd led loadbalancing +monitor pcsc +reader +ssl touch usb vdr +www" REQUIRED_USE=" protocol_camd35_tcp? ( protocol_camd35 ) reader_nagra? ( reader ) reader_irdeto? ( reader irdeto_guessing ) reader_conax? ( reader ) reader_cryptoworks? ( reader ) reader_seca? ( reader ) reader_viaccess? ( reader ) reader_videoguard? ( reader ) reader_dre? ( reader ) reader_tongfang? ( reader ) reader_bulcrypt? ( reader ) reader_griffin? ( reader ) reader_dgcrypt? ( reader ) cardreader_db2com? ( reader ) cardreader_internal? ( reader ) cardreader_mp35? ( reader usb ) cardreader_phoenix? ( reader usb ) cardreader_sc8in1? ( reader usb ) cardreader_smargo? ( reader usb ) cardreader_smartreader? ( reader usb ) cardreader_stapi? ( reader ) emulator? ( reader ) pcsc? ( reader usb ) " DEPEND="dev-build/cmake" RDEPEND="${DEPEND} dev-vcs/subversion dev-libs/openssl usb? ( virtual/libusb:1 ) pcsc? ( sys-apps/pcsc-lite ) vdr? ( media-plugins/vdr-dvbapi )" RESTRICT="mirror strip" src_prepare() { if use emulator; then einfo eapply "${FILESDIR}/oscam-emu.patch" || die "Softcam emulator patch failed !" einfo "Softcam emulation enabled !" einfo fi sed -i "s:svnversion -n .:git describe --always:" config.sh || die "Failed to patch the GIT commit as build string" sed -i "s:share/doc/oscam:share/doc/oscam-${PV}:" CMakeLists.txt || die "Failed to modify doc path" cmake_src_prepare || die "cmake_src_prepare failed !" } src_configure() { local mycmakeargs=( -DCS_CONFDIR=/etc/oscam -DCMAKE_VERBOSE_MAKEFILE=ON -INCLUDED=Yes $(cmake_use_find_package debug WITH_DEBUG) $(cmake_use_find_package www WEBIF) $(cmake_use_find_package touch TOUCH) $(cmake_use_find_package dvbapi HAVE_DVBAPI) $(cmake_use_find_package irdeto_guessing IRDETO_GUESSING) $(cmake_use_find_package anticasc CS_ANTICASC) $(cmake_use_find_package monitor MODULE_MONITOR) $(cmake_use_find_package ssl WITH_SSL) $(cmake_use_find_package loadbalancing WITH_LB) $(cmake_use_find_package cacheex CS_CACHEEX) $(cmake_use_find_package led LEDSUPPORT) $(cmake_use_find_package lcd LCDSUPPORT) $(cmake_use_find_package ipv6 IPV6SUPPORT) $(cmake_use_find_package cw_cycle_check CW_CYCLE_CHECK) $(cmake_use_find_package protocol_camd33 MODULE_CAMD33) $(cmake_use_find_package protocol_camd35 MODULE_CAMD35) $(cmake_use_find_package protocol_camd35_tcp MODULE_CAMD35_TCP) $(cmake_use_find_package protocol_newcamd MODULE_NEWCAMD) $(cmake_use_find_package protocol_cccam MODULE_CCCAM) $(cmake_use_find_package protocol_cccshare MODULE_CCCSHARE) $(cmake_use_find_package protocol_gbox MODULE_GBOX) $(cmake_use_find_package protocol_radegast MODULE_RADEGAST) $(cmake_use_find_package protocol_serial MODULE_SERIAL) $(cmake_use_find_package protocol_constcw MODULE_CONSTCW) $(cmake_use_find_package protocol_pandora MODULE_PANDORA) $(cmake_use_find_package protocol_ghttp MODULE_GHTTP) $(cmake_use_find_package reader WITH_CARDREADER) $(cmake_use_find_package reader_nagra READER_NAGRA) $(cmake_use_find_package reader_irdeto READER_IRDETO) $(cmake_use_find_package reader_conax READER_CONAX) $(cmake_use_find_package reader_cryptoworks READER_CRYPTOWORKS) $(cmake_use_find_package reader_seca READER_SECA) $(cmake_use_find_package reader_viaccess READER_VIACCESS) $(cmake_use_find_package reader_videoguard READER_VIDEOGUARD) $(cmake_use_find_package reader_dre READER_DRE) $(cmake_use_find_package reader_tongfang READER_TONGFANG) $(cmake_use_find_package reader_bulcrypt READER_BULCRYPT) $(cmake_use_find_package reader_griffin READER_GRIFFIN) $(cmake_use_find_package reader_dgcrypt READER_DGCRYPT) $(cmake_use_find_package cardreader_phoenix CARDREADER_PHOENIX) $(cmake_use_find_package cardreader_internal CARDREADER_INTERNAL) $(cmake_use_find_package cardreader_sc8in1 CARDREADER_SC8IN1) $(cmake_use_find_package cardreader_mp35 CARDREADER_MP35) $(cmake_use_find_package cardreader_smargo CARDREADER_SMARGO) $(cmake_use_find_package cardreader_smartreader CARDREADER_SMART) $(cmake_use_find_package cardreader_db2com CARDREADER_DB2COM) $(cmake_use_find_package cardreader_stapi CARDREADER_STAPI) ) use usb && mycmakeargs=(-DSTATIC_LIBUSB=0 ${mycmakeargs}) cmake_src_configure } src_install() { cmake_src_install if use cardreader_smargo; then dobin "${WORKDIR}"/"${P}"_build/utils/list_smargo fi dobin "${FILESDIR}/oscam_watchdog.sh" || die "dobin oscam_watchdog.sh failed" insinto "/etc/${PN}" doins -r Distribution/doc/example/* fperms 0755 /etc/${PN} # ??? all executable ??? systemd_dounit "${FILESDIR}/${PN}.service" newinitd "${FILESDIR}/${PN}.initd" oscam newconfd "${FILESDIR}/${PN}.confd" oscam use emulator && keepdir "/var/keys/" keepdir "/var/log/${PN}/emm" } pkg_postinst() { if use emulator; then einfo einfo "You have activated softcam emulator, if you want to hardcode keys..." einfo "Put latest SoftCam.Key into /var/keys folder, and rebuild OScam !" einfo fi einfo "Please refer to the wiki for assistance with the setup" einfo "located at http://www.streamboard.tv/wiki/OSCam/en" einfo }