blob: d4ad9c1c4bde68ea739df18c9b3dd3720502c716 [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
Patrick Williamsddad1a12017-02-23 20:36:32 -060058do_install_append() {
59 rm -r ${D}/${localstatedir}/run
60}
Patrick Williamsb48b7b42016-08-17 15:04:38 -050061
62do_install () {
63 rm -rf ${D}
64 install -d ${D}/etc
65 install -dm 755 ${D}/lib/udev
66 # fix up hardcoded paths
67 sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
68 ${WORKDIR}/openct.service ${WORKDIR}/openct.init
69
70 oe_runmake install DESTDIR=${D}
71 install -dm 755 ${D}${libdir}/ctapi/
72 mv ${D}${libdir}/libopenctapi.so ${D}${libdir}/ctapi/
73 install -Dpm 644 etc/openct.udev ${D}/etc/udev/rules.d/60-openct.rules
74 install -pm 644 etc/openct.conf ${D}/etc/openct.conf
75
76 install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct
77 install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct
78
79 if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
80 install -d ${D}/${systemd_unitdir}/system
81 install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
82 fi
83
84 so=$(find ${D} -name \*.so | sed "s|^${D}||")
85 sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
86 install -Dpm 644 etc/reader.conf ${D}/etc/reader.conf.d/openct.conf
87
88 install -dm 755 ${D}${localstatedir}/run/openct
89 touch ${D}${localstatedir}/run/openct/status
90 chmod 644 ${D}${localstatedir}/run/openct/status
91}
92
93pkg_postinst_${PN} () {
94 ln -sf ctapi/libopenctapi.so ${libdir}/libopenctapi.so
95}