创建 .deb: dpkg-genbuildinfo: .buildinfo 毫无意义

创建 .deb: dpkg-genbuildinfo: .buildinfo 毫无意义

所以我也想创建一个 .deb 文件。我现在被这个错误阻止了:

dh_installdeb
 dpkg-genbuildinfo
dpkg-genbuildinfo: error: binary build with no binary artifacts found; .buildinfo is meaningless

我很难找到相关信息。

当然,我的食谱可能不正确,所以我会很感激任何评论!


我正在从源代码构建一个 .deb。

debian/我的文件夹中有:

  • 兼容 10
  • 版权
  • 变更日志
  • 控制
  • 规则

我的控制文件:

Source: foo
Maintainer: foo developers
Section: Web Software
Priority: extra
Version: 1.3.1
Standards-Version: 1.3.1
Build-Depends: debhelper (>= 8.0.0)

Package: foo
Architecture: any
Priority: extra
Homepage: http://foo.com
Depends: sbcl (>= 1.3),
         ${shlibs:Depends},
         libwebkit2gtk-4.0-dev (>= 2.24),
         default-dbus-session-bus | dbus-session-bus,
         glib-networking,
         sqlite,
         gsettings-desktop-schemas,
         libfixposix,
         gstreamer,
         gst-plugins-base-1.0,
         xclip,
         ${misc:Depends}
Description: foo
  foo is foo.

我的规则文件:

#!/usr/bin/make -f
DH_VERBOSE = 1

%:
    dh $@

NAME=foo
VERSION=1.3.1
DESTDIR=$(CURDIR)/debian/$(NAME)/


build:
    dh_testdir
    dh_testroot
    dh_prep
    make all

# I quickly tried this
# override_dh_auto_build:
    # dh_auto_build -- all
# with no apparent effect
# (I want to call `make all` of my Makefile).

binary:
    dh_testdir
    dh_testroot
    dh_installchangelogs
    dh_prep
    echo $(DESTDIR)
    make install DESTDIR=$(DESTDIR)

    dh_installdeb
    # dh_gencontrol
    # dh_md5sums
    # dh_builddeb  # only for binary packages ?

# override_dh_auto_binary:
    # make install

clean:
    dh_testdir
    dh_testroot
    # make clean DESTDIR=$(DESTDIR)
    # dh_clean

(请注意,我尝试使用override_dh_auto_build但没有明显成功。我想调用make all我的 Makefile)。


我运行一切

sudo debuild -us -uc

我可以看到编译步骤,直到出现错误信息。

我在 下看到我的二进制文件debian/foo/usr/local/bin

有一个目录debian/foo/DEBIAN/,但是是空的。

请注意,当我仅使用

sudo fakeroot debian/rules binary

一切顺利:

for i in 16 32 128 256 512; do \
    mkdir -p "/home/vince/work/foo/debian/foo//usr/local/share/icons/hicolor/${i}x${i}/apps/" ; \
    cp -f assets/foo_${i}x${i}.png "/home/vince/work/foo/debian/foo//usr/local/share/icons/hicolor/${i}x${i}/apps/foo.png" ; \
    done
make[1]: Leaving directory '/home/vince/work/foo'
dh_installdeb
# dh_gencontrol
# dh_md5sums
# dh_builddeb  # only binary packages ?
# make install

谢谢!


我正在查看的文档:

答案1

我意识到build用大量“dh_”规则来定义目标并不是可行的方法。

我重写了它

override_dh_auto_build:
    $(MAKE) all

我还添加了

override_dh_usrlocal:
    echo

以避免

桌面不是目录

我无法理解的错误,但我的 .deb 构建得很好。

我还有一个

dpkg-genbuildinfo:错误:文件列表文件中第 2 行格式错误

但最后还是如此。

相关内容