根据yocto版本构建(三)源地址dsc进行构建我们可以通过输入一个内部源地址就可以拉取软件包安装,但是我们还需要提供一个功能,如果我们将文件放在recipes内的files下,我们需要手动将其解压和构建,这样可以不依赖源的dsc和文件
根据上面的描述,我们需要从files中获取文件,如下:
inherit kylin inherit deb SRC_URI = "file://ukui-menu_3.0.1-0720.1.dsc;md5=1b897ae127a2d8076a0b318daa720f91\ file://ukui-menu_3.0.1-0720.1.tar.xz;md5=e684d90a713f953179b1a06e8e3401c1 do_deb_prepend() { install -d ${S} install -m 0755 ${WORKDIR}/ukui-menu_3.0.1-0720.1.dsc${S} install -m 0644 ${WORKDIR}/ukui-menu_3.0.1-0720.1.tar.xz ${S} }
这样可以将ukui-menu的文件放到work目录下,然后我们执行dpkg命令即可正常构建
do_fetch
会使用SRC_URI变量定位源码文件;基于SRC_URI变量值中每个条目的前缀来确定使用哪个提取器来获取源文件, file://
开头为本地文件, http://
、git://
等为上游获取的源文件;
我们这里使用了file,这样将其拉到了sysroot内部,这样我们可以通过自己的函数来执行dpkg-buildpackage
。从而构建deb包
其形式类似于yocto版本构建(三)源地址dsc进行构建
至此,我们不仅可以通过远程源地址的dsc文件编译二进制包,也可以通过本地file链接来编译二进制包