[MacPorts] SummerOfCode modified

MacPorts noreply at macports.org
Tue Apr 16 02:35:05 PDT 2013


Page "SummerOfCode" was changed by raimue at macports.org
Diff URL: <https://trac.macports.org/wiki/SummerOfCode?action=diff&version=210>
Revision 210
Comment: Add new idea for improving portfile-gen
Changes:
-------8<------8<------8<------8<------8<------8<------8<------8<--------
Index: SummerOfCode
=========================================================================
--- SummerOfCode (version: 209)
+++ SummerOfCode (version: 210)
@@ -212,6 +212,22 @@
 * Languages: Tcl, C, OCaml, Haskell, Lua, Node.js, etc.
 * Potential mentors: TBD
 
+===== Generate Portfiles with auto-detection of build toolchain ===== #portfile-gen
+
+To ease creation of new ports, the helper script [http://trac.macports.org/browser/contrib/portfile-gen/portfile-gen portfile-gen] is able to generated a Portfile stub by taking the name, version and possible a port group as input. This should be extended to handle more things automatically. Lots of options in a Portfile need to be figured out by the maintainer, although they could be extracted automatically from the source.
+
+With just a URL to the tarball of a software, portfile-gen can usually automatically extract the name and the version from the filename. Furthermore, the master_sites and distfiles can be derived from the URL, with special handling for sites like sourceforge/gnu/etc. However, it should also be possible to specify this later and start portfile-gen with a pre-downloaded tarball. The checksums for the distfiles can be generated after fetching the tarball (portfile authors should be warned to verify these with upstream!) and even more information can be collected when extracting the tarball.
+
+Different build systems usually have a unique way to be detected. For example, if a `configure.ac` or `configure.in` exists, but no `configure`, we need to run autoconf. If there is also a `Makefile.am`, but no `Makefile.in` this is using automake and we should better use `autoreconf` instead. If there is a `CMakeLists.txt`, we should include the cmake port group. If there is just a Makefile, but no `configure`, chances are high we can skip the configure phase with `use_configure no`.
+
+There are a lot more of such heuristics similar the examples above. This tasks includes implementing a framework where more of these indicators and the resulting actions can be added.
+
+The goal of this task is to create an easy-to-use Portfile generator that derives the basic information of a Portfile automatically. This should lower the amount of lines to be written by Portfile authors and lower the barrier for writing the first Portfile. If this is implemented with Tcl modules in mind, this could probably even go into base as a `port new` or `port create` command.
+
+* Classification: Medium
+* Languages: Tcl
+* Potential mentors: raimue
+
 ==== Increase test coverage ==== #testing
 
 MacPorts currently includes a [[source:trunk/base/tests|test framework]]
-------8<------8<------8<------8<------8<------8<------8<------8<--------

--
Page URL: <https://trac.macports.org/wiki/SummerOfCode>
MacPorts <http://www.macports.org/>
Ports system for OS X

This is an automated message. Someone added your email address to be
notified of changes on 'SummerOfCode' page.
If it was not you, please report to .


More information about the macports-changes mailing list