blob: bf1ff570b384efcbe7962e30ea915c8b46dc01d3 [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001Summanry = "Middleware framework for smart card terminals"
2DESCRIPTION = " \
3OpenCT implements drivers for several smart card readers. \
4It comes as driver in ifdhandler format for PC/SC-Lite, \
5as CT-API driver, or as a small and lean middleware, \
6so applications can use it with minimal overhead. \
7OpenCT also has a primitive mechanism to export smart card \
8readers to remote machines via TCP/IP."
9
10DEPENDS += "libtool pcsc-lite libusb-compat"
11
12SRC_URI = " \
13 ${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \
14 file://etc-openct.udev.in-disablePROGRAM.patch \
15 file://etc-openct_usb.in-modify-UDEVINFO.patch \
16 file://openct.init \
17 file://openct.sysconfig \
18 file://openct.service \
19"
20
21SRC_URI[md5sum] = "a1da3358ab798f1cb9232f1dbababc21"
22SRC_URI[sha256sum] = "6cd3e2933d29eb1f875c838ee58b8071fd61f0ec8ed5922a86c01c805d181a68"
23
24LICENSE = "LGPLv2+"
25LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
26
27inherit ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','systemd','systemd','', d)}
28SYSTEMD_SERVICE_${PN} += "openct.service "
29SYSTEMD_AUTO_ENABLE = "enable"
30
31EXTRA_OECONF=" \
32 --disable-static \
33 --enable-usb \
34 --enable-pcsc \
35 --enable-doc \
36 --enable-api-doc \
37 --with-udev=/lib/udev \
38 --with-bundle=${libdir}/pcsc/drivers \
39"
40
41inherit autotools pkgconfig
42
43FILES_${PN} += " \
44 ${libdir}/ctapi \
45 /lib/udev \
46 ${libdir}/openct-ifd.so \
47 ${libdir}/pcsc \
48 /run/openct/status \
49"
50
51FILES_${PN}-dbg += " \
52 ${libdir}/ctapi/.debug \
53 ${libdir}/pcsc/drivers/openct-ifd.bundle/Contents/Linux/.debug \
54"
55
56INSANE_SKIP_${PN} += "dev-deps"
57
58
59do_install () {
60 rm -rf ${D}
61 install -d ${D}/etc
62 install -dm 755 ${D}/lib/udev
63 # fix up hardcoded paths
64 sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
65 ${WORKDIR}/openct.service ${WORKDIR}/openct.init
66
67 oe_runmake install DESTDIR=${D}
68 install -dm 755 ${D}${libdir}/ctapi/
69 mv ${D}${libdir}/libopenctapi.so ${D}${libdir}/ctapi/
70 install -Dpm 644 etc/openct.udev ${D}/etc/udev/rules.d/60-openct.rules
71 install -pm 644 etc/openct.conf ${D}/etc/openct.conf
72
73 install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct
74 install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct
75
76 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
77 install -d ${D}/${systemd_unitdir}/system
78 install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
79 fi
80
81 so=$(find ${D} -name \*.so | sed "s|^${D}||")
82 sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
83 install -Dpm 644 etc/reader.conf ${D}/etc/reader.conf.d/openct.conf
84
85 install -dm 755 ${D}${localstatedir}/run/openct
86 touch ${D}${localstatedir}/run/openct/status
87 chmod 644 ${D}${localstatedir}/run/openct/status
88}
89
90pkg_postinst_${PN} () {
91 ln -sf ctapi/libopenctapi.so ${libdir}/libopenctapi.so
92}