Changes between Version 257 and Version 258 of SummerOfCode


Ignore:
Timestamp:
Mar 17, 2015, 6:11:03 PM (9 years ago)
Author:
raimue (Rainer Müller)
Comment:

This might become an idea in the future

Legend:

Unmodified
Added
Removed
Modified
  • SummerOfCode

    v257 v258  
    252252* Potential mentors: TBD
    253253
     254
     255{{{
     256#!comment
     257# This was just a wild idea by me. After reading it again, I am no longer sure if this is suitable as an idea. The compiler binary checks would be covered by a functioning trace mode already and environment variable checks are hard to implement (if possible at all).
     258# However, I already typed it out now, so I leave it here for discussion with other mentors. --raimue@
     259
     260==== Run basic checks on build systems ==== #buildcheck
     261
     262Some mistakes are very common on newly written ports, mostly because build systems do not always respect the usual conventions. While the port works for the initial port author, it may fail for others due to these mistakes. These could be checked for automatically to catch them before adding the port to the ports tree.
     263
     264First, a set of tests could be run on the extracted, patched (and configured) sources. For example, a possible check could include whether the given Makefile respects the CC/CPPFLAGS/CFLAGS/LDFLAGS environment variables, which is one of the most common mistakes. Often smaller projects just [https://trac.macports.org/wiki/UsingTheRightCompiler hardcode the compiler] to `cc` or even `gcc`. This could be checked for in various ways. One option would be to overwrite Makefiles rules to verify the passed parameters. Another option would be to use a custom compiler script as `CC` that checks the flags in question are always passed to the compiler by the build system and match those given in the Portfile (or the defaults). Other binaries such as `cc`/`gcc` need to be shadowed and invocation must raise an error.
     265
     266These checks would be included as a new option in existing commands, for example `port build --check`, or a new phase `prebuildcheck` to be run before the `build` phase. This mode could be enabled automatically with a flag in `macports.conf` for MacPorts developers.
     267
     268You will definitely need to come up with more ideas to fill the whole summer.
     269
     270* Classification: Easy to Hard
     271* Languages: Tcl
     272* Potential mentors: (raimue)
     273}}}
     274
     275
    254276=== Ports ===
    255277