diff options
author | Sebastian Parborg <darkdefende@gmail.com> | 2011-08-17 14:04:52 +0200 |
---|---|---|
committer | Sebastian Parborg <darkdefende@gmail.com> | 2011-08-17 14:04:52 +0200 |
commit | 0928c63e4ccf5a2dcd60cc31495469e1d14d2e35 (patch) | |
tree | a90ec33e9571dc469ebf7b3ce77b4ec98965b59d | |
parent | Commented out unused flags from the cli help message (diff) | |
download | ebuildgen-0928c63e4ccf5a2dcd60cc31495469e1d14d2e35.tar.gz ebuildgen-0928c63e4ccf5a2dcd60cc31495469e1d14d2e35.tar.bz2 ebuildgen-0928c63e4ccf5a2dcd60cc31495469e1d14d2e35.zip |
Added the website src files
-rw-r--r-- | website/ebuildgenerator.html | 142 | ||||
-rw-r--r-- | website/ebuildgenerator.xml | 138 |
2 files changed, 280 insertions, 0 deletions
diff --git a/website/ebuildgenerator.html b/website/ebuildgenerator.html new file mode 100644 index 0000000..3156265 --- /dev/null +++ b/website/ebuildgenerator.html @@ -0,0 +1,142 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<link title="new" rel="stylesheet" href="/css/main.css" type="text/css"> +<link REL="shortcut icon" HREF="/favicon.ico" TYPE="image/x-icon"> +<link rel="search" type="application/opensearchdescription+xml" href="http://www.gentoo.org/search/www-gentoo-org.xml" title="Gentoo Website"> +<link rel="search" type="application/opensearchdescription+xml" href="http://www.gentoo.org/search/forums-gentoo-org.xml" title="Gentoo Forums"> +<link rel="search" type="application/opensearchdescription+xml" href="http://www.gentoo.org/search/bugs-gentoo-org.xml" title="Gentoo Bugzilla"> +<link rel="search" type="application/opensearchdescription+xml" href="http://www.gentoo.org/search/packages-gentoo-org.xml" title="Gentoo Packages"> +<link rel="search" type="application/opensearchdescription+xml" href="http://www.gentoo.org/search/archives-gentoo-org.xml" title="Gentoo List Archives"> +<title>Gentoo Linux Documentation +-- + Ebuild Generator GSoC 2011</title> +</head> +<body style="margin:0px;" bgcolor="#ffffff"><table width="100%" border="0" cellspacing="0" cellpadding="0"> +<tr><td valign="top" height="125" bgcolor="#45347b"><a href="/"><img border="0" src="/images/gtop-www.jpg" alt="Gentoo Logo"></a></td></tr> +<tr><td valign="top" align="right" colspan="1" bgcolor="#ffffff"><table border="0" cellspacing="0" cellpadding="0" width="100%"><tr> +<td width="99%" class="content" valign="top" align="left"> +<br><h1>Ebuild Generator GSoC 2011</h1> +<form name="contents" action="http://www.gentoo.org"> +<b>Content</b>: + <select name="url" size="1" OnChange="location.href=form.url.options[form.url.selectedIndex].value" style="font-family:sans-serif,Arial,Helvetica"><option value="#doc_chap1">1. Introduction</option> +<option value="#doc_chap2">2. How to use</option> +<option value="#doc_chap3">3. Where to go from here</option></select> +</form> +<p class="chaphead"><a name="doc_chap1"></a><span class="chapnum">1. + </span>Introduction</p> +<p class="secthead"><a name="doc_chap1_sect1">What problem does this project try to solve?</a></p> +<p> + When writing ebuilds it can be a hassle to hunt down dependecies for + the program and link them to the useflag that triggers them. + </p> +<p> + The point of this program is to help users write ebuilds by generating + the useflags, dependecies and link useflags to dependecies for them. + It is able to guess dependecies for packages that are not installed on the system. + </p> +<p> + Note that if the program that you try to generate the ebuild for is a simple + <span class="code-input">"./configure && make && make install"</span> project the generated ebuild should not + need any edits to work + </p> +<p class="chaphead"><a name="doc_chap2"></a><span class="chapnum">2. + </span>How to use</p> +<p class="secthead"><a name="doc_chap2_sect1">Installation</a></p> +<p> + At this time the ebuild for the ebuild generator is not in portage, get it from the overlay dir on: + <a href="https://github.com/DarkDefender/ebuildgen">https://github.com/DarkDefender/ebuildgen</a> . + After you have emerged it you should be able to run the program with the command "genebuild" + </p> +<p class="secthead"><a name="doc_chap2_sect2">Gererating an ebuild</a></p> +<p> + Lets say I want to generate an ebuild for the "moc" project (<a href="http://moc.daper.net">http://moc.daper.net</a>). + It's svn based so I simply type the following command. + </p> +<a name="doc_chap2_pre1"></a><table class="ntable" width="100%" cellspacing="0" cellpadding="0" border="0"> +<tr><td bgcolor="#7a5ada"><p class="codetitle">Code Listing 2.1: Generating and ebuild from svn</p></td></tr> +<tr><td bgcolor="#eeeeff" align="left" dir="ltr"><pre> + $ <span class="code-input">genebuild --svn svn://daper.net/moc/trunk</span> + </pre></td></tr> +</table> +<table class="ncontent" width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td bgcolor="#bbffbb"><p class="note"><b>Note: </b> + At this time the ebuild generator only supports GIT, HG and SVN + </p></td></tr></table> +<p> + It will go ahead and download the source code to <span class="path" dir="ltr">/tmp/ebuildgen/curproj/</span> + and then search the project for the topmost configure.{in,ac}. Then it will use the + Makefile.ac in the same dir as the configure script and then scan the source files. + </p> +<p> + When it is done scanning source files it will try to link the includes it found in + the source files to packages using qfile and the pfl online database. + </p> +<table class="ncontent" width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td bgcolor="#ffffbb"><p class="note"><b>Important: </b>Make sure to double check that the dependecies that it pulls in are sane!</p></td></tr></table> +<p> + After the generator is done it will place the generated ebuild in + <span class="path" dir="ltr">/tmp/ebuildgen/generated.ebuild</span>. + Rename and edit the ebuild to you liking, put it in your local portage and emerge away. + </p> +<p class="chaphead"><a name="doc_chap3"></a><span class="chapnum">3. + </span>Where to go from here</p> +<p class="secthead"><a name="doc_chap3_sect1">Sanity checks</a></p> +<p> + Because the generator doesn't run anycode from the projects that it will generate an ebuild for, + it is likely that there will be cases where it guesses wrong dependecies. + There for it would be good to have a check that tells the uses if the generator pulled in any + obsolete packages or missed some vital ones. + </p> +<p> + If the "auto dependency builder" by Alexander Bersenev doesn't get included in portage I'll try + to implement it to solve this problem. + That way my ebuild generator "guesses" and the auto dependency builder confirms if the generator + has guessed right. + </p> +<p class="secthead"><a name="doc_chap3_sect2">Support for more languages and build scripts</a></p> +<p> + There is very basic support for pure makefile projects in the generator. But I've disabled it as + it is not good enough yet to be useful. + </p> +<p> + Before I start to try supporting other stuff I have to flesh out the current support that I have. + There is alot for missing features and/or incomplete features that needs to be done. + </p> +<p> + But after that I think I'll try to support scons/cmake and later perhaps python projects. + </p> +<p class="secthead"><a name="doc_chap3_sect3">Interested in contributing to the project?</a></p> +<p> + Please contact me with the email on this page or pm/ping me on IRC. + I usually hang out in #gentoo-chat on freenode by the name "DarkDefender" + </p> +<p> + The source code is located on github <a href="https://github.com/DarkDefender/ebuildgen">https://github.com/DarkDefender/ebuildgen</a> + </p> +<br><br> +</td> +<td width="1%" bgcolor="#dddaec" valign="top"><table border="0" cellspacing="4px" cellpadding="4px"> +<tr><td class="topsep" align="center"><p class="altmenu"><a title="View a printer-friendly version" class="altlink" href="darkdefende@gmail.com?style=printable">Print</a></p></td></tr> +<tr><td class="topsep" align="center"><p class="alttext">Updated August 16, 2011</p></td></tr> +<tr><td class="topsep" align="left"><p class="alttext"><b>Summary: </b> + Generate ebuilds for autotools C/C++ based projects. The main goal is to + help users write ebuilds by guessing useflags and dependecies. +</p></td></tr> +<tr><td align="left" class="topsep"><p class="alttext"> + <a href="mailto:darkdefende@gmail.com" class="altlink"><b>Sebastian Parborg</b></a> +<br><i>Author</i><br></p></td></tr> +<tr lang="en"><td align="center" class="topsep"> +<p class="alttext"><b>Donate</b> to support our development efforts. + </p> +<form action="https://www.paypal.com/cgi-bin/webscr" method="post"> +<input type="hidden" name="cmd" value="_xclick"><input type="hidden" name="business" value="paypal@gentoo.org"><input type="hidden" name="item_name" value="Gentoo Linux Support"><input type="hidden" name="item_number" value="1000"><input type="hidden" name="image_url" value="/images/paypal.png"><input type="hidden" name="no_shipping" value="1"><input type="hidden" name="return" value="http://www.gentoo.org"><input type="hidden" name="cancel_return" value="http://www.gentoo.org"><input type="image" src="http://images.paypal.com/images/x-click-but21.gif" name="submit" alt="Donate to Gentoo"> +</form> +</td></tr> +<tr lang="en"><td align="center"><iframe src="http://sidebar.gentoo.org" scrolling="no" width="125" height="850" frameborder="0" style="border:0px padding:0x" marginwidth="0" marginheight="0"><p>Your browser does not support iframes.</p></iframe></td></tr> +</table></td> +</tr></table></td></tr> +<tr><td colspan="2" align="right" class="infohead"> +Copyright 2001-2011 Gentoo Foundation, Inc. Questions, Comments? <a class="highlight" href="/main/en/contact.xml">Contact us</a>. +</td></tr> +</table></body> +</html> diff --git a/website/ebuildgenerator.xml b/website/ebuildgenerator.xml new file mode 100644 index 0000000..3f35b66 --- /dev/null +++ b/website/ebuildgenerator.xml @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE guide SYSTEM "/dtd/guide.dtd"> +<!-- $Header$ --> + +<guide> +<title>Ebuild Generator GSoC 2011</title> + +<author title="Author"> + <mail link="darkdefende@gmail.com">Sebastian Parborg</mail> +</author> + +<abstract> + Generate ebuilds for autotools C/C++ based projects. The main goal is to + help users write ebuilds by guessing useflags and dependecies. +</abstract> + +<version>1</version> +<date>2011-08-16</date> + +<chapter> +<title>Introduction</title> + <section> + <title>What problem does this project try to solve?</title> + <body> + <p> + When writing ebuilds it can be a hassle to hunt down dependecies for + the program and link them to the useflag that triggers them. + </p> + <p> + The point of this program is to help users write ebuilds by generating + the useflags, dependecies and link useflags to dependecies for them. + It is able to guess dependecies for packages that are not installed on the system. + </p> + <p> + Note that if the program that you try to generate the ebuild for is a simple + <i>"./configure && make && make install"</i> project the generated ebuild should not + need any edits to work + </p> + </body> + </section> +</chapter> + +<chapter> + <title>How to use</title> + <section> + <title>Installation</title> + <body> + + <p> + At this time the ebuild for the ebuild generator is not in portage, get it from the overlay dir on: + <uri>https://github.com/DarkDefender/ebuildgen</uri> . + After you have emerged it you should be able to run the program with the command "genebuild" + </p> + + </body> + </section> + <section> + <title>Gererating an ebuild</title> + <body> + <p> + Lets say I want to generate an ebuild for the "moc" project (<uri>http://moc.daper.net</uri>). + It's svn based so I simply type the following command. + </p> + <pre caption="Generating and ebuild from svn"> + $ <i>genebuild --svn svn://daper.net/moc/trunk</i> + </pre> + <note> + At this time the ebuild generator only supports GIT, HG and SVN + </note> + <p> + It will go ahead and download the source code to <path>/tmp/ebuildgen/curproj/</path> + and then search the project for the topmost configure.{in,ac}. Then it will use the + Makefile.ac in the same dir as the configure script and then scan the source files. + </p> + <p> + When it is done scanning source files it will try to link the includes it found in + the source files to packages using qfile and the pfl online database. + </p> + <impo>Make sure to double check that the dependecies that it pulls in are sane!</impo> + <p> + After the generator is done it will place the generated ebuild in + <path>/tmp/ebuildgen/generated.ebuild</path>. + Rename and edit the ebuild to you liking, put it in your local portage and emerge away. + </p> + </body> + </section> +</chapter> + +<chapter> + <title>Where to go from here</title> + <section> + <title>Sanity checks</title> + <body> + <p> + Because the generator doesn't run anycode from the projects that it will generate an ebuild for, + it is likely that there will be cases where it guesses wrong dependecies. + There for it would be good to have a check that tells the uses if the generator pulled in any + obsolete packages or missed some vital ones. + </p> + <p> + If the "auto dependency builder" by Alexander Bersenev doesn't get included in portage I'll try + to implement it to solve this problem. + That way my ebuild generator "guesses" and the auto dependency builder confirms if the generator + has guessed right. + </p> + </body> + </section> + <section> + <title>Support for more languages and build scripts</title> + <body> + <p> + There is very basic support for pure makefile projects in the generator. But I've disabled it as + it is not good enough yet to be useful. + </p> + <p> + Before I start to try supporting other stuff I have to flesh out the current support that I have. + There is alot for missing features and/or incomplete features that needs to be done. + </p> + <p> + But after that I think I'll try to support scons/cmake and later perhaps python projects. + </p> + </body> + </section> + <section> + <title>Interested in contributing to the project?</title> + <body> + <p> + Please contact me with the email on this page or pm/ping me on IRC. + I usually hang out in #gentoo-chat on freenode by the name "DarkDefender" + </p> + <p> + The source code is located on github <uri>https://github.com/DarkDefender/ebuildgen</uri> + </p> + </body> + </section> +</chapter> +</guide> + |