#-*- tab-width: 4; -*- # ex:ts=4 # # bsd.java.mk - Support for Java-based ports. # # Created by: Ernst de Haan # # For FreeBSD committers: # Please send all suggested changes to the maintainer instead of committing # them to svn yourself. # # $FreeBSD$ # .if !defined(Java_Include) Java_Include= bsd.java.mk Java_Include_MAINTAINER= java@FreeBSD.org #------------------------------------------------------------------------------- # Variables that each port can define: # # USE_JAVA Should be defined to the remaining variables to have any # effect # # JAVA_VERSION List of space-separated suitable java versions for the # port. An optional "+" allows you to specify a range of # versions. (allowed values: 1.6[+] 1.7[+] 1.8[+]) # # JAVA_OS List of space-separated suitable JDK port operating systems # for the port. (allowed values: native linux) # # JAVA_VENDOR List of space-separated suitable JDK port vendors for the # port. (allowed values: openjdk oracle sun) # # JAVA_BUILD When set, it means that the selected JDK port should be # added to build dependencies for the port. # # JAVA_EXTRACT This variable works exactly the same as JAVA_BUILD but # regarding extract dependencies. # # JAVA_RUN This variable works exactly the same as JAVA_BUILD but # regarding run dependencies. # # USE_ANT Should be defined when the port uses Apache Ant. Ant is thus # considered to be the sub-make command. When no 'do-build' # target is defined by the port, a default one will be set # that simply runs Ant according to MAKE_ENV, MAKE_ARGS and # ALL_TARGET. Read the documentation in bsd.port.mk for more # information. # #------------------------------------------------------------------------------- # Variables defined for the port: # # JAVA_PORT The name of the JDK port. (e.g. 'java/openjdk6') # # JAVA_PORT_VERSION The version of the JDK port. (e.g. '1.6') # # JAVA_PORT_OS The operating system used by the JDK port. (e.g. 'linux') # # JAVA_PORT_VENDOR The vendor of the JDK port. (e.g. 'sun') # # JAVA_PORT_OS_DESCRIPTION Description of the operating system used by the # JDK port. (e.g. 'Linux') # # JAVA_PORT_VENDOR_DESCRIPTION Description of the vendor of the JDK port. # (e.g. 'OpenJDK BSD Porting Team') # # JAVA_HOME Path to the installation directory of the JDK. (e.g. # '/usr/local/openjdk6') # # JAVAC Path to the Java compiler to use. (e.g. # '/usr/local/openjdk6/bin/javac' or '/usr/local/bin/javac') # # JAR Path to the JAR tool to use. (e.g. # '/usr/local/openjdk6/bin/jar' or '/usr/local/bin/fastjar') # # APPLETVIEWER Path to the appletviewer utility. (e.g. # '/usr/local/linux-jdk1.7.0/bin/appletviewer') # # JAVA Path to the java executable. Use this for executing Java # programs. (e.g. '/usr/local/openjdk6/bin/java') # # JAVADOC Path to the javadoc utility program. # # JAVAH Path to the javah program. # # JAVAP Path to the javap program. # # JAVA_KEYTOOL Path to the keytool utility program. # # JAVA_N2A Path to the native2ascii tool. # # JAVA_POLICYTOOL Path to the policytool program. # # JAVA_SERIALVER Path to the serialver utility program. # # RMIC Path to the RMI stub/skeleton generator, rmic. # # RMIREGISTRY Path to the RMI registry program, rmiregistry. # # RMID Path to the RMI daemon program. # # JAVA_CLASSES Path to the archive that contains the JDK class files. On # most JDKs, this is ${JAVA_HOME}/jre/lib/rt.jar. # # JAVASHAREDIR The base directory for all shared Java resources. # # JAVAJARDIR The directory where a port should install JAR files. # # JAVALIBDIR The directory where JAR files installed by other ports # are located. # #------------------------------------------------------------------------------- # Porter's hints # # To retrieve the Major version number from JAVA_PORT_VERSION (e.g. "1.6"): # -> ${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} # #------------------------------------------------------------------------------- # There are the following stages: # # Stage 1: Define constants # Stage 2: Determine which JDK ports are installed and which JDK ports are # suitable # Stage 3: Decide the exact JDK to use (or install) # Stage 4: Add any dependencies if necessary # Stage 5: Define all settings for the port to use # . if defined(USE_JAVA) #------------------------------------------------------------------------------- # Stage 1: Define constants # # System-global directories # NB: If the value of JAVALIBDIR is altered here it must also be altered # in java/javavmwrapper/Makefile. JAVASHAREDIR?= ${PREFIX}/share/java JAVAJARDIR?= ${JAVASHAREDIR}/classes JAVALIBDIR?= ${LOCALBASE}/share/java/classes # Add appropriate substitutions to PLIST_SUB and LIST_SUB PLIST_SUB+= JAVASHAREDIR="${JAVASHAREDIR:S,^${PREFIX}/,,}" \ JAVAJARDIR="${JAVAJARDIR:S,^${PREFIX}/,,}" SUB_LIST+= JAVASHAREDIR="${JAVASHAREDIR}" \ JAVAJARDIR="${JAVAJARDIR}" \ JAVALIBDIR="${JAVALIBDIR}" . if defined(JAVA_VERSION) SUB_LIST+= JAVA_VERSION="${JAVA_VERSION}" . endif . if defined(JAVA_VENDOR) SUB_LIST+= JAVA_VENDOR="${JAVA_VENDOR}" . endif . if defined(JAVA_OS) SUB_LIST+= JAVA_OS="${JAVA_OS}" . endif # The complete list of Java versions, os and vendors supported. __JAVA_VERSION_LIST= 1.6 1.7 1.8 1.9 _JAVA_VERSION_LIST= ${__JAVA_VERSION_LIST} ${__JAVA_VERSION_LIST:S/$/+/} _JAVA_OS_LIST= native linux _JAVA_VENDOR_LIST= openjdk oracle sun # Set all meta-information about JDK ports: # port location, corresponding JAVA_HOME, JDK version, OS, vendor _JAVA_PORT_NATIVE_OPENJDK_JDK_1_6_INFO= PORT=java/openjdk6 HOME=${LOCALBASE}/openjdk6 \ VERSION=1.6.0 OS=native VENDOR=openjdk _JAVA_PORT_NATIVE_OPENJDK_JDK_1_7_INFO= PORT=java/openjdk7 HOME=${LOCALBASE}/openjdk7 \ VERSION=1.7.0 OS=native VENDOR=openjdk _JAVA_PORT_NATIVE_OPENJDK_JDK_1_8_INFO= PORT=java/openjdk8 HOME=${LOCALBASE}/openjdk8 \ VERSION=1.8.0 OS=native VENDOR=openjdk _JAVA_PORT_LINUX_ORACLE_JDK_1_8_INFO= PORT=java/linux-oracle-jdk18 HOME=${LOCALBASE}/linux-oracle-jdk1.8.0 \ VERSION=1.8.0 OS=linux VENDOR=oracle _JAVA_PORT_LINUX_ORACLE_JDK_1_9_INFO= PORT=java/linux-oracle-jdk9 HOME=${LOCALBASE}/linux-oracle-jdk9 \ VERSION=1.9.0 OS=linux VENDOR=oracle # Verbose description for each VENDOR _JAVA_VENDOR_openjdk= "OpenJDK BSD Porting Team" _JAVA_VENDOR_oracle= Oracle _JAVA_VENDOR_sun= Sun # Verbose description for each OS _JAVA_OS_native= Native _JAVA_OS_linux= Linux # List all JDK ports in order of preference __JAVA_PORTS_ALL= JAVA_PORT_NATIVE_OPENJDK_JDK_1_8 \ JAVA_PORT_NATIVE_OPENJDK_JDK_1_7 \ JAVA_PORT_NATIVE_OPENJDK_JDK_1_6 \ JAVA_PORT_LINUX_ORACLE_JDK_1_8 \ JAVA_PORT_LINUX_ORACLE_JDK_1_9 _JAVA_PORTS_ALL= ${JAVA_PREFERRED_PORTS} \ ${__JAVA_PORTS_ALL} # Set the name of the file that indicates that a JDK is indeed installed, as a # relative path within the JAVA_HOME directory. _JDK_FILE=bin/javac #------------------------------------------------------------------------------- # Stage 2: Determine which JDK ports are suitable and which JDK ports are # suitable # # From here, the port is using bsd.java.mk v2.0 # Error checking: defined JAVA_{HOME,PORT,PORT_VERSION,PORT_VENDOR,PORT_OS} . for variable in JAVA_HOME JAVA_PORT JAVA_PORT_VERSION JAVA_PORT_VENDOR JAVA_PORT_OS . if defined(${variable}) check-makevars:: @${ECHO_CMD} "${PKGNAME}: Environment error: \"${variable}\" should not be defined -- clearing." .undef ${variable} . endif . endfor # Error checking: JAVA_VERSION .if defined(JAVA_VERSION) .if !defined(_JAVA_VERSION_LIST_REGEXP) _JAVA_VERSION_LIST_REGEXP= ${_JAVA_VERSION_LIST:C/\+/\\+/:ts|} .endif check-makevars:: @( test ! -z "${JAVA_VERSION}" && ( ${ECHO_CMD} "${JAVA_VERSION}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_VERSION_LIST_REGEXP}")) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_VERSION}\" is not a valid value for JAVA_VERSION. It should be one or more of: ${__JAVA_VERSION_LIST} (with an optional \"+\" suffix.)"; ${FALSE}) .endif # Error checking: JAVA_VENDOR .if defined(JAVA_VENDOR) .if !defined(_JAVA_VENDOR_LIST_REGEXP) _JAVA_VENDOR_LIST_REGEXP= ${_JAVA_VENDOR_LIST:ts|} .endif check-makevars:: @( test ! -z "${JAVA_VENDOR}" && ( ${ECHO_CMD} "${JAVA_VENDOR}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_VENDOR_LIST_REGEXP}" )) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_VENDOR}\" is not a valid value for JAVA_VENDOR. It should be one or more of: ${_JAVA_VENDOR_LIST}"; \ ${FALSE}) .endif # Error checking: JAVA_OS .if defined(JAVA_OS) .if !defined(_JAVA_OS_LIST_REGEXP) _JAVA_OS_LIST_REGEXP= ${_JAVA_OS_LIST:ts|} .endif check-makevars:: @( test ! -z "${JAVA_OS}" && ( ${ECHO_CMD} "${JAVA_OS}" | ${TR} " " "\n" | ${GREP} -Eq "${_JAVA_OS_LIST_REGEXP}")) || \ (${ECHO_CMD} "${PKGNAME}: Makefile error: \"${JAVA_OS}\" is not a valid value for JAVA_OS. It should be one or more of: ${_JAVA_OS_LIST}"; \ ${FALSE}) .endif # Set default values for JAVA_BUILD and JAVA_RUN # When nothing is set, assume JAVA_BUILD=jdk and JAVA_RUN=jre # (unless NO_BUILD is set) . if !defined(JAVA_EXTRACT) && !defined(JAVA_BUILD) && !defined(JAVA_RUN) . if !defined(NO_BUILD) JAVA_BUILD= jdk . endif JAVA_RUN= jre . endif # JDK dependency setting . undef _JAVA_PORTS_INSTALLED . undef _JAVA_PORTS_POSSIBLE . if defined(JAVA_VERSION) _JAVA_VERSION= ${JAVA_VERSION:S/1.6+/1.6 1.7+/:S/1.7+/1.7 1.8+/:S/1.8+/1.8 1.9+/:S/1.9+/1.9/} . else _JAVA_VERSION= ${__JAVA_VERSION_LIST} . endif . if defined(JAVA_OS) _JAVA_OS= ${JAVA_OS} . else _JAVA_OS= ${_JAVA_OS_LIST} . endif . if defined(JAVA_VENDOR) _JAVA_VENDOR= ${JAVA_VENDOR} . else _JAVA_VENDOR= ${_JAVA_VENDOR_LIST} . endif . for A_JAVA_PORT in ${_JAVA_PORTS_ALL} A_JAVA_PORT_INFO:= ${A_JAVA_PORT:S/^/\${_/:S/$/_INFO}/} A_JAVA_PORT_HOME= ${A_JAVA_PORT_INFO:MHOME=*:S,HOME=,,} A_JAVA_PORT_VERSION= ${A_JAVA_PORT_INFO:MVERSION=*:C/VERSION=([0-9])\.([0-9])(.*)/\1.\2/} A_JAVA_PORT_OS= ${A_JAVA_PORT_INFO:MOS=*:S,OS=,,} A_JAVA_PORT_VENDOR= ${A_JAVA_PORT_INFO:MVENDOR=*:S,VENDOR=,,} .if !defined(_JAVA_PORTS_INSTALLED) && exists(${A_JAVA_PORT_HOME}/${_JDK_FILE}) __JAVA_PORTS_INSTALLED+= ${A_JAVA_PORT} .endif # Because variables inside for loops are special (directly replaced as strings), # we are allowed to use them inside modifiers, where normally ${FOO:M${BAR}} is # not allowed. # .for ver in ${A_JAVA_PORT_VERSION} .for os in ${A_JAVA_PORT_OS} .for vendor in ${A_JAVA_PORT_VENDOR} .if ${_JAVA_VERSION:M${ver}} && ${_JAVA_OS:M${os}} && ${_JAVA_VENDOR:M${vendor}} __JAVA_PORTS_POSSIBLE+= ${A_JAVA_PORT} .endif .endfor .endfor .endfor . endfor .if !defined(_JAVA_PORTS_INSTALLED) _JAVA_PORTS_INSTALLED= ${__JAVA_PORTS_INSTALLED:C/ [ ]+/ /g} .endif _JAVA_PORTS_POSSIBLE= ${__JAVA_PORTS_POSSIBLE:C/ [ ]+/ /g} #------------------------------------------------------------------------------- # Stage 3: Decide the exact JDK to use (or install) # # Find an installed JDK port that matches the requirements of the port . undef _JAVA_PORTS_INSTALLED_POSSIBLE . for A_JAVA_PORT in ${_JAVA_PORTS_POSSIBLE} __JAVA_PORTS_INSTALLED_POSSIBLE+= ${_JAVA_PORTS_INSTALLED:M${A_JAVA_PORT}} . endfor _JAVA_PORTS_INSTALLED_POSSIBLE= ${__JAVA_PORTS_INSTALLED_POSSIBLE:C/[ ]+//g} . if ${_JAVA_PORTS_INSTALLED_POSSIBLE} != "" . for i in ${_JAVA_PORTS_INSTALLED_POSSIBLE} . if !defined(_JAVA_PORTS_INSTALLED_POSSIBLE_shortcircuit) _JAVA_PORT= $i _JAVA_PORTS_INSTALLED_POSSIBLE_shortcircuit= 1 . endif . endfor # If no installed JDK port fits, then pick one from the list of possible ones . else . for i in ${_JAVA_PORTS_POSSIBLE} . if !defined(_JAVA_PORTS_POSSIBLE_shortcircuit) _JAVA_PORT= $i _JAVA_PORTS_POSSIBLE_shortcircuit= 1 . endif . endfor . endif _JAVA_PORT_INFO:= ${_JAVA_PORT:S/^/\${_/:S/$/_INFO}/} JAVA_PORT= ${_JAVA_PORT_INFO:MPORT=*:S,PORT=,,} JAVA_HOME= ${_JAVA_PORT_INFO:MHOME=*:S,HOME=,,} JAVA_PORT_VERSION= ${_JAVA_PORT_INFO:MVERSION=*:S,VERSION=,,} JAVA_PORT_OS= ${_JAVA_PORT_INFO:MOS=*:S,OS=,,} JAVA_PORT_VENDOR= ${_JAVA_PORT_INFO:MVENDOR=*:S,VENDOR=,,} JAVA_PORT_VENDOR_DESCRIPTION:= ${JAVA_PORT_VENDOR:S/^/\${_JAVA_VENDOR_/:S/$/}/} JAVA_PORT_OS_DESCRIPTION:= ${JAVA_PORT_OS:S/^/\${_JAVA_OS_/:S/$/}/} #------------------------------------------------------------------------------- # Stage 4: Add any dependencies if necessary # # Ant Support: USE_ANT --> JAVA_BUILD=jdk . if defined(USE_ANT) JAVA_BUILD= jdk . endif # Add the JDK port to the dependencies DEPEND_JAVA= ${JAVA}:${JAVA_PORT} . if defined(JAVA_EXTRACT) EXTRACT_DEPENDS+= ${DEPEND_JAVA} . endif . if defined(JAVA_BUILD) . if defined(NO_BUILD) check-makevars:: @${ECHO_CMD} "${PKGNAME}: Makefile error: JAVA_BUILD and NO_BUILD cannot be set at the same time."; @${FALSE} . endif BUILD_DEPENDS+= ${DEPEND_JAVA} . endif . if defined(JAVA_RUN) RUN_DEPENDS+= ${DEPEND_JAVA} . endif # Ant support: default do-build target . if defined(USE_ANT) DESTDIRNAME?= -Dfreebsd.ports.destdir ANT?= ${LOCALBASE}/bin/ant MAKE_ENV+= JAVA_HOME=${JAVA_HOME} BUILD_DEPENDS+= ${ANT}:devel/apache-ant ALL_TARGET?= . if !target(do-build) do-build: @(cd ${BUILD_WRKSRC}; \ ${SETENV} ${MAKE_ENV} ${ANT} ${MAKE_ARGS} ${ALL_TARGET}) . endif . if !target(do-test) && defined(TEST_TARGET) TEST_DEPENDS+= ${DEPEND_JAVA} TEST_DEPENDS+= ${ANT}:devel/apache-ant do-test: @(cd ${TEST_WRKSRC}; \ ${SETENV} ${MAKE_ENV} ${ANT} ${MAKE_ARGS} ${TEST_TARGET}) . endif . endif #----------------------------------------------------------------------------- # Stage 5: Define all settings for the port to use # # At this stage both JAVA_HOME and JAVA_PORT are definitely given a value. # # Define the location of the Java compiler. # Only define JAVAC if a JDK is needed . undef JAVAC # Then test if a JAVAC has to be set (JAVA_BUILD==jdk) . if defined(JAVA_BUILD) . if (${JAVA_BUILD:tu} == "JDK") && !defined(JAVAC) JAVAC?= ${JAVA_HOME}/bin/javac . endif . endif # Define the location of some more executables. APPLETVIEWER?= ${JAVA_HOME}/bin/appletviewer JAR?= ${JAVA_HOME}/bin/jar JAVA?= ${JAVA_HOME}/bin/java JAVADOC?= ${JAVA_HOME}/bin/javadoc JAVAH?= ${JAVA_HOME}/bin/javah JAVAP?= ${JAVA_HOME}/bin/javap JAVA_N2A?= ${JAVA_HOME}/bin/native2ascii JAVA_SERIALVER?=${JAVA_HOME}/bin/serialver RMIC?= ${JAVA_HOME}/bin/rmic RMIREGISTRY?= ${JAVA_HOME}/bin/rmiregistry JAVA_KEYTOOL?= ${JAVA_HOME}/bin/keytool JAVA_POLICYTOOL?= ${JAVA_HOME}/bin/policytool RMID?= ${JAVA_HOME}/bin/rmid # Set the location of the ZIP or JAR file with all standard Java classes. JAVA_CLASSES= ${JAVA_HOME}/jre/lib/rt.jar #------------------------------------------------------------------------------- # Additional Java support # Debug target # Use it to check Java dependency while porting java-debug: @${ECHO_CMD} "# User specified parameters:" @${ECHO_CMD} "JAVA_VERSION= ${JAVA_VERSION} (${_JAVA_VERSION})" @${ECHO_CMD} "JAVA_OS= ${JAVA_OS} (${_JAVA_OS})" @${ECHO_CMD} "JAVA_VENDOR= ${JAVA_VENDOR} (${_JAVA_VENDOR})" @${ECHO_CMD} "JAVA_BUILD= ${JAVA_BUILD}" @${ECHO_CMD} "JAVA_RUN= ${JAVA_RUN}" @${ECHO_CMD} "JAVA_EXTRACT= ${JAVA_EXTRACT}" @${ECHO_CMD} @${ECHO_CMD} "# JDK port dependency selection process:" @${ECHO_CMD} "_JAVA_PORTS_POSSIBLE= ${_JAVA_PORTS_POSSIBLE}" @${ECHO_CMD} "_JAVA_PORTS_INSTALLED= ${_JAVA_PORTS_INSTALLED}" @${ECHO_CMD} "_JAVA_PORTS_INSTALLED_POSSIBLE= ${_JAVA_PORTS_INSTALLED_POSSIBLE}" @${ECHO_CMD} "_JAVA_PORT= ${_JAVA_PORT}" @${ECHO_CMD} "_JAVA_PORT_INFO= ${_JAVA_PORT_INFO:S/\t/ /}" @${ECHO_CMD} @${ECHO_CMD} "# Selected JDK port:" @${ECHO_CMD} "JAVA_PORT= ${JAVA_PORT}" @${ECHO_CMD} "JAVA_HOME= ${JAVA_HOME}" @${ECHO_CMD} "JAVA_PORT_VERSION= ${JAVA_PORT_VERSION}" @${ECHO_CMD} "JAVA_PORT_OS= ${JAVA_PORT_OS} (${JAVA_PORT_OS_DESCRIPTION})" @${ECHO_CMD} "JAVA_PORT_VENDOR= ${JAVA_PORT_VENDOR} (${JAVA_PORT_VENDOR_DESCRIPTION})" @${ECHO_CMD} @${ECHO_CMD} "# Additional variables:" @${ECHO_CMD} "JAVAC= ${JAVAC}" @${ECHO_CMD} "JAVA_CLASSES= ${JAVA_CLASSES}" . endif .endif 3-051-2/+7 * Update to the 20120302 snapshot of GCC 4.6.4, which nearlygerald2012-03-042-3/+3 * - Add TEST_DEPENDS to enable testingswills2012-03-031-0/+1 * - Add TEST_DEPENDS to enable testingswills2012-03-031-0/+1 * - Update to 0.1.1lwhsu2012-03-032-8/+6 * - extend DEPRECATION_DATE till year 2013.rm2012-03-011-2/+3 * - Update to 1.004000sunpoet2012-02-292-6/+3 * - Update to 05_20120219gahr2012-02-283-14/+3 * Update to what is basically the first RC of GCC 4.6.3.gerald2012-02-272-3/+3 * Update to the 20120225 snapshot of GCC 4.7.0.gerald2012-02-274-6/+6 * - Update lang/ruby18 to p385swills2012-02-256-21/+21 * Upgrade to version 4.6.4.olgeni2012-02-253-4/+8 * - Update to 1.69.39sunpoet2012-02-242-3/+3 * fix the packing list for WITH_CMP_LIBbf2012-02-232-1/+1 * respect CC [1]; fix Tcl/Tk dependencies; don't conflate -nox11 andbf2012-02-232-7/+36 * Upgrade to llvm/clang r150242.brooks2012-02-235-26/+67 * - Chase Emacs updatesashish2012-02-225-4/+5 * Update to 1.2.5rene2012-02-202-3/+3 * - fix build with gcc46dinoex2012-02-191-0/+4 * - Update to 1.8lwhsu2012-02-196-161/+88 * - force build with clangdinoex2012-02-191-5/+1 * - change USE_PYTHON=build with USE_PYTHON_BUILD=yes (non-functional change)rm2012-02-191-1/+1 * - Remove pr-patchmiwi2012-02-191-23/+0 * ThreadScope is a graphical viewer for thread profile informationpgj2012-02-191-0/+1 * Parses .eventlog files emitted by GHC 6.12.1 and later. Includes thepgj2012-02-191-0/+1 * wxHaskell is a portable and native GUI library for Haskell. It is builtpgj2012-02-191-0/+1 * wxHaskell is a portable and native GUI library for Haskell. It is builtpgj2012-02-191-0/+1 * wxHaskell is a portable and native GUI library for Haskell. It is builtpgj2012-02-191-0/+1 * This package provides strict versions of some standard Haskell datapgj2012-02-191-0/+1 * HsOpenSSL is an (incomplete) OpenSSL binding for Haskell. It canpgj2012-02-191-0/+1 * - Mark Python as Securemiwi2012-02-1911-5/+131 * A RESTful web framework with strong compile-time guarantees of correctness.pgj2012-02-191-0/+1 * Authentication for Yesod.pgj2012-02-191-0/+1 * Generate content for Yesod using the aeson package.pgj2012-02-191-0/+1 * Form handling support for Yesod Web Framework.pgj2012-02-191-0/+1 * Some helpers for using Persistent from Yesod.pgj2012-02-191-0/+1 * Yesod is a framework designed to foster creation of RESTful webpgj2012-02-191-0/+1 * A logging system for WAI.pgj2012-02-191-0/+1 * Provides common features without many dependencies.pgj2012-02-191-0/+1 * Shakespeare is a template family for type-safe, efficient templates withpgj2012-02-191-0/+1 * Shakespeare is a template family for type-safe, efficient templates withpgj2012-02-191-0/+1 * This package uses the same approach of type-safe URLs to createpgj2012-02-191-0/+1 * Shakespeare is a template family for type-safe, efficient templates withpgj2012-02-191-0/+1 * This library provides just the general interface and helper functions.pgj2012-02-191-0/+1 * This library provides just the general interface and helper functions.pgj2012-02-191-0/+1 * Useful for stuff like database connection pools.pgj2012-02-191-0/+1 * Components of paths.pgj2012-02-191-0/+1 * This package provides some high-level datatypes for declaring MIME emailpgj2012-02-191-0/+1 * Hamlet gives you a type-safe tool for generating HTML code. It workspgj2012-02-191-0/+1 * Shakespeare is a template family for type-safe, efficient templates withpgj2012-02-191-0/+1 * A fast logging system.pgj2012-02-191-0/+1 * Validating an email address string against RFC 5322.pgj2012-02-191-0/+1 * Ranges and some functions allowing things like fast membership lookup onpgj2012-02-191-0/+1 * Provides high-level conversions based on the data-object package.pgj2012-02-191-0/+1 * Provides support for parsing and emitting Yaml documents.pgj2012-02-191-0/+1 * These objects show up in different places, e.g. JSON, Yaml. Bypgj2012-02-191-0/+1 * HTTP cookie parsing and rendering.pgj2012-02-191-0/+1 * This is a port of John Goerzen's convertible package, intended topgj2012-02-191-0/+1 * Monad transformer for attempt.pgj2012-02-191-0/+1 * This package is for working with native byte-ordering of the system.pgj2012-02-191-0/+1 * Focus is on third-party authentication methods, such as OpenID, rpxnowpgj2012-02-191-0/+1 * This package provides parsing and rendering functions for XML. It ispgj2012-02-191-0/+1 * The xml-types package.pgj2012-02-191-0/+1 * This package uses attoparsec for parsing the actual contents of the HTTPpgj2012-02-191-0/+1 * A set of extra definitions, default values and helpers for the tlspgj2012-02-191-0/+1 * Native Haskell TLS and SSL protocol implementation for server andpgj2012-02-191-0/+1 * Certificates and Key reader/writer. At the moment only X509 certificatepgj2012-02-191-0/+1 * Defines a data type, Attempt, which has a Success and Failurepgj2012-02-191-0/+1 * A simple type class for success/failure computations.pgj2012-02-191-0/+1 * ASN1 data reader and writer in raw form with supports for high levelpgj2012-02-191-0/+1 * This library implements the RSA encryption and signature algorithms forpgj2012-02-191-0/+1 * An unrolled implementation of MD5 purely in Haskell.pgj2012-02-191-0/+1 * Update to the 20120217 snapshot of GCC 4.6.3.gerald2012-02-182-3/+3 * Remove quotes from BROKEN and IGNORE as they are not requiredeadler2012-02-181-1/+1 * Gitit is a wiki backed by a git, darcs, or mercurial filestore. Pagespgj2012-02-181-0/+1 * Run untrusted HTML through Text.HTML.SanitizeXSS.sanitizeXSS to preventpgj2012-02-181-0/+1 * CSS parser and renderer.pgj2012-02-181-0/+1 * The reCAPTCHA [1] is a service that provides captchas for preventingpgj2012-02-181-0/+1 * The filestore library provides an abstract interface for a versioningpgj2012-02-181-0/+1 * A port of the Java library by Terrence Parr.pgj2012-02-181-0/+1 * Parser and writer for handling sectioned config files in Haskell. Thepgj2012-02-181-0/+1 * The Haskell application server stack.pgj2012-02-181-0/+1 * Unplug your machine and restart and have your app recover to exactlypgj2012-02-181-0/+1 * Happstack Server provides an HTTP server and a rich set of functions forpgj2012-02-181-0/+1 * Just pick which parts of your data structures you want indexed using anpgj2012-02-181-0/+1 * Miscellaneous utilities for Happstack packages.pgj2012-02-181-0/+1 * This package provides libraries for:pgj2012-02-181-0/+1 * Provides SYB-with-class instances for Text from the text package.pgj2012-02-181-0/+1 * Classes, and Template Haskell code to generate instances, for the Scrappgj2012-02-181-0/+1 * Support for computations with failures.pgj2012-02-181-0/+1 * lifted-base exports IO operations from the base library lifted to anypgj2012-02-171-0/+1 * This package defines the type class MonadBaseControl, a subset ofpgj2012-02-171-0/+1 * This package provides a straightforward port of monadLib's BaseM typepgj2012-02-171-0/+1 * This package defines new symbols for a number of functions, operatorspgj2012-02-171-0/+1 * Upgrade to version 12.2.1.olgeni2012-02-173-54/+220 * - Add devel/p5-Devel-CallChecker as a build dependsjadawin2012-02-171-2/+3 * - Bump PORTREVISION to chase the update of multimedia/libvpxashish2012-02-161-0/+1 * Update 2.057 --> 2.058cy2012-02-163-3/+7 * Update 1.072 --> 1.073cy2012-02-164-13/+16 * - Mark BROKEN: incomplete plistpav2012-02-161-0/+2 * Bump pcre shared library version in php52mm2012-02-151-1/+1 * - Update to version 2.72danfe2012-02-152-5/+7 * - Add option to build with -pthread, default to on. Note this is not the sameswills2012-02-155-8/+20 * Resolve manpage naming conflict with the stock Tcl documentationolgeni2012-02-151-2/+5 * Bump pcre library dependency due to 8.30 updatemm2012-02-148-12/+16 * Bump pcre library dependency due to 8.30 updatemm2012-02-145-5/+51 * Upgrade to version 5.2.1.olgeni2012-02-146-372/+1878 * - Fix MASTER_SITESashish2012-02-131-1/+1 * Upgrade to version 1.0.1 and fix home URL.olgeni2012-02-133-6/+5 * Don't require specific Tcl version for lang/tcl-wrappermm2012-02-131-2/+2