Updating Emdebian patches

This example assumes that you have built a few packages with emdebian-tools over a period of time and now those builds are likely to be out of date. (Most of the commands here provide far too much output to include on the Wiki.)

  1. Find out where you stand
    • embuildstats - see the overall status of your builds, find out which ones have not built at all (no .changes file), which have not built inside the Emdebian development chroot (no empdebuild) and which have not been uploaded. Newer versions (>= 0.9.4 or r3341 or later from SVN) include support for running all built packages against the [EmdebianPolicy Emdebian lintian check set] - a more thorough quality test than the previous build checks implemented in emdebuild.

    • embug -u - find out which packages have had cross-building bugs closed.

    • emtargetcmp - find out which packages are older in Emdebian than in Debian.

    • emsource --status $package - get a detailed break down on a package-specific basis.

      $ emsource --status atk1.0
      Checking the apt-cross cache is up to date for arm.
      W: Unable to locate package libatk1.0-udeb
      Checking status of atk1.0 in /opt/emdebian/trunk/a/atk1.0/trunk/
      6 emdebian patch files
      0 debian patch files
      
      Checking emdebuild status in /opt/emdebian/trunk/a/atk1.0/trunk/
      build log:
      /opt/emdebian/trunk/a/atk1.0/trunk/atk1.0_1.22.0-1em1_arm.build
      .changes:
      /opt/emdebian/trunk/a/atk1.0/trunk/atk1.0_1.22.0-1em1_arm.changes
      Running lintian checks for Emdebian only.
      Finished running lintian.
      
      Checking empdebuild status
      atk1.0 may be out of date.
      Checking for error logs in /opt/emdebian/trunk/a/atk1.0/trunk/
      Checking bug status
      No open cross-building bugs for atk1.0
      (the package is described as out of date because the new build has not yet been uploaded to the Emdebian repository.)
  2. Update your Emdebian patches
    • emsource -c $package - clean up your build directory, get the newest Emdebian patches and apply them. Change into the build directory to start a build.

    • emdebuild - Newer versions (>= 0.9.4 or r3341 or later from SVN) will test your build against the Emdebian lintian check set. The build will fail if you get any errors from this check.

    • Fix the build, if appropriate

      • See the EmdebianGuide for help on how to fix package builds - it may be as simple as removing lines that install manpages.

      • emdebuild --svn-only (for those with developer / commit access to Emdebian SVN) to update the patches for others to use.

    • embug -r once you are convinced that the problems are fixed.

  3. Repeat for more packages
  4. Prepare an upload (requires developer access)
    • emrecent - uses zenity if installed, otherwise whiptail to show you various elements of the build and then checks the packages against the current Emdebian repository to ensure that the upload will not cause these or existing packages to become uninstallable.

    • In case of error, fix the problem and run emsource --status $package to review the error log. Remove the emrecent error log file as described in the emsource output.

  5. To check the package without uploading, use emdebcheck $changes_file