diff options
Diffstat (limited to 'documentation/content/en/books/porters-handbook/quick-porting')
-rw-r--r-- | documentation/content/en/books/porters-handbook/quick-porting/_index.adoc | 48 | ||||
-rw-r--r-- | documentation/content/en/books/porters-handbook/quick-porting/_index.po | 587 |
2 files changed, 599 insertions, 36 deletions
diff --git a/documentation/content/en/books/porters-handbook/quick-porting/_index.adoc b/documentation/content/en/books/porters-handbook/quick-porting/_index.adoc index 18cd48110c..dbab724fac 100644 --- a/documentation/content/en/books/porters-handbook/quick-porting/_index.adoc +++ b/documentation/content/en/books/porters-handbook/quick-porting/_index.adoc @@ -6,7 +6,8 @@ description: How to quickly create a new FreeBSD Port tags: ["quick porting", "guide", "port", "ports collection", "how-to"] showBookMenu: true weight: 3 -path: "/books/porters-handbook/" +params: + path: "/books/porters-handbook/quick-porting/" --- [[quick-porting]] @@ -81,10 +82,11 @@ The minimal [.filename]#Makefile# would look something like this: PORTNAME= oneko DISTVERSION= 1.1b CATEGORIES= games -MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/ +MASTER_SITES= ftp://ftp.rediris.es/sites/ftp.freebsd.org/pub/FreeBSD/ MAINTAINER= youremail@example.com COMMENT= Cat chasing a mouse all over the screen +WWW= http://www.daidouji.com/oneko/ .include <bsd.port.mk> .... @@ -118,27 +120,11 @@ On the other hand, the content of [.filename]#pkg-descr# must be longer than the A well-written [.filename]#pkg-descr# describes the port completely enough that users would not have to consult the documentation or visit the website to understand what the software does, how it can be useful, or what particularly nice features it has. Mentioning certain requirements like a graphical toolkit, heavy dependencies, runtime environment, or implementation languages help users decide whether this port will work for them. -Include a URL to the official WWW homepage. -Prepend _one_ of the websites (pick the most common one) with `WWW:` (followed by single space) so that automated tools will work correctly. -If the URI is the root of the website or directory, it must be terminated with a slash. - [NOTE] ==== -If the listed webpage for a port is not available, try to search the Internet first to see if the official site moved, was renamed, or is hosted elsewhere. +The URL that used to be included as the last line of the [.filename]#pkg-descr# file has been moved to the [.filename]#Makefile#. ==== -This example shows how [.filename]#pkg-descr# looks: - -[.programlisting] -.... -This is a port of oneko, in which a cat chases a poor mouse all over -the screen. - : -(etc.) - -WWW: http://www.oneko.org/ -.... - [[porting-pkg-plist]] === [.filename]#pkg-plist# @@ -164,6 +150,8 @@ Refer to the man:pkg-create[8] manual page for details on the packing list. ==== It is recommended to keep all the filenames in this file sorted alphabetically. It will make verifying changes when upgrading the port much easier. +The sorting should be applied after variable expansion takes place. +The framework does this correctly when the package list is crossref:plist[plist-autoplist,generated automatically]. ==== [TIP] @@ -242,7 +230,7 @@ These are the important points to verify: Make certain no warnings are shown in any of the stages. -Thorough automated testing can be done with package:ports-mgmt/poudriere[] from the Ports Collection, see crossref:testing[testing-poudriere,Poudriere] for more information. +Thorough automated testing can be done with package:ports-mgmt/poudriere[] from the Ports Collection, see crossref:testing[testing-poudriere,poudriere] for more information. It maintains `jails` where all of the steps shown above can be tested without affecting the state of the host system. [[porting-portlint]] @@ -310,7 +298,7 @@ Add a short description of the program to the Description field of the PR (perha [NOTE] ==== Giving a good description in the summary of the problem report makes the work of port committers and triagers a lot easier. -The expected format for new ports is "[NEW PORT] _category/portname short description of the port_" for new ports. +The expected format for new ports is "[NEW PORT] _category/portname short description of the port_". Using this scheme makes it easier and faster to begin the work of committing the new port. ==== @@ -323,20 +311,8 @@ To get a listing of _open_ port PRs, select _Open_ and _Ports & Packages_ in the After looking at the new port, we will reply if necessary, and commit it to the tree. The submitter's name will also be added to the list of extref:{contributors}[Additional FreeBSD Contributors, contrib-additional] and other files. -It is also possible to submit ports using a man:shar[1] file. -Using the previous example with the `oneko` port above. - -.Creating a [.filename]#.shar# for a New Port -[[porting-submitting-shar]] -[example] +[IMPORTANT] ==== -go to the directory above where the port directory is located, and use `tar` to create the shar archive: - -[source,shell] -.... -% cd .. -% tar cf oneko.shar --format shar oneko -.... +Previously it was possible to submit patches for new ports using a man:shar[1] file; this is no longer the case with the evolution of man:git[1]. +Committers no longer accept man:shar[1] files as their use is prone to mistake and does not add the relevant entry in the category's [.filename]#Makefile#. ==== - -[.filename]#oneko.shar# can then be submitted in the same way as [.filename]#oneko.diff# above. diff --git a/documentation/content/en/books/porters-handbook/quick-porting/_index.po b/documentation/content/en/books/porters-handbook/quick-porting/_index.po new file mode 100644 index 0000000000..4138e88be6 --- /dev/null +++ b/documentation/content/en/books/porters-handbook/quick-porting/_index.po @@ -0,0 +1,587 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-05-01 19:56-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: LANGUAGE <LL@li.org>\n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: YAML Front Matter: description +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:1 +#, no-wrap +msgid "How to quickly create a new FreeBSD Port" +msgstr "" + +#. type: YAML Front Matter: title +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:1 +#, no-wrap +msgid "Chapter 3. Quick Porting" +msgstr "" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:14 +#, no-wrap +msgid "Quick Porting" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:53 +msgid "" +"This section describes how to quickly create a new port. For applications " +"where this quick method is not adequate, the full \"Slow Porting\" process " +"is described in crossref:slow-porting[slow-porting,Slow Porting]." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:55 +msgid "" +"First, get the original tarball and put it into `DISTDIR`, which defaults to " +"[.filename]#/usr/ports/distfiles#." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:61 +msgid "" +"These steps assume that the software compiled out-of-the-box. In other " +"words, absolutely no changes were required for the application to work on a " +"FreeBSD system. If anything had to be changed, refer to crossref:slow-" +"porting[slow-porting,Slow Porting]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:66 +msgid "" +"It is recommended to set the `DEVELOPER` man:make[1] variable in " +"[.filename]#/etc/make.conf# before getting into porting." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:70 +#, no-wrap +msgid "# echo DEVELOPER=yes >> /etc/make.conf\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:73 +msgid "" +"This setting enables the \"developer mode\" that displays deprecation " +"warnings and activates some further quality checks on calling `make`." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:76 +#, no-wrap +msgid "Writing the Makefile" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:79 +msgid "The minimal [.filename]#Makefile# would look something like this:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:86 +#, no-wrap +msgid "" +"PORTNAME=\toneko\n" +"DISTVERSION=\t1.1b\n" +"CATEGORIES=\tgames\n" +"MASTER_SITES=\tftp://ftp.rediris.es/sites/ftp.freebsd.org/pub/FreeBSD/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:90 +#, no-wrap +msgid "" +"MAINTAINER=\tyouremail@example.com\n" +"COMMENT=\tCat chasing a mouse all over the screen\n" +"WWW=\t\thttp://www.daidouji.com/oneko/\n" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:92 +#, no-wrap +msgid ".include <bsd.port.mk>\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:96 +msgid "" +"Try to figure it out. A more detailed example is shown in the " +"crossref:porting-samplem[porting-samplem,sample Makefile] section." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:98 +#, no-wrap +msgid "Writing the Description Files" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:103 +msgid "" +"There are two description files that are required for any port, whether they " +"actually package or not. They are [.filename]#pkg-descr# and " +"[.filename]#pkg-plist#. Their [.filename]#pkg-# prefix distinguishes them " +"from other files." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:105 +#, no-wrap +msgid "[.filename]#pkg-descr#" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:109 +msgid "" +"This is a longer description of the port. One to a few paragraphs concisely " +"explaining what the port does is sufficient." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:116 +msgid "" +"This is _not_ a manual or an in-depth description on how to use or compile " +"the port! _Please be careful when copying from the [.filename]#README# or " +"manpage_. Too often they are not a concise description of the port or are " +"in an awkward format. For example, manpages have justified spacing, which " +"looks particularly bad with monospaced fonts." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:118 +msgid "" +"On the other hand, the content of [.filename]#pkg-descr# must be longer than " +"the crossref:makefiles[makefile-comment,`COMMENT` line from the Makefile]. " +"It must explain in more depth what the port is all about." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:122 +msgid "" +"A well-written [.filename]#pkg-descr# describes the port completely enough " +"that users would not have to consult the documentation or visit the website " +"to understand what the software does, how it can be useful, or what " +"particularly nice features it has. Mentioning certain requirements like a " +"graphical toolkit, heavy dependencies, runtime environment, or " +"implementation languages help users decide whether this port will work for " +"them." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:126 +msgid "" +"The URL that used to be included as the last line of the [.filename]#pkg-" +"descr# file has been moved to the [.filename]#Makefile#." +msgstr "" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:129 +#, no-wrap +msgid "[.filename]#pkg-plist#" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:134 +msgid "" +"This file lists all the files installed by the port. It is also called the " +"\"packing list\" because the package is generated by packing the files " +"listed here. The pathnames are relative to the installation prefix (usually " +"[.filename]#/usr/local#)." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:136 +msgid "Here is a small example:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:145 +#, no-wrap +msgid "" +"bin/oneko\n" +"man/man1/oneko.1.gz\n" +"lib/X11/app-defaults/Oneko\n" +"lib/X11/oneko/cat1.xpm\n" +"lib/X11/oneko/cat2.xpm\n" +"lib/X11/oneko/mouse.xpm\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:148 +msgid "" +"Refer to the man:pkg-create[8] manual page for details on the packing list." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:155 +msgid "" +"It is recommended to keep all the filenames in this file sorted " +"alphabetically. It will make verifying changes when upgrading the port much " +"easier. The sorting should be applied after variable expansion takes " +"place. The framework does this correctly when the package list is " +"crossref:plist[plist-autoplist,generated automatically]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:161 +msgid "" +"Creating a packing list manually can be a very tedious task. If the port " +"installs a large numbers of files, crossref:plist[plist-autoplist,creating " +"the packing list automatically] might save time." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:166 +msgid "" +"There is only one case when [.filename]#pkg-plist# can be omitted from a " +"port. If the port installs just a handful of files, list them in " +"`PLIST_FILES`, within the port's [.filename]#Makefile#. For instance, we " +"could get along without [.filename]#pkg-plist# in the above " +"[.filename]#oneko# port by adding these lines to the [.filename]#Makefile#:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:175 +#, no-wrap +msgid "" +"PLIST_FILES=\tbin/oneko \\\n" +"\t\tman/man1/oneko.1.gz \\\n" +"\t\tlib/X11/app-defaults/Oneko \\\n" +"\t\tlib/X11/oneko/cat1.xpm \\\n" +"\t\tlib/X11/oneko/cat2.xpm \\\n" +"\t\tlib/X11/oneko/mouse.xpm\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:182 +msgid "" +"Usage of `PLIST_FILES` should not be abused. When looking for the origin of " +"a file, people usually try to grep through the [.filename]#pkg-plist# files " +"in the ports tree. Listing files in `PLIST_FILES` in the " +"[.filename]#Makefile# makes that search more difficult." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:187 +msgid "" +"If a port needs to create an empty directory, or creates directories outside " +"of [.filename]#${PREFIX}# during installation, refer to crossref:plist[plist-" +"dir-cleaning,Cleaning Up Empty Directories] for more information." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:193 +msgid "" +"As `PLIST_FILES` is a man:make[1] variable, any entry with spaces must be " +"quoted. For example, if using keywords described in man:pkg-create[8] and " +"crossref:plist[plist-keywords,Expanding Package List with Keywords], the " +"entry must be quoted." +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:197 +#, no-wrap +msgid "PLIST_FILES=\t\"@sample ${ETCDIR}/oneko.conf.sample\"\n" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:201 +msgid "" +"Later we will see how [.filename]#pkg-plist# and `PLIST_FILES` can be used " +"to fulfill crossref:plist[plist,more sophisticated tasks]." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:203 +#, no-wrap +msgid "Creating the Checksum File" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:208 +msgid "" +"Just type `make makesum`. The ports framework will automatically generate " +"[.filename]#distinfo#. Do not try to generate the file manually." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:210 +#, no-wrap +msgid "Testing the Port" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:214 +msgid "" +"Make sure that the port rules do exactly what is desired, including " +"packaging up the port. These are the important points to verify:" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:216 +msgid "" +"[.filename]#pkg-plist# does not contain anything not installed by the port." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:217 +msgid "" +"[.filename]#pkg-plist# contains everything that is installed by the port." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:218 +msgid "" +"The port can be installed using the `install` target. This verifies that the " +"install script works correctly." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:219 +msgid "" +"The port can be deinstalled properly using the `deinstall` target. This " +"verifies that the deinstall script works correctly." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:220 +msgid "" +"The port only has access to network resources during the `fetch` target " +"phase. This is important for package builders, such as package:ports-mgmt/" +"poudriere[]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:221 +msgid "" +"Make sure that `make package` can be run as a normal user (that is, not as " +"`root`). If that fails, the software may need to be patched. See also " +"crossref:uses[uses-fakeroot,`fakeroot`] and crossref:uses[uses-" +"uidfix,`uidfix`]." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:223 +#, no-wrap +msgid "Procedure: Recommended Test Ordering" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:225 +msgid "`make stage`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:226 +msgid "`make stage-qa`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:227 +msgid "`make package`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:228 +msgid "`make install`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:229 +msgid "`make deinstall`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:230 +msgid "`make package` (as user)" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:232 +msgid "Make certain no warnings are shown in any of the stages." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:235 +msgid "" +"Thorough automated testing can be done with package:ports-mgmt/poudriere[] " +"from the Ports Collection, see crossref:testing[testing-poudriere,poudriere] " +"for more information. It maintains `jails` where all of the steps shown " +"above can be tested without affecting the state of the host system." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:237 +#, no-wrap +msgid "Checking the Port with `portlint`" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:242 +msgid "" +"Please use `portlint` to see if the port conforms to our guidelines. The " +"package:ports-mgmt/portlint[] program is part of the ports collection. In " +"particular, check that the crossref:porting-samplem[porting-" +"samplem,Makefile] is in the right shape and the crossref:porting-" +"pkgname[porting-pkgname,package] is named appropriately." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:246 +msgid "" +"Do not blindly follow the output of `portlint`. It is a static lint tool and " +"sometimes gets things wrong." +msgstr "" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:249 +#, no-wrap +msgid "Submitting the New Port" +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:252 +msgid "" +"Before submitting the new port, read the crossref:porting-dads[porting-" +"dads,DOs and DON'Ts] section." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:254 +msgid "" +"Once happy with the port, the only thing remaining is to put it in the main " +"FreeBSD ports tree and make everybody else happy about it too." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:258 +msgid "" +"We do not need the [.filename]#work# directory or the " +"[.filename]#pkgname.txz# package, so delete them now." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:262 +msgid "" +"Next, create a man:patch[1], file. Assuming the port is called `oneko` and " +"is in the `games` category." +msgstr "" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:264 +#, no-wrap +msgid "Creating a [.filename]#.diff# for a New Port" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:268 +msgid "" +"Add all the files with `git add .`, then review the diff with `git diff`. " +"For example:" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:273 +#, no-wrap +msgid "" +"% git add .\n" +"% git diff --staged\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:277 +msgid "" +"Make sure that all required files are included, then commit the change to " +"your local branch and generate a patch with `git format-patch`" +msgstr "" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:282 +#, no-wrap +msgid "" +"% git commit\n" +"% git format-patch origin/main\n" +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:286 +msgid "" +"Patch generated with `git format-patch` will include author identity and " +"email addresses, making it easier for developers to apply (with `git am`) " +"and give proper credit." +msgstr "" + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:290 +msgid "" +"To make it easier for committers to apply the patch on their working copy of " +"the ports tree, please generate the [.filename]#.diff# from the base of your " +"ports tree." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:297 +msgid "" +"Submit [.filename]#oneko.diff# with the https://bugs.freebsd.org/submit/[bug " +"submission form]. Use product \"Ports & Packages\", component \"Individual " +"Port(s)\", and follow the guidelines shown there. Add a short description " +"of the program to the Description field of the PR (perhaps a short version " +"of `COMMENT`), and remember to add [.filename]#oneko.diff# as an attachment." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:303 +msgid "" +"Giving a good description in the summary of the problem report makes the " +"work of port committers and triagers a lot easier. The expected format for " +"new ports is \"[NEW PORT] _category/portname short description of the " +"port_\". Using this scheme makes it easier and faster to begin the work of " +"committing the new port." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:308 +msgid "" +"After submitting the port, please be patient. The time needed to include a " +"new port in FreeBSD can vary from a few days to a few months. A simple " +"search form of the Problem Report database can be searched at https://" +"bugs.freebsd.org/bugzilla/query.cgi[]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:310 +msgid "" +"To get a listing of _open_ port PRs, select _Open_ and _Ports & Packages_ in " +"the search form, then click btn:[Search]." +msgstr "" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:313 +msgid "" +"After looking at the new port, we will reply if necessary, and commit it to " +"the tree. The submitter's name will also be added to the list of extref:" +"{contributors}[Additional FreeBSD Contributors, contrib-additional] and " +"other files." +msgstr "" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/quick-porting/_index.adoc:318 +msgid "" +"Previously it was possible to submit patches for new ports using a " +"man:shar[1] file; this is no longer the case with the evolution of " +"man:git[1]. Committers no longer accept man:shar[1] files as their use is " +"prone to mistake and does not add the relevant entry in the category's " +"[.filename]#Makefile#." +msgstr "" |