Moji

From FedoraProject

Jump to: navigation, search

Contents

Description

Moji is a simple build system in which the client grabs a package from the server, builds it locally using mock, and then uploads the results back to the original server. Moji stands for "mini koji" and it was written to support the Fedora-ARM pre-koji build effort (for example, F15-armv5tel).

Using Moji for the Fedora ARM Build Effort

Setting Up

To use a system as a Moji client for the ARM F15 armv5tel bringup:

  1. Install the Moji repo file: rpm -Uvh http://scotland.proximity.on.ca/fedora-arm/moji-repo/rpm/moji-release-1-1.noarch.rpm
  2. Install the Moji preconfigured client: yum install -y moji-client
  3. Start the Moji server: service moji-client start
  4. (Optional) Configure the Moji server to start at next boot: chkconfig moji-client on

Please see the arm@lists.fedoraproject.org mailing list for more information.

Starting and Stopping the Moji Client

Viewing Current Status

Moji Source Code

The source code for Moji is in the Fedora ARM git repository at http://fedorahosted.org/arm/ and can be viewed at https://fedorahosted.org/arm/browser/moji/

Application Information

Server

python /path/to/moji.py server /path/to/source /path/to/working /path/to/finished /path/to/repo [password]

For the ARM F15 armv5tel startup, the Moji server is australia.proximity.on.ca.

Client

python /path/to/moji.py client <hostname or ip> <mock config name> [password]

Design/Protocol

Repo Management

$ vim repo.sh

#!/bin/bash
export repo="/var/export/f15v5.0/repo"
export temp="/var/export/f15v5.0/temp"
while true
do
	chek=`ls -lt ${repo}/*/*.[rx][pm][ml] | head -n 1 | tail -n 1 | grep -i '.*\.rpm$'`
	if [ "${chek}" != "" ]
	then
		echo "Starting on [ `date` ]" | tee -a ~/repo.log
		
		mkdir "${temp}" 2> /dev/null # make sure the temp repo directory exists
		rm -fr ${temp}/* 2> /dev/null # clear the temp repo directory
		
		ls "${repo}" | while read line
		do
			ln -s "${repo}/${line}" "${temp}/${line}"
		done
		
		rm -fr ${temp}/repodata # remove any temp repo data links
		cp -fr ${repo}/repodata ${temp}/ # copy over the current repo data
		createrepo --update -d "${temp}" # create/update the new repo data
		cp -fr ${temp}/repodata ${repo}/ # copy back the new repo data
		
		echo "Ending on [ `date` ]" | tee -a ~/repo.log
	fi
	
	sleep 5 # sleep loop or risk fire!
done

Base Package Set

priority.txt

acl attr audit audit-libs basesystem bash binutils bison byacc bzip2 bzip2-libs ca-certificates ccache check chkconfig chrpath cloog cloog-ppl cluster cmake compat-readline5 coreutils coreutils-libs corosync cpio cpp cracklib cracklib-dicts crda cronie cryptsetup-luks curl cvs cyrus-sasl cyrus-sasl-lib dash db4 db4-utils dbus dbus-glib dbus-python dev dhcp diffutils dos2unix doxygen e2fsprogs ed elfutils elfutils-libelf elfutils-libs expat expect fakechroot fakeroot fedora-release file file-libs filesystem findutils firebird flex fontconfig freetype gamin gawk gc gcc gcc-c+ gcc-host gcc-libgcc gd gdb gdbm gettext git glib2 glibc glibc-common glibc-devel glibc-headers gmp gperf gpm grep gstreamer guile gzip hostname icu imake info initscripts iproute iputils java-1.5.0-gcj kbd kernel kernel-headers keyutils keyutils-libs krb5 krb5-libs less libacl libattr libblkid libcap libcom_err libcurl libffi libgcc libgomp libidn libmount libmpc libselinux libsepol libssh2 libstdc++ libstdc++-devel libutempter libuuid libxml2 linux-atm llvm lm_sensors lua lvm2 lzo m2crypto m4 make man-db mingetty module-init-tools mpc mpfr ncurses ncurses-base ncurses-libs netpbm net-snmp net-tools nspr nss nss-softokn nss-softokn-freebl nss-sysinit nss-util oniguruma openldap openssh openssl pam passwd patch pcre perl php pinentry pkgconfig popt postgresql ppl procps psmisc psutils pth python python3 readline recode redhat-rpm-config rpm rpm-build rpm-libs rsync ruby sed setup shadow shadow-utils shared-mime-info sharutils sqlite startup-notification strace stunnel sysfsutils system-config-keyboard systemd system-setup-keyboard systemtap sysvinit tar t-binutils tcl tcp_wrappers tcsh teckit telnet texinfo texlive t-gcc tix tk tmpwatch tzdata u-boot udev unzip usbutils usermode ustr util-linux util-linux-ng uuid vim wget which xinetd x-loader xz xz-libs yum yum-metadata-parser zip zlib