summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorknedlyk2019-01-27 12:37:43 +0100
committerknedlyk2019-01-27 12:37:43 +0100
commit2dc522b74a5a6187c5c676afb40dbf406751b741 (patch)
treefb8e697ff6a00c5ca02a591166050fa81bdddea4
parentcc33d94d2c760b34ce6d81daeec67268e99d98a0 (diff)
downloadaur-2dc522b74a5a6187c5c676afb40dbf406751b741.tar.gz
Compile for vdr-2.4.0
-rw-r--r--.SRCINFO23
-rw-r--r--Makefile.patch14
-rw-r--r--PKGBUILD97
-rw-r--r--compile.patch71
-rw-r--r--vdr-sc-0.9.3.20120815_vdr-2.1.4_compilefix.diff71
5 files changed, 229 insertions, 47 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 248791d9d346..7c919399f5c4 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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)
diff --git a/PKGBUILD b/PKGBUILD
index 9d7f78282553..dbfdf58e25f3 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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);