Developers Documentation

×

Warning

301 error for file:https://clearos.com/dokuwiki2/lib/exe/css.php?t=dokuwiki&tseed=82873f9c9a1f5784b951644363f20ef8

User Tools

Site Tools


Developer > Packaging

Developer - Development Environment Reference

This document provides a behind the scenes look at the underlying development environment on ClearOS 6. In essence, the document outlines what is happening when you run clearos setup as described in the Development Environment document.

Components

User Account Creation

A standard user account is needed – no need for root, no need for LDAP. On a ClearOS system, the user ID range from 500-999 is reserved for non-LDAP user accounts, while standard LDAP user accounts being at 1000. If you are curious, more information on ClearOS ID ranges is here

The webconfig server also needs read access to the user directory, hence the need for the chmod the /home/username directory.

Environment Variables

Three environment variables are used in the ClearOS development environment:

CLEAROS_BOOTSTRAP

The CLEAROS_BOOTSTRAP environment variable is used by the ClearOS app framework to specify an alternate root to /usr/clearos. You only need this environment variable if you are contributing to the underlying framework (CodeIgniter).

CLEAROS_CONFIG

The CLEAROS_CONFIG environment variable sets the location of the ClearOS app configuration file (more on this later). By default, the configuration file is set to ~/.clearos.

EDITOR

The EDITOR environment variable is used by SVN, CVS and other tools.

RPM Packaging

Once you get to the RPM packaging stage, a special RPM dist tag is traditionally used to distinguish your RPM packages from others. You have probably seen these tags before: el6, centos6, fc19, v6, etc. When you are done with your first ClearOS RPM build, you will see the dist tag in the RPM filename, for example myapp-1.0-1.mydist.noarch.rpm.

By default, your username is used for the dist tag, but you can change the parameter by editing the ~/.rpmmacros file.

For app development, you don't need to know anything about creating RPMs, but you should know about where packages are built:

DirectoryDescription
BUILDScratch area for the build process
BUILDROOTScratch area for the installation
RPMS/*Where the build puts the RPMs
SOURCESSource code and patches needed to build an RPM
SPECSRPM spec files
SRPMSWhere the build puts the source RPMs

Permissions and Sudoers

You will sometimes want to run scripts with the equivalent privileges as “webconfig”. An entry in the /etc/sudoers file grants your development account the same privileges as the ClearOS webconfig engine. Specifically, the following line was added to /etc/sudoers:

//username// ALL=NOPASSWD: CC

Development Webconfig Port - 1501

To access your development sandbox via a web browser, an alternate webconfig configlet configuration file pointing to port 1501 is created. You can find the file in /usr/clearos/sandbox/etc/httpd/conf.d/devel.conf and it will look something like the following.

Listen 1501


    # Document root
    DocumentRoot /usr/clearos/framework/htdocs
    SetEnv CLEAROS_CONFIG /home/devuser/.clearos

    # For framework development only
    # DocumentRoot /home/devuser/clearos/webconfig/framework/trunk/htdocs
    # SetEnv CLEAROS_BOOTSTRAP /home/devuser/clearos/webconfig/framework/trunk/shared

    # Enable SSL
    SSLEngine on
    SSLProtocol all -SSLv2
    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    SSLCertificateFile /usr/clearos/sandbox/etc/httpd/conf/server.crt
    SSLCertificateKeyFile /usr/clearos/sandbox/etc/httpd/conf/server.key

    # Rewrites
    RewriteEngine on
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule .* - [F]
    RewriteRule ^/app/(.*)$ /app/index.php/$1 [L]

    # Aliases
    Alias /cache/ /var/clearos/framework/cache/
    Alias /approot/ /usr/clearos/apps/
    Alias /themes/ /usr/clearos/themes/
content/en_us/dev_development_environment_reference.txt · Last modified: 2015/08/14 09:22 (external edit)

https://clearos.com/dokuwiki2/lib/exe/indexer.php?id=content%3Aen_us%3Adev_development_environment_reference&1710843615