Oscam is an Open Source Conditional Access Module software used for descrambling DVB transmissions using smart cards. It's both a server and a client.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.3 KiB

  1. FROM lsiobase/alpine:3.7
  2. # set version label
  3. ARG BUILD_DATE
  4. ARG VERSION
  5. LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
  6. LABEL maintainer="saarg"
  7. RUN \
  8. echo "**** install build packages ****" && \
  9. apk add --no-cache --virtual=build-dependencies \
  10. bzr \
  11. curl \
  12. gcc \
  13. g++ \
  14. libusb-dev \
  15. linux-headers \
  16. make \
  17. libressl-dev \
  18. pcsc-lite-dev \
  19. tar && \
  20. echo "**** install runtime packages ****" && \
  21. apk add --no-cache \
  22. ccid \
  23. libcrypto1.0 \
  24. libssl1.0 \
  25. libusb \
  26. pcsc-lite \
  27. pcsc-lite-libs && \
  28. echo "**** compile oscam ****" && \
  29. bzr branch lp:oscam /tmp/oscam-svn && \
  30. cd /tmp/oscam-svn && \
  31. ./config.sh \
  32. --enable all \
  33. --disable \
  34. CARDREADER_DB2COM \
  35. CARDREADER_INTERNAL \
  36. CARDREADER_STINGER \
  37. CARDREADER_STAPI \
  38. CARDREADER_STAPI5 \
  39. IPV6SUPPORT \
  40. LCDSUPPORT \
  41. LEDSUPPORT \
  42. READ_SDT_CHARSETS && \
  43. echo "**** attempt to set number of cores available for make to use ****" && \
  44. set -ex && \
  45. CPU_CORES=$( < /proc/cpuinfo grep -c processor ) || echo "failed cpu look up" && \
  46. if echo $CPU_CORES | grep -E -q '^[0-9]+$'; then \
  47. : ;\
  48. if [ "$CPU_CORES" -gt 7 ]; then \
  49. CPU_CORES=$(( CPU_CORES - 3 )); \
  50. elif [ "$CPU_CORES" -gt 5 ]; then \
  51. CPU_CORES=$(( CPU_CORES - 2 )); \
  52. elif [ "$CPU_CORES" -gt 3 ]; then \
  53. CPU_CORES=$(( CPU_CORES - 1 )); fi \
  54. else CPU_CORES="1"; fi && \
  55. make -j $CPU_CORES \
  56. CONF_DIR=/config \
  57. DEFAULT_PCSC_FLAGS="-I/usr/include/PCSC" \
  58. NO_PLUS_TARGET=1 \
  59. OSCAM_BIN=/usr/bin/oscam \
  60. pcsc-libusb && \
  61. set +ex && \
  62. echo "**** fix broken permissions from pcscd install ****" && \
  63. chown root:root \
  64. /usr/sbin/pcscd && \
  65. chmod 755 \
  66. /usr/sbin/pcscd && \
  67. echo "**** install PCSC drivers ****" && \
  68. mkdir -p \
  69. /tmp/omnikey && \
  70. curl -o \
  71. /tmp/omnikey.tar.gz -L \
  72. https://www.hidglobal.com/sites/default/files/drivers/ifdokccid_linux_x86_64-v4.2.8.tar.gz && \
  73. tar xzf \
  74. /tmp/omnikey.tar.gz -C \
  75. /tmp/omnikey --strip-components=2 && \
  76. cd /tmp/omnikey && \
  77. ./install && \
  78. echo "**** fix group for card readers and add abc to dialout group ****" && \
  79. groupmod -g 24 cron && \
  80. groupmod -g 16 dialout && \
  81. usermod -a -G 16 abc && \
  82. echo "**** cleanup ****" && \
  83. apk del --purge \
  84. build-dependencies && \
  85. rm -rf \
  86. /tmp/*
  87. # copy local files
  88. COPY root/ /
  89. # Ports and volumes
  90. EXPOSE 8888
  91. VOLUME /config