diff options
author | knedlyk | 2019-01-27 12:37:43 +0100 |
---|---|---|
committer | knedlyk | 2019-01-27 12:37:43 +0100 |
commit | 2dc522b74a5a6187c5c676afb40dbf406751b741 (patch) | |
tree | fb8e697ff6a00c5ca02a591166050fa81bdddea4 | |
parent | cc33d94d2c760b34ce6d81daeec67268e99d98a0 (diff) | |
download | aur-2dc522b74a5a6187c5c676afb40dbf406751b741.tar.gz |
Compile for vdr-2.4.0
-rw-r--r-- | .SRCINFO | 23 | ||||
-rw-r--r-- | Makefile.patch | 14 | ||||
-rw-r--r-- | PKGBUILD | 97 | ||||
-rw-r--r-- | compile.patch | 71 | ||||
-rw-r--r-- | vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff | 71 |
5 files changed, 229 insertions, 47 deletions
@@ -1,7 +1,7 @@ pkgbase = vdr-sc pkgdesc = Software CAM emulation - pkgver = 20120721 - pkgrel = 12 + pkgver = r7.4d1530b + pkgrel = 1 url = http://207.44.152.197/ arch = x86_64 arch = i686 @@ -9,20 +9,21 @@ pkgbase = vdr-sc arch = armv6h arch = armv7h license = GPL2 - makedepends = mercurial + makedepends = git depends = libdvbcsa depends = openssl - depends = vdr-api=2.1.6 + depends = vdr>=2.4.0 + depends = vdr-api=2.4.0 backup = etc/vdr/conf.avail/20-sc.conf - source = vdr-sc::hg+http://85.17.209.13:6100#revision=29b7b5f2 - source = ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.6.tar.bz2 - source = http://data.gpo.zugaina.org/vdr-devel/media-plugins/vdr-sc/files/vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff - source = Add_libdvbcsa_support.diff + source = vdr-sc::git+http://github.com/3PO/vdr-plugin-sc + source = ftp://ftp.tvdr.de/vdr/vdr-2.4.0.tar.bz2 + source = Makefile.patch + source = compile.patch source = 20-sc.conf md5sums = SKIP - md5sums = 79519dac59166fabc2029b916bd61d00 - md5sums = 529bc4056e2be62904f676780ea2fbc8 - md5sums = b00108754f574c0773d30e288b703045 + md5sums = 12c6a3abeadfa915fcfe736bb047a3ab + md5sums = 7f95d6bafef697a65b2a1622dd9790ad + md5sums = 23e9fbdccd207463c1f7d632b58d2a78 md5sums = 397dfba03003ba28c5f95d0855497d78 pkgname = vdr-sc diff --git a/Makefile.patch b/Makefile.patch new file mode 100644 index 000000000000..ed6c05a37dd6 --- /dev/null +++ b/Makefile.patch @@ -0,0 +1,14 @@ +diff -Naur vdr-sc/Makefile vdr-sc-build/Makefile +--- vdr-sc/Makefile 2018-04-01 23:41:26.605818847 +0200 ++++ vdr-sc-build/Makefile 2018-04-02 02:14:28.601921273 +0200 +@@ -78,8 +78,8 @@ + MAXCAID := 64 + + # FFdeCSA +-PARALLEL ?= PARALLEL_128_SSE2 +-CSAFLAGS ?= -fexpensive-optimizations -fomit-frame-pointer -funroll-loops -O3 -mmmx -msse -msse2 -msse3 ++PARALLEL ?= PARALLEL_32_INT ++CSAFLAGS ?= -fexpensive-optimizations -fomit-frame-pointer -funroll-loops -O3 + FFDECSADIR = FFdecsa + FFDECSA = $(FFDECSADIR)/FFdecsa.o + DECSALIB = $(FFDECSA) @@ -1,64 +1,89 @@ -# Maintainer: Christopher Reimer <vdr4arch[at]creimer[dot]net> +# Maintainer: Yarema aka Knedlyk <yupadmin[at]gmail[dot]com> pkgname=vdr-sc -pkgver=20120721 -_hgver=29b7b5f2 -_vdrapi=2.1.6 -pkgrel=12 +pkgver=r7.4d1530b +_vdrapi=2.4.0 +pkgrel=1 pkgdesc="Software CAM emulation" url="http://207.44.152.197/" arch=('x86_64' 'i686' 'arm' 'armv6h' 'armv7h') license=('GPL2') -depends=('libdvbcsa' 'openssl' "vdr-api=${_vdrapi}") -makedepends=('mercurial') +depends=('libdvbcsa' 'openssl' "vdr>=2.4.0" "vdr-api=${_vdrapi}") +makedepends=('git') _plugname=$(echo $pkgname | sed 's/vdr-//g') -source=("$pkgname::hg+http://85.17.209.13:6100#revision=$_hgver" - "ftp://ftp.tvdr.de/vdr/Developer/vdr-$_vdrapi.tar.bz2" - 'http://data.gpo.zugaina.org/vdr-devel/media-plugins/vdr-sc/files/vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff' - 'Add_libdvbcsa_support.diff' +source=("$pkgname::git+http://github.com/3PO/vdr-plugin-sc" + "ftp://ftp.tvdr.de/vdr/vdr-$_vdrapi.tar.bz2" +# 'http://data.gpo.zugaina.org/vdr-devel/media-plugins/vdr-sc/files/vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff' +# 'Add_libdvbcsa_support.diff' + 'Makefile.patch' + 'compile.patch' "20-$_plugname.conf") backup=("etc/vdr/conf.avail/20-$_plugname.conf") -md5sums=('SKIP' - '79519dac59166fabc2029b916bd61d00' - '529bc4056e2be62904f676780ea2fbc8' - 'b00108754f574c0773d30e288b703045' - '397dfba03003ba28c5f95d0855497d78') pkgver() { - cd "$srcdir/$pkgname" - hg log -l1 --template "{shortdate(date)}" | sed 's/-//g' + cd "$srcdir/$pkgname" + echo "r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)" } prepare() { - cd "$srcdir/$pkgname" - - patch -p1 -i "$srcdir/Add_libdvbcsa_support.diff" - patch -p1 -i "$srcdir/vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff" + rm -rf "$srcdir/$pkgname-build" + cp -r "$srcdir/$pkgname" "$srcdir/$pkgname-build" + cd "$srcdir/$pkgname-build" +# patch -p1 -i "$srcdir/Add_libdvbcsa_support.diff" +# patch -p1 -i "$srcdir/vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff" + patch -p1 -i "$srcdir/compile.patch" + patch -p1 -i "$srcdir/Makefile.patch" #Disable Keyfile support. If you want to watch paytv, pay for it. # ( cd systems # ls | grep -v cardclient | xargs rm -r ) sed -i 's/MAXDVBDEVICES/MAXDEVICES/g' device.c - ln -sfr "$srcdir/vdr-$_vdrapi/PLUGINS/src/dvbhddevice" "$srcdir" - ln -sfr "$srcdir/vdr-$_vdrapi/PLUGINS/src/dvbsddevice" "$srcdir" +# ln -sfr "$srcdir/vdr-$_vdrapi/PLUGINS/src/dvbhddevice" "$srcdir" +# ln -sfr "$srcdir/vdr-$_vdrapi/PLUGINS/src/dvbsddevice" "$srcdir" } package() { - cd "$srcdir/$pkgname" + cd "$srcdir/$pkgname-build" mkdir -p "$pkgdir/usr/lib/vdr/plugins" - make CFLAGS="$(pkg-config vdr --variable=cflags)" \ - CXXFLAGS="$(pkg-config vdr --variable=cxxflags)" \ - VDRDIR="/usr" \ - LIBDIR="$pkgdir/$(pkg-config vdr --variable=libdir)" \ - LOCALEDIR="$pkgdir/$(pkg-config vdr --variable=locdir)" \ - MAXCAID=64 \ - LIBDVBCSA=1 \ - i18n systems libsc-dvbhddevice.so libsc-dvbsddevice.so libvdr-$_plugname.so - install -Dm755 libsc-dvbhddevice.so "$pkgdir/usr/lib/vdr/plugins/libsc-dvbhddevice.so.$_vdrapi" - install -Dm755 libsc-dvbsddevice.so "$pkgdir/usr/lib/vdr/plugins/libsc-dvbsddevice.so.$_vdrapi" - install -Dm755 libvdr-$_plugname.so "$pkgdir/usr/lib/vdr/plugins/libvdr-$_plugname.so.$_vdrapi" + +# make CFLAGS="$(pkg-config vdr --variable=cflags)" \ +# CXXFLAGS="$(pkg-config vdr --variable=cxxflags)" \ +# VDRDIR="/usr" \ +# LIBDIR="$pkgdir/$(pkg-config vdr --variable=libdir)" \ +# LOCALEDIR="$_pkgdir/$(pkg-config vdr --variable=locdir)" \ +# MAXCAID=64 \ +# LIBDVBCSA=1 \ +# i18n systems libsc-dvbhddevice.so libsc-dvbsddevice.so libvdr-$_plugname.so + +#export CXXFLAGS="$CXXFLAGS -I/usr/include/openssl-1.0" +#export LDFLAGS="$LDFLAGS -L/usr/lib/openssl-1.0 -lcrypto -lcrypt" + + make CFLAGS="$(pkg-config vdr --variable=cflags)" \ + CXXFLAGS="$(pkg-config vdr --variable=cxxflags) -I/usr/include/openssl-1.0 -std=c++98" \ + LDFLAGS="$LDFLAGS -L/usr/lib/openssl-1.0 -lcrypto -lcrypt" \ + VDRDIR="$(pkg-config vdr --variable=pcfiledir)" \ + LIBDIR="$pkgdir/$(pkg-config vdr --variable=libdir)" \ + LOCDIR="$pkgdir/$(pkg-config vdr --variable=locdir)" \ + MAXCAID=64 \ + LIBDVBCSA=1 +# i18n systems + +echo "pkgdir $pkgdir" + + make DESTDIR=${pkgdir} install + +# VDRDIR="/usr" \ #libsc-dvbhddevice.so libsc-dvbsddevice.so libvdr-$_plugname.so + +# install -Dm755 libsc-dvbhddevice.so "$pkgdir/usr/lib/vdr/plugins/libsc-dvbhddevice.so.$_vdrapi" +# install -Dm755 libsc-dvbsddevice.so "$pkgdir/usr/lib/vdr/plugins/libsc-dvbsddevice.so.$_vdrapi" +# install -Dm755 libvdr-$_plugname.so "$pkgdir/usr/lib/vdr/plugins/libvdr-$_plugname.so.$_vdrapi" install -Dm644 "$srcdir/20-$_plugname.conf" "$pkgdir/etc/vdr/conf.avail/20-$_plugname.conf" } +md5sums=('SKIP' + '12c6a3abeadfa915fcfe736bb047a3ab' + '7f95d6bafef697a65b2a1622dd9790ad' + '23e9fbdccd207463c1f7d632b58d2a78' + '397dfba03003ba28c5f95d0855497d78') diff --git a/compile.patch b/compile.patch new file mode 100644 index 000000000000..e86606007ad3 --- /dev/null +++ b/compile.patch @@ -0,0 +1,71 @@ +diff -ruN vdr-sc/cam.c vdr-sc-build/cam.c +--- vdr-sc/cam.c 2018-03-05 19:08:36.744797044 +0100 ++++ vdr-sc-build/cam.c 2018-03-05 19:09:46.336267614 +0100 +@@ -2187,7 +2187,10 @@ + if(caidTimer.TimedOut() || force || (rebuildcaids && triggerTimer.TimedOut())) { + PRINTF(L_CORE_CAIDS,"%s: building caid lists",devId); + cChannelList list(devId); ++ ++ + { ++#if VDRVERSNUM >= 20301 + LOCK_CHANNELS_READ; + for(const cChannel *channel=Channels->First(); channel; channel=Channels->Next(channel)) { + if(!channel->GroupSep() && channel->Ca()>=CA_ENCRYPTED_MIN && device->ProvidesTransponder(channel)) { +@@ -2195,7 +2198,18 @@ + if(ch) list.Add(ch); + } + } ++#else ++ Channels.Lock(false); ++ for(const cChannel *channel=Channels.First(); channel; channel=Channels.Next(channel)) { ++ if(!channel->GroupSep() && channel->Ca()>=CA_ENCRYPTED_MIN && device->ProvidesTransponder(channel)) { ++ cChannelCaids *ch=new cChannelCaids(channel); ++ if(ch) list.Add(ch); ++ } ++ } ++Channels.Unlock(); ++#endif + } ++ + list.Unique(true); + list.CheckIgnore(); + list.Unique(false); +diff -ruN vdr-sc/cam.h vdr-sc-build/cam.h +--- vdr-sc/cam.h 2018-03-05 19:08:36.744797044 +0100 ++++ vdr-sc-build/cam.h 2018-03-05 19:09:46.336267614 +0100 +@@ -59,6 +59,15 @@ + + // ---------------------------------------------------------------- + ++#ifndef CA_SET_PID /* removed in kernel 4.14 */ ++typedef struct ca_pid { ++ unsigned int pid; ++ int index; /* -1 == disable */ ++} ca_pid_t; ++#define CA_SET_PID _IOW('o', 135, struct ca_pid) ++#endif ++ ++ + #ifndef SASC + class cCiFrame { + private: + +diff -ruN vdr-sc/device.h vdr-sc-build/device.h +--- vdr-sc/device.h 2018-03-05 19:08:36.784792143 +0100 ++++ vdr-sc-build/device.h 2018-03-05 19:13:34.758255034 +0100 +@@ -51,6 +51,14 @@ + #define DVB_DEV_SPEC CardIndex(),0 + #endif + ++#ifndef CA_SET_PID /* removed in kernel 4.14 */ ++typedef struct ca_pid { ++ unsigned int pid; ++ int index; /* -1 == disable */ ++} ca_pid_t; ++#define CA_SET_PID _IOW('o', 135, struct ca_pid) ++#endif ++ + // ---------------------------------------------------------------- + + #ifndef SASC diff --git a/vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff b/vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff new file mode 100644 index 000000000000..4d084343c91e --- /dev/null +++ b/vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff @@ -0,0 +1,71 @@ +diff -r 29b7b5f231c8 cam.c +--- a/cam.c Sat Jul 21 20:51:33 2012 +0200 ++++ b/cam.c Wed Jan 08 16:47:38 2014 +0400 +@@ -1841,7 +1841,7 @@ + cScCamSlot(cCam *Cam, const char *DevId, int Slot); + void Process(const unsigned char *data, int len); + eModuleStatus Status(void); +- bool Reset(bool log=true); ++ bool ResetSlot(bool log=true); + cCiFrame *Frame(void) { return &frame; } + }; + +@@ -1853,7 +1853,7 @@ + cam=Cam; devId=DevId; slot=Slot; + version=0; caids[0]=0; doReply=false; lastStatus=msReset; + frame.SetRb(&rb); +- Reset(false); ++ ResetSlot(false); + } + + eModuleStatus cScCamSlot::Status(void) +@@ -1876,7 +1876,7 @@ + return status; + } + +-bool cScCamSlot::Reset(bool log) ++bool cScCamSlot::ResetSlot(bool log) + { + reset=true; resetTimer.Set(SLOT_RESET_TIME); + rb.Clear(); +@@ -1890,7 +1890,7 @@ + bool dr=cam->IsSoftCSA(false) || ScSetup.ConcurrentFF>0; + if(dr!=doReply && !IsDecrypting()) { + PRINTF(L_CORE_CI,"%s.%d: doReply changed, reset triggered",devId,slot); +- Reset(false); ++ ResetSlot(false); + doReply=dr; + } + if(checkTimer.TimedOut()) { +@@ -2330,7 +2330,7 @@ + { + cMutexLock lock(&ciMutex); + PRINTF(L_CORE_CI,"%s: reset of slot %d requested",devId,Slot); +- return slots[Slot] ? slots[Slot]->Reset():false; ++ return slots[Slot] ? slots[Slot]->ResetSlot():false; + } + + eModuleStatus cCam::ModuleStatus(int Slot) +--- a/device-tmpl.c 2012-07-21 20:51:33.000000000 +0200 ++++ b/device-tmpl.c 2014-01-26 13:51:59.000000000 +0100 +@@ -41,7 +41,6 @@ + #endif //!SASC + protected: + #ifndef SASC +- virtual bool Ready(void); + virtual bool SetPid(cPidHandle *Handle, int Type, bool On); + virtual bool SetChannelDevice(const cChannel *Channel, bool LiveView); + virtual bool OpenDvr(void); +@@ -164,12 +163,6 @@ + return cam || hwciadapter; + } + +-bool SCDEVICE::Ready(void) +-{ +- return (cam ? cam->Ready():true) && +- (hwciadapter ? hwciadapter->Ready():true); +-} +- + bool SCDEVICE::SetPid(cPidHandle *Handle, int Type, bool On) + { + if(cam) cam->SetPid(Type,Handle->pid,On); |