Talk:Basic guide to write Gentoo Ebuilds

Issue with the steps
Question: There is a problem in that following the cited steps fails as shown below. — Donahue 20:27, 16 January 2014‎ (UTC)

Answer: You need to put SLOT="0" inside the ebuild. — Tom Wijsman 21:07, 16 January 2014 (UTC)


 * Hi all, please remember to sign your contributions to discussion pages. Kind regards, --Maffblaster (talk) 04:19, 25 December 2016 (UTC)


 * I think there are two issues here; even if you include 'SLOT="0"' in your ebuild, you still get the "!!! Repository 'x-portage'" error. See this forum thread and this exchange. Separately, the hello-world instructions should probably specify what name to save your ebuild file under; currently only the path is explicitly specified. Kergu (talk) 23:06, 3 June 2019 (UTC)


 * My mistake, have amended instructions accordingly. Proofreading welcome; I just wrote what worked for me. Kergu (talk) 23:19, 3 June 2019 (UTC)


 * One more problem; there appears to be no file at https://dev.gentoo.org/~tomwij/files/wiki/hello-world-1.0.tar.gz. The "ebuild hello-world-1.0.ebuild manifest clean merge" command hangs at "PASV ... ". Kergu (talk) 00:07, 4 June 2019 (UTC)


 * Just removed those "Hello World" stuff as it was a confusing mixture of creating source code and writing ebuild. Creating source code (programming) might go to its own dedicated article.--Charles17 (talk) 07:51, 27 December 2019 (UTC)

Error 404
The following link doesn't work anymore: https://dev.gentoo.org/~tomwij/files/wiki/hello-world-1.0.tar.gz Fturco (talk) 16:35, 20 August 2018 (UTC)


 * I reviewed the article, and the errant link has been expunged. --Davidbryant (talk) 16:16, 3 August 2020 (UTC)

Add examples from portage tree
I think a nice addition to this page would be to list real ebuilds from the portage tree that show good ebuild practices. Many real ebuilds look complicated showing examples for libraries and executibles for different languages would be helpful. Garbanzo (talk) 04:47, 4 June 2019 (UTC)


 * Well, the article is not write-protected. So if you really want another example, why not add it yourself? --Davidbryant (talk) 16:20, 3 August 2020 (UTC)

Remove section on variables in SRC_URI
I think it would be useful to remove the note about not using  style variables in , the page it links to only talks about the   variable, and the rationale within   variable is that it does not contain dynamic parts, whereas   does (specifically, the package version). The current text can be easily interpreted as not including  which is a really useful variable to include within.


 * Seems to depend. In case the ebuild is for a PR assigned to @gentoo/proxy-maint the proxy maintainer style guide seems to apply.
 * --Vaukai (talk) 09:23, 13 May 2022 (UTC)
 * That section only talks about  which is static, perhaps the section could be changed to highlight that   is an acceptable variable given it is variable, not static, as it's based on the package version.
 * Chriscpritchard (talk) 09:14, 15 May 2022 (UTC)


 * Done. Original insertion was only PN, but further edits increased the scope.  Tried to changed it back some. --Grknight (talk) 14:33, 16 May 2022 (UTC)

Add Instructions to allow the first ebuild to succeed
I attempted test fetching and unpacking and failed using the instructions. The attempt tried to download the package from another repo, gentoo.gossamerhost.com, which is a official Gentoo source|mirrors. I needed to install  and then run. After this the command executed correctly. I also changed priorities in repos.conf, but I believe that didn't move towards a solution. I believe this should be added as it took me some time to figure this out as a beginner. If this is the correct way of fixing this issue I can update the wiki. I hesitated since there could be a correct way of doing this and my method is functional, but undesirable. I question the solution since the error is not repeatable and the command runs as intended. The Manifest file in the folder  created can be deleted with no change in behaviour.

Nels Larsen 21:27, 3 March 2023 (UTC)