wiki:Freelancing/Trac

Trac

The old-school, classy wiki and project-management tool written in Python.

It uses very similar structured plain-text principle which is found in org-mode and, at least in my opinion, has the best formatting (a built-in markup language) in existence.

It is also a web-interface for your git repositories with built-in bug-tracking (hence the name).

Basically, it is a private poor-man's Gihub. I use it as an organizing tool, similar (and superior) to org-mode.

Bootstrapping

The codebase is still Python 2, which is OK.

git clone -b 2.7 --depth=1 git://github.com/python/cpython
cd cpython

Python (or rather some core modules) cannot be compiled with -fPIE, but we should do some hardening nevertheless.

export CFLAGS="-Wformat -Wformat-security -Werror=format-security \
    -Wstack-protector -fstack-protector-all --param ssp-buffer-size=1 \
    -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 \
    -fPIC \
    -fno-omit-frame-pointer \
    -Wstrict-aliasing=2 -fno-strict-aliasing \
    -fasynchronous-unwind-tables \
    -m64 -D_FILE_OFFSET_BITS=64 \
    -pthread -D_REENTRANT \
    -march=native -mtune=native -O3 \
    -fopenmp=libomp \
    -ffunction-sections -fdata-sections \
    -I/usr/local/include"
export LDFLAGS="-L/usr/local/lib \
    -pthread \
    -rtlib=compiler-rt \
    -fopenmp=libomp \
    -lm \
    -fPIC \
    -Wl,--gc-sections -Wl,--as-needed \
    -Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack"

Compiling

mkdir build
cd build
../configure --prefix=/usr/local \
    --enable-shared \
    --enable-unicode=ucs4 \
    --with-threads \
    --with-system-expat \
    --with-system-ffi \
    --with-ensurepip \
    --with-lto \
    --enable-optimizations

make -s -j4 all
sudo make -s install

This will install /usr/local/bin/pip which we shall use.

Installing trac

/usr/local/bin/python -m pip install -U --force trac pygments

Hosting

There are basically two options to host a Trac installation.

Last modified 6 months ago Last modified on Aug 31, 2019, 5:20:25 AM
Note: See TracWiki for help on using the wiki.