1288
1288
#: ../ubuntu-packaging-guide/index.rst:11
1289
msgid "Welcome to the Ubuntu Packaging and Development Guide! We are currently developing codename Artful Aardvark, which is to be released in October 2017 as Ubuntu 17.10."
1289
msgid "Welcome to the Ubuntu Packaging and Development Guide!"
1292
#: ../ubuntu-packaging-guide/index.rst:15
1292
#: ../ubuntu-packaging-guide/index.rst:13
1293
1293
msgid "This is the official place for learning all about Ubuntu Development and packaging. After reading this guide you will have:"
1296
#: ../ubuntu-packaging-guide/index.rst:16
1297
msgid "Heard about the most important players, processes and tools in Ubuntu development,"
1296
1300
#: ../ubuntu-packaging-guide/index.rst:18
1297
msgid "Heard about the most important players, processes and tools in Ubuntu development,"
1300
#: ../ubuntu-packaging-guide/index.rst:20
1301
1301
msgid "Your development environment set up correctly,"
1304
#: ../ubuntu-packaging-guide/index.rst:21
1304
#: ../ubuntu-packaging-guide/index.rst:19
1305
1305
msgid "A better idea of how to join our community,"
1308
#: ../ubuntu-packaging-guide/index.rst:20
1309
msgid "Fixed an actual Ubuntu bug as part of the tutorials."
1308
1312
#: ../ubuntu-packaging-guide/index.rst:22
1309
msgid "Fixed an actual Ubuntu bug as part of the tutorials."
1312
#: ../ubuntu-packaging-guide/index.rst:24
1313
1313
msgid "Ubuntu is not only a free and open source operating system, its platform is also open and developed in a transparent fashion. The source code for every single component can be obtained easily and every single change to the Ubuntu platform can be reviewed."
1316
#: ../ubuntu-packaging-guide/index.rst:29
1316
#: ../ubuntu-packaging-guide/index.rst:27
1317
1317
msgid "This means you can actively get involved in improving it and the community of Ubuntu platform developers is always interested in helping peers getting started."
1320
#: ../ubuntu-packaging-guide/index.rst:33
1320
#: ../ubuntu-packaging-guide/index.rst:31
1321
1321
msgid "Ubuntu is also a community of great people who believe in free software and that it should be accessible for everyone. Its members are welcoming and want you to be involved as well. We want you to get involved, to ask questions, to make Ubuntu better together with us."
1324
#: ../ubuntu-packaging-guide/index.rst:38
1324
#: ../ubuntu-packaging-guide/index.rst:36
1325
1325
msgid "If you run into problems: don't panic! Check out the :doc:`communication article<./communication>` and you will find out how to most easily get in touch with other developers."
1328
#: ../ubuntu-packaging-guide/index.rst:40
1329
msgid "The guide is split up into two sections:"
1328
1332
#: ../ubuntu-packaging-guide/index.rst:42
1329
msgid "The guide is split up into two sections:"
1332
#: ../ubuntu-packaging-guide/index.rst:44
1333
1333
msgid "A list of articles based on tasks, things you want to get done."
1336
#: ../ubuntu-packaging-guide/index.rst:45
1336
#: ../ubuntu-packaging-guide/index.rst:43
1337
1337
msgid "A set of knowledge-base articles that dig deeper into specific bits of our tools and workflows."
1340
#: ../ubuntu-packaging-guide/index.rst:49
1340
#: ../ubuntu-packaging-guide/index.rst:47
1341
1341
msgid "Articles"
1344
#: ../ubuntu-packaging-guide/index.rst:66
1344
#: ../ubuntu-packaging-guide/index.rst:64
1345
1345
msgid "Knowledge Base"
1665
1665
#: ../ubuntu-packaging-guide/packaging-new-software.rst:23
1666
msgid "If you don't have the build tools lets make sure we have them first. Also if you don't have the required dependencies lets install those as well."
1669
#: ../ubuntu-packaging-guide/packaging-new-software.rst:26
1670
msgid "Install build tools::"
1673
#: ../ubuntu-packaging-guide/packaging-new-software.rst:30
1674
msgid "Download main package::"
1677
#: ../ubuntu-packaging-guide/packaging-new-software.rst:34
1678
msgid "Now uncompress main package::"
1681
#: ../ubuntu-packaging-guide/packaging-new-software.rst:39
1666
msgid "Download GNU Hello::"
1669
#: ../ubuntu-packaging-guide/packaging-new-software.rst:27
1670
msgid "Now uncompress it::"
1673
#: ../ubuntu-packaging-guide/packaging-new-software.rst:32
1682
1674
msgid "This application uses the autoconf build system so we want to run ``./configure`` to prepare for compilation."
1685
#: ../ubuntu-packaging-guide/packaging-new-software.rst:42
1677
#: ../ubuntu-packaging-guide/packaging-new-software.rst:35
1686
1678
msgid "This will check for the required build dependencies. As ``hello`` is a simple example, ``build-essential`` should provide everything we need. For more complex programs, the command will fail if you do not have the needed libraries and development files. Install the needed packages and repeat until the command runs successfully.::"
1689
#: ../ubuntu-packaging-guide/packaging-new-software.rst:50
1681
#: ../ubuntu-packaging-guide/packaging-new-software.rst:43
1690
1682
msgid "Now you can compile the source::"
1693
#: ../ubuntu-packaging-guide/packaging-new-software.rst:54
1685
#: ../ubuntu-packaging-guide/packaging-new-software.rst:47
1694
1686
msgid "If compilation completes successfully you can install and run the program::"
1697
#: ../ubuntu-packaging-guide/packaging-new-software.rst:60
1689
#: ../ubuntu-packaging-guide/packaging-new-software.rst:53
1698
1690
msgid "Starting a Package"
1701
#: ../ubuntu-packaging-guide/packaging-new-software.rst:62
1702
msgid "``bzr-builddeb`` includes a plugin to create a new package from a template. The plugin is a wrapper around the ``dh_make`` command. You should already have these if you installed ``packaging-dev``. Run the command providing the package name, version number, and path to the upstream tarball::"
1693
#: ../ubuntu-packaging-guide/packaging-new-software.rst:55
1694
msgid "``bzr-builddeb`` includes a plugin to create a new package from a template. The plugin is a wrapper around the ``dh_make`` command. Run the command providing the package name, version number, and path to the upstream tarball::"
1705
#: ../ubuntu-packaging-guide/packaging-new-software.rst:71
1697
#: ../ubuntu-packaging-guide/packaging-new-software.rst:63
1706
1698
msgid "When it asks what type of package type ``s`` for single binary. This will import the code into a branch and add the ``debian/`` packaging directory. Have a look at the contents. Most of the files it adds are only needed for specialist packages (such as Emacs modules) so you can start by removing the optional example files::"
1709
#: ../ubuntu-packaging-guide/packaging-new-software.rst:80
1701
#: ../ubuntu-packaging-guide/packaging-new-software.rst:72
1710
1702
msgid "You should now customise each of the files."
1713
#: ../ubuntu-packaging-guide/packaging-new-software.rst:82
1714
msgid "In ``debian/changelog`` change the version number to an Ubuntu version: ``2.7-0ubuntu1`` (upstream version 2.7, Debian version 0, Ubuntu version 1). Also change ``unstable`` to the current development Ubuntu release such as ``trusty``."
1705
#: ../ubuntu-packaging-guide/packaging-new-software.rst:74
1706
msgid "In ``debian/changelog`` change the version number to an Ubuntu version: ``2.10-0ubuntu1`` (upstream version 2.10, Debian version 0, Ubuntu version 1). Also change ``unstable`` to the current development Ubuntu release such as ``trusty``."
1717
#: ../ubuntu-packaging-guide/packaging-new-software.rst:87
1709
#: ../ubuntu-packaging-guide/packaging-new-software.rst:79
1718
1710
msgid "Much of the package building work is done by a series of scripts called ``debhelper``. The exact behaviour of ``debhelper`` changes with new major versions, the compat file instructs ``debhelper`` which version to act as. You will generally want to set this to the most recent version which is ``9``."
1713
#: ../ubuntu-packaging-guide/packaging-new-software.rst:85
1714
msgid "``control`` contains all the metadata of the package. The first paragraph describes the source package. The second and following paragraphs describe the binary packages to be built. We will need to add the packages needed to compile the application to ``Build-Depends:``. For ``hello``, make sure that it includes at least::"
1721
1717
#: ../ubuntu-packaging-guide/packaging-new-software.rst:93
1722
msgid "``control`` contains all the metadata of the package. The first paragraph describes the source package. The second and following paragraphs describe the binary packages to be built. We will need to add the packages needed to compile the application to ``Build-Depends:``. For ``hello``, make sure that it includes at least::"
1725
#: ../ubuntu-packaging-guide/packaging-new-software.rst:101
1726
1718
msgid "You will also need to fill in a description of the program in the ``Description:`` field."
1729
#: ../ubuntu-packaging-guide/packaging-new-software.rst:104
1721
#: ../ubuntu-packaging-guide/packaging-new-software.rst:96
1730
1722
msgid "``copyright`` needs to be filled in to follow the licence of the upstream source. According to the hello/COPYING file this is GNU GPL 3 or later."
1733
#: ../ubuntu-packaging-guide/packaging-new-software.rst:107
1725
#: ../ubuntu-packaging-guide/packaging-new-software.rst:99
1734
1726
msgid "``docs`` contains any upstream documentation files you think should be included in the final package."
1737
#: ../ubuntu-packaging-guide/packaging-new-software.rst:110
1729
#: ../ubuntu-packaging-guide/packaging-new-software.rst:102
1738
1730
msgid "``README.source`` and ``README.Debian`` are only needed if your package has any non-standard features, we don't so you can delete them."
1741
#: ../ubuntu-packaging-guide/packaging-new-software.rst:113
1733
#: ../ubuntu-packaging-guide/packaging-new-software.rst:105
1742
1734
msgid "``source/format`` can be left as is, this describes the version format of the source package and should be ``3.0 (quilt)``."
1745
#: ../ubuntu-packaging-guide/packaging-new-software.rst:116
1737
#: ../ubuntu-packaging-guide/packaging-new-software.rst:108
1746
1738
msgid "``rules`` is the most complex file. This is a Makefile which compiles the code and turns it into a binary package. Fortunately most of the work is automatically done these days by ``debhelper 7`` so the universal ``%`` Makefile target just runs the ``dh`` script which will run everything needed."
1749
#: ../ubuntu-packaging-guide/packaging-new-software.rst:121
1741
#: ../ubuntu-packaging-guide/packaging-new-software.rst:113
1750
1742
msgid "All of these file are explained in more detail in the :doc:`overview of the debian directory<./debian-dir-overview>` article."
1753
#: ../ubuntu-packaging-guide/packaging-new-software.rst:124
1745
#: ../ubuntu-packaging-guide/packaging-new-software.rst:116
1754
1746
msgid "Finally commit the code to your packaging branch::"
1757
#: ../ubuntu-packaging-guide/packaging-new-software.rst:130
1749
#: ../ubuntu-packaging-guide/packaging-new-software.rst:122
1758
1750
msgid "Building the package"
1761
#: ../ubuntu-packaging-guide/packaging-new-software.rst:132
1753
#: ../ubuntu-packaging-guide/packaging-new-software.rst:124
1762
1754
msgid "Now we need to check that our packaging successfully compiles the package and builds the .deb binary package::"
1765
#: ../ubuntu-packaging-guide/packaging-new-software.rst:138
1757
#: ../ubuntu-packaging-guide/packaging-new-software.rst:130
1766
1758
msgid "``bzr builddeb`` is a command to build the package in its current location. The ``-us -uc`` tell it there is no need to GPG sign the package. The result will be placed in ``..``."
1769
#: ../ubuntu-packaging-guide/packaging-new-software.rst:142
1761
#: ../ubuntu-packaging-guide/packaging-new-software.rst:134
1770
1762
msgid "You can view the contents of the package with::"
1773
#: ../ubuntu-packaging-guide/packaging-new-software.rst:146
1765
#: ../ubuntu-packaging-guide/packaging-new-software.rst:138
1774
1766
msgid "Install the package and check it works (later you will be able to uninstall it using ``sudo apt-get remove hello`` if you want)::"
1777
#: ../ubuntu-packaging-guide/packaging-new-software.rst:151
1769
#: ../ubuntu-packaging-guide/packaging-new-software.rst:143
1778
1770
msgid "You can also install all packages at once using::"
1781
#: ../ubuntu-packaging-guide/packaging-new-software.rst:156
1773
#: ../ubuntu-packaging-guide/packaging-new-software.rst:148
1782
1774
msgid "Next Steps"
1777
#: ../ubuntu-packaging-guide/packaging-new-software.rst:150
1778
msgid "Even if it builds the .deb binary package, your packaging may have bugs. Many errors can be automatically detected by our tool ``lintian`` which can be run on the source .dsc metadata file, .deb binary packages or .changes file::"
1785
1781
#: ../ubuntu-packaging-guide/packaging-new-software.rst:158
1786
msgid "Even if it builds the .deb binary package, your packaging may have bugs. Many errors can be automatically detected by our tool ``lintian`` which can be run on the source .dsc metadata file, .deb binary packages or .changes file::"
1789
#: ../ubuntu-packaging-guide/packaging-new-software.rst:166
1790
1782
msgid "To see verbose description of the problems use ``--info`` lintian flag or ``lintian-info`` command."
1793
#: ../ubuntu-packaging-guide/packaging-new-software.rst:169
1785
#: ../ubuntu-packaging-guide/packaging-new-software.rst:161
1794
1786
msgid "For Python packages, there is also a ``lintian4python`` tool that provides some additional lintian checks."
1797
#: ../ubuntu-packaging-guide/packaging-new-software.rst:172
1789
#: ../ubuntu-packaging-guide/packaging-new-software.rst:164
1798
1790
msgid "After making a fix to the packaging you can rebuild using ``-nc`` \"no clean\" without having to build from scratch::"
1801
#: ../ubuntu-packaging-guide/packaging-new-software.rst:177
1793
#: ../ubuntu-packaging-guide/packaging-new-software.rst:169
1802
1794
msgid "Having checked that the package builds locally you should ensure it builds on a clean system using ``pbuilder``. Since we are going to upload to a PPA (Personal Package Archive) shortly, this upload will need to be *signed* to allow Launchpad to verify that the upload comes from you (you can tell the upload will be signed because the ``-us`` and ``-uc`` flags are not passed to ``bzr builddeb`` like they were before). For signing to work you need to have set up GPG. If you haven't set up ``pbuilder-dist`` or GPG yet, :doc:`do so now<./getting-set-up>`::"
1805
#: ../ubuntu-packaging-guide/packaging-new-software.rst:190
1797
#: ../ubuntu-packaging-guide/packaging-new-software.rst:182
1806
1798
msgid "When you are happy with your package you will want others to review it. You can upload the branch to Launchpad for review::"
1809
#: ../ubuntu-packaging-guide/packaging-new-software.rst:195
1801
#: ../ubuntu-packaging-guide/packaging-new-software.rst:187
1810
1802
msgid "Uploading it to a PPA will ensure it builds and give an easy way for you and others to test the binary packages. You will need to set up a PPA in Launchpad and then upload with ``dput``::"
1813
#: ../ubuntu-packaging-guide/packaging-new-software.rst:201
1814
msgid "See :doc:`uploading<./udd-uploading>` for more information."
1817
#: ../ubuntu-packaging-guide/packaging-new-software.rst:203
1805
#: ../ubuntu-packaging-guide/packaging-new-software.rst:193
1818
1806
msgid "You can ask for reviews in ``#ubuntu-motu`` IRC channel, or on the `MOTU mailing list <ubuntu-motu_>`_. There might also be a more specific team you could ask such as the GNU team for more specific questions."
1821
#: ../ubuntu-packaging-guide/packaging-new-software.rst:208
1809
#: ../ubuntu-packaging-guide/packaging-new-software.rst:198
1822
1810
msgid "Submitting for inclusion"
1825
#: ../ubuntu-packaging-guide/packaging-new-software.rst:210
1813
#: ../ubuntu-packaging-guide/packaging-new-software.rst:200
1826
1814
msgid "There are a number of paths that a package can take to enter Ubuntu. In most cases, going through Debian first can be the best path. This way ensures that your package will reach the largest number of users as it will be available in not just Debian and Ubuntu but all of their derivatives as well. Here are some useful links for submitting new packages to Debian:"
1829
#: ../ubuntu-packaging-guide/packaging-new-software.rst:217
1817
#: ../ubuntu-packaging-guide/packaging-new-software.rst:207
1830
1818
msgid "`Debian Mentors FAQ <MentorsFAQ_>`_ - debian-mentors is for the mentoring of new and prospective Debian Developers. It is where you can find a sponsor to upload your package to the archive."
1833
#: ../ubuntu-packaging-guide/packaging-new-software.rst:221
1821
#: ../ubuntu-packaging-guide/packaging-new-software.rst:211
1834
1822
msgid "`Work-Needing and Prospective Packages <WNPP_>`_ - Information on how to file \"Intent to Package\" and \"Request for Package\" bugs as well as list of open ITPs and RFPs."
1837
#: ../ubuntu-packaging-guide/packaging-new-software.rst:225
1825
#: ../ubuntu-packaging-guide/packaging-new-software.rst:215
1838
1826
msgid "`Debian Developer's Reference, 5.1. New packages <DevRef_>`_ - The entire document is invaluable for both Ubuntu and Debian packagers. This section documents processes for submitting new packages."
1841
#: ../ubuntu-packaging-guide/packaging-new-software.rst:229
1829
#: ../ubuntu-packaging-guide/packaging-new-software.rst:219
1842
1830
msgid "In some cases, it might make sense to go directly into Ubuntu first. For instance, Debian might be in a freeze making it unlikely that your package will make it into Ubuntu in time for the next release. This process is documented on the `\"New Packages\" <NewPackages_>`_ section of the Ubuntu wiki."
1845
#: ../ubuntu-packaging-guide/packaging-new-software.rst:235
1833
#: ../ubuntu-packaging-guide/packaging-new-software.rst:225
1846
1834
msgid "Screenshots"
1849
#: ../ubuntu-packaging-guide/packaging-new-software.rst:237
1837
#: ../ubuntu-packaging-guide/packaging-new-software.rst:227
1850
1838
msgid "Once you have uploaded a package to debian, you should add screenshots to allow propective users to see what the program is like. These should be uploaded to http://screenshots.debian.net/upload ."
2073
2061
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:39
2074
msgid "Now that we have the source package, we need to patch it to fix the vulnerability. You may use whatever patch method that is appropriate for the package, including :doc:`UDD techniques<./udd-intro>`, but this example will use ``edit-patch`` (from the ubuntu-dev-tools package). ``edit-patch`` is the easiest way to patch packages and it is basically a wrapper around every other patch system you can imagine."
2062
msgid "Now that we have the source package, we need to patch it to fix the vulnerability. You may use whatever patch method that is appropriate for the package, but this example will use ``edit-patch`` (from the ubuntu-dev-tools package). ``edit-patch`` is the easiest way to patch packages and it is basically a wrapper around every other patch system you can imagine."
2077
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:46
2065
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:45
2078
2066
msgid "To create your patch using ``edit-patch``::"
2081
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:51
2069
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:50
2082
2070
msgid "This will apply the existing patches and put the packaging in a temporary directory. Now edit the files needed to fix the vulnerability. Often upstream will have provided a patch so you can apply that patch::"
2085
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:57
2073
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:56
2086
2074
msgid "After making the necessary changes, you just hit Ctrl-D or type exit to leave the temporary shell."
2089
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:61
2077
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:60
2090
2078
msgid "Formatting the changelog and patches"
2093
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:63
2081
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:62
2094
2082
msgid "After applying your patches you will want to update the changelog. The ``dch`` command is used to edit the ``debian/changelog`` file and ``edit-patch`` will launch ``dch`` automatically after un-applying all the patches. If you are not using ``edit-patch``, you can launch ``dch -i`` manually. Unlike with regular patches, you should use the following format (note the distribution name uses precise-security since this is a security update for Precise) for security updates::"
2097
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:80
2085
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:79
2098
2086
msgid "Update your patch to use the appropriate patch tags. Your patch should have at a minimum the Origin, Description and Bug-Ubuntu tags. For example, edit debian/patches/99-fix-a-vulnerability.patch to have something like::"
2101
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:91
2089
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:90
2102
2090
msgid "Multiple vulnerabilities can be fixed in the same security upload; just be sure to use different patches for different vulnerabilities."
2105
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:95
2093
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:94
2106
2094
msgid "Test and Submit your work"
2109
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:97
2097
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:96
2110
2098
msgid "At this point the process is the same as for :doc:`fixing a regular bug in Ubuntu<./fixing-a-bug>`. Specifically, you will want to:"
2113
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:100
2101
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:99
2114
2102
msgid "Build your package and verify that it compiles without error and without any added compiler warnings"
2105
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:101
2106
msgid "Upgrade to the new version of the package from the previous version"
2117
2109
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:102
2118
msgid "Upgrade to the new version of the package from the previous version"
2121
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:103
2122
2110
msgid "Test that the new package fixes the vulnerability and does not introduce any regressions"
2125
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:105
2113
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:104
2126
2114
msgid "Submit your work via a Launchpad merge proposal and file a Launchpad bug being sure to mark the bug as a security bug and to subscribe ``ubuntu-security-sponsors``"
2129
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:109
2117
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:108
2130
2118
msgid "If the security vulnerability is not yet public then do not file a merge proposal and ensure you mark the bug as private."
2133
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:112
2121
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:111
2134
2122
msgid "The filed bug should include a Test Case, i.e. a comment which clearly shows how to recreate the bug by running the old version then how to ensure the bug no longer exists in the new version."
2137
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:116
2125
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:115
2138
2126
msgid "The bug report should also confirm that the issue is fixed in Ubuntu versions newer than the one with the proposed fix (in the above example newer than Precise). If the issue is not fixed in newer Ubuntu versions you should prepare updates for those versions too."
2141
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:123
2129
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:122
2142
2130
msgid "Stable Release Updates"
2145
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:125
2133
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:124
2146
2134
msgid "We also allow updates to releases where a package has a high impact bug such as a severe regression from a previous release or a bug which could cause data loss. Due to the potential for such updates to themselves introduce bugs we only allow this where the change can be easily understood and verified."
2149
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:130
2137
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:129
2150
2138
msgid "The process for Stable Release Updates is just the same as the process for security bugs except you should subscribe ``ubuntu-sru`` to the bug."
2153
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:133
2141
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:132
2154
2142
msgid "The update will go into the ``proposed`` archive (for example ``precise-proposed``) where it will need to be checked that it fixes the problem and does not introduce new problems. After a week without reported problems it can be moved to ``updates``."
2157
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:138
2145
#: ../ubuntu-packaging-guide/security-and-stable-release-updates.rst:137
2158
2146
msgid "See the `Stable Release Updates wiki page <SRUWiki_>`_ for more information."
2149
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:3
2150
msgid "Setting up sbuild"
2153
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:5
2154
msgid "``sbuild`` simplifies building Debian/Ubuntu binary package from source in clean environment. It allows to try debugging packages in environment similar (as opposed to ``pbuild``) to builders used by Launchpad."
2157
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:9
2158
msgid "It works on different architectures and allows to build packages for other releases. It needs kernel supporting overlayfs."
2161
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:13
2162
msgid "Installing sbuild"
2165
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:15
2166
msgid "To use sbuild, you need to install sbuild and other required packages and add yourself to the ``sbuild`` group::"
2169
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:21
2170
msgid "Create ``.sbuildrc`` in your home directory with following content::"
2173
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:50
2174
msgid "Replace “Your Name <user@example.org>” with your name and e-mail address. Change default distribution if you want, but remember that you can specify target distribution when executing command."
2177
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:54
2178
msgid "If you haven’t restarted your session after adding yourself to the ``sbuild`` group, enter::"
2181
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:59
2182
msgid "Generate GPG keypair for sbuild and create chroot for specified release::"
2185
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:64
2186
msgid "This will create chroot for your current architecture. You might want to specify another architecture. For this, you can use ``--arch`` option. Example::"
2189
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:71
2190
msgid "Using schroot"
2193
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:74
2194
msgid "Entering schroot"
2197
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:76
2198
msgid "You can use ``schroot -c <release>-<architecture> [-u <USER>]`` to enter newly created chroot, but that’s not exactly the reason why you are using sbuild::"
2201
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:83
2202
msgid "Using schroot for package building"
2205
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:85
2206
msgid "To build package using sbuild chroot, we use (surprisingly) the ``sbuild`` command. For example, to build ``hello`` package from x86_64 chroot, after applying some changes::"
2209
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:98
2210
msgid "To build package from source package (``.dsc``), use location of the source package as second parameter::"
2213
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:103
2214
msgid "To make use of all power of your CPU, you can specify number of threads used for building using standard ``-j<threads>``::"
2217
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:109
2218
msgid "Maintaining schroots"
2221
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:112
2222
msgid "Listing chroots"
2225
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:114
2226
msgid "To get list of all your sbuild chroots, use ``schroot -l``. The ``source:`` chroots are used as base of new schroots. Changes here aren’t recommended, but if you have specific reason, you can open it using something like::"
2229
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:122
2230
msgid "Updating schroots"
2233
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:124
2234
msgid "To upgrade the whole schroot::"
2237
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:129
2238
msgid "Expiring active schroots"
2241
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:131
2242
msgid "If because of any reason, you haven’t stopped your schroot, you can expire all active schroots using::"
2245
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:137
2246
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:136
2247
msgid "Further reading"
2250
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:139
2251
msgid "There is `Debian wiki page <DebianWiki_>`_ covering sbuild usage."
2254
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:141
2255
msgid "`Ubuntu Wiki <UbuntuWiki_>`_ also has article about basics of sbuild."
2258
#: ../ubuntu-packaging-guide/setting-up-sbuild.rst:143
2259
msgid "``sbuild`` manpages are covering details about sbuild usage and available features."
2262
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:3
2263
msgid "ubuntu-dev-tools: Tools for Ubuntu developers"
2266
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:5
2267
msgid "``ubuntu-dev-tools`` package is a collection of 30 tools created for making packaging work much easier for Ubuntu developers. It’s similar in scope to Debian ``devscripts`` package."
2270
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:10
2271
msgid "Setting up packaging environment"
2274
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:12
2275
msgid "``setup-packaging-environment`` command allows to interactively set up packaging environment, including setting environment variables, installing required packages and ensuring that required repositories are enabled."
2278
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:17
2279
msgid "Environment variables"
2282
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:20
2283
msgid "Introducing yourself"
2286
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:22
2287
msgid "``ubuntu-dev-tools`` configurations can be set using environment variables. It’s used for example in changelogs. For example, to set e-mail address (and full name), use ``UBUMAIL`` variable. It overrides the ``DEBEMAIL`` and ``DEBFULLNAME`` variables used by ``devscripts``. To learn ``ubuntu-dev-tools`` about you, open `~/.bashrc` in text editor and add something like this::"
2290
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:30
2291
msgid "Now, save this file and restart your terminal or use ``source ~/.bashrc``."
2294
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:33
2295
msgid "Changing preferred builder"
2298
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:35
2299
msgid "Default builder is specified by ``UBUNTUTOOLS_BUILDER`` variable. To set between *pbuilder* (default), *pbuilder-dist*, and *sbuild*, change this variable. Example::"
2302
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:41
2303
msgid "Save file and restart terminal."
2306
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:43
2307
msgid "You can also check whether to update the builder every time before building, by changing ``UBUNTUTOOLS_UPDATE_BUILDER`` from ``no`` (default) to ``yes``."
2310
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:47
2311
msgid "Downloading source packages"
2314
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:49
2315
msgid "``ubuntu-dev-tools`` comes with ``pull-lp-source`` command, allowing to download source packages from Launchpad. Its usage is simple. To download latest source package for ubuntu-settings, use::"
2318
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:55
2319
msgid "You can also specify release from which you want to download source or specify version of source package. ``-d`` option allows to download source package without extracting. A slightly more complex example would look like this::"
2322
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:61
2323
msgid "``pull-debian-source`` package allows to do the same for Debian source packages. It has similar syntax."
2326
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:65
2327
msgid "Backporting packages"
2330
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:67
2331
msgid "``ubuntu-dev-tools`` provides ``backportpackage`` allowing us to backport a package from specified release of Ubuntu or Debian. For example, to backport ``bzr`` package from latest development release for your installed Ubuntu version, simply::"
2334
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:74
2335
msgid "This command allows to use more options. To specify Ubuntu release for which you are going to backport a package, use ``-d dest`` or ``--destination=DEST`` parameter, where ``DEST`` is Ubuntu release, for example ``xenial``. You can specify more than one destination. In turn, ``-s SOURCE`` and ``--source=SOURCE`` specifies the Ubuntu or Debian release from which you are going to backport a package. ``-w DIR`` and ``--workdir=DIR`` specifies directory, where package files will be downloaded, unpacked and built. By default, it will create temporary directory that will be automatically deleted. ``-U`` or ``--update`` allows to update build environment before building package. ``-u`` or ``--upload`` allows to upload package after building (for example to PPAs) using ``dput``."
2338
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:86
2339
msgid "Requesting backports"
2342
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:88
2343
msgid "``requestbackport`` command makes creating backports through Launchpad bugs much easier. It creates testing checklist that will be included in the bug. For example, to request backporting libqt5webkit5 from latest development branch to current stable release (without optional parameters)::"
2346
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:95
2347
msgid "You should fulfill the checklist if you have already tested the backport."
2350
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:97
2351
msgid "Additional options allows to specify destination of backport and its source, by using ``-d DEST`` or ``--destination=DEST`` and ``s SRC`` or ``--source=SRC``."
2354
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:101
2355
msgid "Other simple commands"
2358
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:103
2359
msgid "``ubuntu-dev-tools`` also includes small utilities allowing to do simple tasks like checking whether .iso file is an Ubuntu installation media."
2362
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:107
2363
msgid "``ubuntu-iso``"
2366
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:109
2367
msgid "To do this, use ``ubuntu-iso <pathtoiso>``, for example::"
2370
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:114
2371
msgid "``bitesize``"
2374
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:116
2375
msgid "“Bitesize” tag is used on Launchpad to describe tasks that are suitable for begineers who want to contribute to one of the projects. ``bitesize`` command allows to add “bitesize” tag to Launchpad bug with just simple command, by providing its number, like::"
2378
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:124
2382
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:126
2383
msgid "``404main`` allows to check whether all of package build dependencies are included in main repository of specified Ubuntu distribution. Example::"
2386
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:131
2387
msgid "If any of the required packages isn’t part of Ubuntu main repository, you can check whether the package fulfill `Ubuntu main inclusion requirements <Requirements_>`_ and request it."
2390
#: ../ubuntu-packaging-guide/ubuntu-dev-tools.rst:138
2391
msgid "``ubuntu-dev-tools`` manpages are covering more about usage of this package."
2161
2394
# Will be replaced with a list of translators
2162
2395
msgid "translator-credits"