Skip to content
Snippets Groups Projects
  • Christian Marangi's avatar
    349c3c16
    quilt.mk: don't error on refresh/update if patches doesn't exist · 349c3c16
    Christian Marangi authored
    
    The current code fails if we have package or host tools with no patches
    to apply. The error printend is the following: (taking ubus as an
    example)
    
    make[2]: Entering directory '/home/ansuel/openwrt-ansuel/openwrt/scripts/config'
    make[2]: 'conf' is up to date.
    make[2]: Leaving directory '/home/ansuel/openwrt-ansuel/openwrt/scripts/config'
    make[1]: Entering directory '/home/ansuel/openwrt-ansuel/openwrt'
    make[2]: Entering directory '/home/ansuel/openwrt-ansuel/openwrt/package/system/ubus'
    The source directory contains no quilt patches.
    make[2]: *** [Makefile:81: quilt-check] Error 1
    make[2]: Leaving directory '/home/ansuel/openwrt-ansuel/openwrt/package/system/ubus'
    time: package/system/ubus/refresh#0.06#0.00#0.07
        ERROR: package/system/ubus failed to build.
    make[1]: *** [package/Makefile:120: package/system/ubus/refresh] Error 1
    make[1]: Leaving directory '/home/ansuel/openwrt-ansuel/openwrt'
    make: *** [/home/ansuel/openwrt-ansuel/openwrt/include/toplevel.mk:232: package/ubus/refresh] Error 2
    
    We exit 1 after saying that there are no patches because later in the
    function quilt pop fails to execute.
    
    Having no patches for a package and calling refresh should not be
    a critical error and the function should just do nothing.
    
    To handle this improve quilt.mk with the following addition.
    - If we don't have any patch for the package, we print a warning and we
      create an empty series. This is useful to trick quilt and make it do
      nothing.
      We also create a status file .quilt_no_patch to detect in the other
      function that we don't have patches to handle.
    - In refresh makefile target, we check if .quilt_no_patch exist and
      we skip quilt cleanup if this exist.
    - In RefreshDir function we change the logic and now we delete the
      patches directory and not only the content. This is done as a cleanup
      to clean case with empty patches directory.
    - In RefreshDir we check if .quilt_no_patch exist and we skip creating
      the patches directory and copying the refreshed patches.
    - In RefreshDir we delete at the end any trace of .quilt_no_patch if
      present.
    
    This is needed to support run like package/refresh that will run the
    refresh process on any package present in the buildroot.
    
    Signed-off-by: default avatarChristian Marangi <ansuelsmth@gmail.com>
    (cherry picked from commit 9536446965e853231e34c4e5dc4cf13f838b9e90)
    349c3c16
    History
    quilt.mk: don't error on refresh/update if patches doesn't exist
    Christian Marangi authored
    
    The current code fails if we have package or host tools with no patches
    to apply. The error printend is the following: (taking ubus as an
    example)
    
    make[2]: Entering directory '/home/ansuel/openwrt-ansuel/openwrt/scripts/config'
    make[2]: 'conf' is up to date.
    make[2]: Leaving directory '/home/ansuel/openwrt-ansuel/openwrt/scripts/config'
    make[1]: Entering directory '/home/ansuel/openwrt-ansuel/openwrt'
    make[2]: Entering directory '/home/ansuel/openwrt-ansuel/openwrt/package/system/ubus'
    The source directory contains no quilt patches.
    make[2]: *** [Makefile:81: quilt-check] Error 1
    make[2]: Leaving directory '/home/ansuel/openwrt-ansuel/openwrt/package/system/ubus'
    time: package/system/ubus/refresh#0.06#0.00#0.07
        ERROR: package/system/ubus failed to build.
    make[1]: *** [package/Makefile:120: package/system/ubus/refresh] Error 1
    make[1]: Leaving directory '/home/ansuel/openwrt-ansuel/openwrt'
    make: *** [/home/ansuel/openwrt-ansuel/openwrt/include/toplevel.mk:232: package/ubus/refresh] Error 2
    
    We exit 1 after saying that there are no patches because later in the
    function quilt pop fails to execute.
    
    Having no patches for a package and calling refresh should not be
    a critical error and the function should just do nothing.
    
    To handle this improve quilt.mk with the following addition.
    - If we don't have any patch for the package, we print a warning and we
      create an empty series. This is useful to trick quilt and make it do
      nothing.
      We also create a status file .quilt_no_patch to detect in the other
      function that we don't have patches to handle.
    - In refresh makefile target, we check if .quilt_no_patch exist and
      we skip quilt cleanup if this exist.
    - In RefreshDir function we change the logic and now we delete the
      patches directory and not only the content. This is done as a cleanup
      to clean case with empty patches directory.
    - In RefreshDir we check if .quilt_no_patch exist and we skip creating
      the patches directory and copying the refreshed patches.
    - In RefreshDir we delete at the end any trace of .quilt_no_patch if
      present.
    
    This is needed to support run like package/refresh that will run the
    refresh process on any package present in the buildroot.
    
    Signed-off-by: default avatarChristian Marangi <ansuelsmth@gmail.com>
    (cherry picked from commit 9536446965e853231e34c4e5dc4cf13f838b9e90)