• 如何根据debian本土源码包制作第一个patch包


    1 介绍

    在 debian/source/format 中只包含一行,写明了此源代码包的格式(查看 dpkg-source(1) 获得完整列表)。在 squeeze 后,它应该是以下二者之一:

    • 3.0 (native) - Debian 本土软件或者

    • 3.0 (quilt) - 其他所有软件

    全新的 3.0 (quilt) 源代码格式将所有修改使用 quilt 补丁系列记录到 debian/patches。这些修改会在解压源代码包时自动应用。[58] Debian 修改保存于 debian.tar.gz 归档文件,其中包含了整个 debian 目录。这个新格式支持直接添加例如 PNG 图标等的二进制文件。[59]

    dpkg-source 解压 3.0 (quilt) 格式的源码包时会自动应用所有列于 debian/patches/series 的补丁。你可以使用 --skip-patches 选项避免在解压后自动应用补丁。

    2 使用dpkg-source制作patch的方式

    1)下载本土源码包,包含  ${packagename}_${version}.dsc和 ${packagename}_${version}.debian.tar.xz两个文件

    wget -c .dsc文件url .debian.tar.xz文件url

    2)解压源码包

    dpkg-source -x ${packagename}_${version}.dsc

    3)由于源码包不包含${packagename}_${version}.orig.tar.gz文件,需要先手动根据上面的源码包生成最原始的upstream上游源码包。如下:

    cd ${packagename}  // 进入解压后的源码路径

    vim debian/source/format   // 3.0 (native)修改为3.0 (quilt),改为补丁方式

    cd ..

    tar -zcvf 包名_changelog最新的版本.orig.tar.gz --exclude=.git 源码路径

    或者:

    a. 修改debian/source/format文件,改为3.0 (quilt):

    mkdir -p debian/source

    echo "3.0 (quilt)" > debian/source/format

    b. 打包orig.tar:

    debmake -t

    4)后面就可以进入源码路径去修改代码了,修改完后,用下面命令生成patch包

    dpkg-source --commit [

    []]

    输入patch包名xxx.patch

    完成后会在debian/patchs目录下看到新的patch包

    5)打包源码,命令如下:

    debuild -sa -S -nc

    6)cd .., 可以看到已打包完成,可以提交launchpad了。这时,源码包包含了:{packagename}_${version}.dsc、 ${packagename}_${version}.debian.tar.xz、${packagename}_${version}.orig.tar.gz 3个文件。

    3 其它如quilt命令等打包patch的方法介绍文章后很多,这里不再详述。

  • 相关阅读:
    Flink内部数据交换源码分析(二)之上游输出以及下游读取过程
    RibbitMQ学习笔记之MQ练习
    实现mnist手写数字识别
    如何在 Elasticsearch 中选择精确 kNN 搜索和近似 kNN 搜索
    浅谈C++函数
    Django AssertionError: .accepted_renderer not set on Response
    聊聊并发编程的10个坑,千万小心!!!
    Docker仓库harbor
    pdf怎么转换成ppt呢?两个特别简单的方法
    数据库安全与保护
  • 原文地址:https://blog.csdn.net/zhaominyong/article/details/127791202