Difference between revisions of "SMEServer as a Build Server"

From SME Server
Jump to navigationJump to search
m
Line 1: Line 1:
 
This article is about using a bare SME Server as a development server for SME Server packages or contributed packages.
 
This article is about using a bare SME Server as a development server for SME Server packages or contributed packages.
  
 
+
This article is only about setting up your smeserve build server. To use it, you should follow one of the other articles (e.g. [[Simple Package Modification]])
  
 
This is what I did after reading a number of older wiki articles re: developing and amending packages as well as development environment setup.
 
This is what I did after reading a number of older wiki articles re: developing and amending packages as well as development environment setup.

Revision as of 08:26, 20 August 2023

This article is about using a bare SME Server as a development server for SME Server packages or contributed packages.

This article is only about setting up your smeserve build server. To use it, you should follow one of the other articles (e.g. Simple Package Modification)

This is what I did after reading a number of older wiki articles re: developing and amending packages as well as development environment setup.

I started with a standard SME Server 10.x install (as a VM)

  • 1 CPU
  • 4GB Ram
  • 16MB Video
  • 8GB disk (partitioned without LVM so that any future upgrades are easier)
  • 1 LAN card

I then configured the server as:

  • Server Only (I don't want any build tools on my gateway.....)
  • Static IP (my preference)
  • Do NOT supply dhcp

Log into the server manager panel to

  • configure ssh
  • add a developer user

Now we ssh into our server as root, to finish setting up our developer user:

db accounts setprop <userid> Shell /bin/bash
chsh -s /bin/bash <userid>

and install the tools they'll need

yum --enablerepo=smeaddons install smeserver-extrarepositories-epel
yum install cvs rsh rpm-build
yum --enablerepo=smedev,epel,extras install plague-client mock python-ctypes glances e-smith-devtools smeserver-mock
signal-event post-upgrade; signal-event reboot

Now you need to login as your developer and set them up: You will need to tweak their shell for CVS access and whilst there, why not make it a little friendlier :)

cat <<_EOT > ~/.bashrc
# .bashrc
# Developer environment

export CVS_RSH=ssh # tell CVS to use ssh

# DO NOT set CVSROOT

alias rm='rm -i'
alias cp='cp -i --preserve=timestamps'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
_EOT

cat <<_EOT > ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
_EOT

You will have to log out and back in for this to take effect. Create their working directories

mkdir -p ~/{smeserver,smecontribs}


If they have koozali shell and buildsys access, you'll need to set this up

# add key stuff 

cat <<_EOT > ~/.ssh/config
Host shell.koozali.org koozalishell
Hostname shell.koozali.org
User <userid>
IdentityFile ~/.ssh/<my_id_file>
ForwardAgent yes
Port 222

Host buildsys
Hostname buildsys.koozali.org
User <userid>
IdentityFile ~/.ssh/<my_id_file>
ForwardAgent yes
Port 222
_EOT

# add .buildsys stuff

If you didn't have an existing ~/.ssh/config file you may need to change the permissions

chmod 0600 ~/.ssh/config

You will have to log out and back in for this to take effect.