This service is available only in Japanese-language.
tinycdbというパッケージを以下のレシピにて追加しているのですが、imageを作成した際にrootfsにシンボリックリンク(libcdb.so)が作成されません。どのような修正をするのが適切でしょうか?
~~tinycdb_0.76.bb~~
SUMMARY = "a Constant DataBase"
DESCRIPTION = "TinyCDB is a very fast and simple package for creating and reading constant data bases, a data structure."
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=dca69c9caec3af9b850379632f912f81"
HOMEAPAGE = "https://www.corpit.ru/mjt/tinycdb.html"
SRC_URI = "https://www.corpit.ru/mjt/tinycdb/tinycdb-${PV}.tar.gz"
SRC_URI[md5sum] = "976266afc3f6e7e17492a8d18f21f8f6"
SRC_URI[sha256sum] = "50678f432d8ada8d69f728ec11c3140e151813a7847cf30a62d86f3a720ed63c"
S = "${WORKDIR}/tinycdb-${PV}"
FILES_${PN} += "/usr/bin/cdb"
FILES_${PN} += "/usr/lib/libcdb.so.1"
FILES_${PN} += "/usr/lib/libcdb.so"
EXTRA_OEMAKE = " \
prefix='/usr' \
CC='${CC}' \
CFLAGS='${CFLAGS}' \
LD='${CC}' \
LDFLAGS='${LDFLAGS}' \
AR='${AR}' \
DESTDIR='${D}/' \
"
do_compile() {
oe_runmake all
oe_runmake sharedlib
}
do_install() {
#oe_runmake install
#oe_runmake install-sharedlib
install -d ${D}/usr/bin
install -m 755 cdb ${D}/usr/bin
install -d ${D}/usr/lib
install -m 755 libcdb.so.1 ${D}/usr/lib
ln -s -r ${D}/usr/lib/libcdb.so.1 ${D}/usr/lib/libcdb.so
}
~~~ここまで~~~
bitbake tinycdb
にてtmp/work/..../tinycdb/0.78-r0/image/usr/libにシンボリックリンクが生成されるのは確認できていますが、
独自のimageをbitbakeして作成されたrootfsにはシンボリックリンクが生成されません。
みつきん
2023/12/26 (火) 12:13
libcdb.soをルートFSに含める方法について
回答が遅くなってしまい申し訳ありません。
本件回答いたします。
通常シンボリックリンクである「libcdb.so」は開発用パッケージである「tinycdb-dev」に含まれます。
ルートファイルシステム上にこのファイルを含めたい場合「tinycdb-dev」をIMAGE_INSTALLに含めることになります。
レシピから作成されるパッケージにどのファイルが格納されるかは作業ディレクトリのpackages-splitで確認できます。
tinycdbでは下記のようになります。
---
.
├── tinycdb
│ └── usr
│ ├── bin
│ │ └── cdb
│ └── lib
│ └── libcdb.so.1
├── tinycdb-dbg
│ └── usr
│ ├── bin
│ └── lib
├── tinycdb-dev
│ └── usr
│ ├── include
│ │ └── cdb.h
│ └── lib
│ └── libcdb.so -> libcdb.so.1
├── tinycdb-doc
├── tinycdb-locale
├── tinycdb-src
├── tinycdb-staticdev
│ └── usr
│ └── lib
│ └── libcdb.a
└── tinycdb.shlibdeps
---
また、レシピがご提示いただいた内容でエラーになってしまったので、テスト用に作成してみました。
ご参考までに記載しておきます。
---
SUMMARY = "A package for maintenance of constant databases"
LICENSE = "PD"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=dca69c9caec3af9b850379632f912f81"
SRC_URI = "https://www.corpit.ru/mjt/tinycdb/tinycdb_${PV}.tar.gz"
SRC_URI[md5sum] = "77db6fa098b674819ba1e06689bc87e8"
SRC_URI[sha1sum] = "a048055a997c247c0ab88262b2cee5aa1e711920"
EXTRA_OEMAKE = " \
prefix='/usr' \
CC='${CC}' \
"
INSANE_SKIP_${PN} = "ldflags"
INSANE_SKIP_${PN}-dev = "ldflags"
do_compile () {
oe_runmake
oe_runmake sharedlib
}
do_install () {
oe_runmake install 'DESTDIR=${D}'
oe_runmake install-sharedlib 'DESTDIR=${D}'
rm -rf ${D}/usr/man
}
---
不明点がございましたら、お知らせください。