User Tools

Site Tools


wiki:development:nxlibs-repository

This is an old revision of the document!


The nx-libs repository

This page explains how the branches of the nx-libs repository are managed

Links:

Importing the old sources

The old sources were downloaded by brute force from the nomachine download server:

 wget http://64.34.161.181/download/3.5.0/sources/nx-X11-3.5.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.2/sources/nx-X11-3.4.2-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.1/sources/nx-X11-3.4.1-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.0/sources/nx-X11-3.4.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.3.0/sources/nx-X11-3.3.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.2.0/sources/nx-X11-3.2.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.1.0/sources/nx-X11-3.1.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.0.0/sources/nx-X11-3.0.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.5.0/sources/nxagent-3.5.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.2/sources/nxagent-3.4.2-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.1/sources/nxagent-3.4.1-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.0/sources/nxagent-3.4.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.3.0/sources/nxagent-3.3.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.2.0/sources/nxagent-3.2.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.1.0/sources/nxagent-3.1.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.0.0/sources/nxagent-3.0.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.5.0/sources/nxauth-3.5.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.2/sources/nxauth-3.4.2-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.1/sources/nxauth-3.4.1-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.0/sources/nxauth-3.4.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.3.0/sources/nxauth-3.3.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.2.0/sources/nxauth-3.2.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.1.0/sources/nxauth-3.1.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.0.0/sources/nxauth-3.0.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.5.0/sources/nxcomp-3.5.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.2/sources/nxcomp-3.4.2-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.1/sources/nxcomp-3.4.1-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.0/sources/nxcomp-3.4.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.3.0/sources/nxcomp-3.3.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.2.0/sources/nxcomp-3.2.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.1.0/sources/nxcomp-3.1.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.0.0/sources/nxcomp-3.0.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.5.0/sources/nxcompext-3.5.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.0/sources/nxcompext-3.4.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.3.0/sources/nxcompext-3.3.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.2.0/sources/nxcompext-3.2.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.1.0/sources/nxcompext-3.1.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.0.0/sources/nxcompext-3.0.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.5.0/sources/nxproxy-3.5.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.1/sources/nxproxy-3.4.1-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.0/sources/nxproxy-3.4.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.3.0/sources/nxproxy-3.3.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.2.0/sources/nxproxy-3.2.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.1.0/sources/nxproxy-3.1.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.0.0/sources/nxproxy-3.0.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.5.0/sources/nxcompshad-3.5.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.4.0/sources/nxcompshad-3.4.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.3.0/sources/nxcompshad-3.3.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.2.0/sources/nxcompshad-3.2.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.1.0/sources/nxcompshad-3.1.0-{1..15}.tar.gz
 wget http://64.34.161.181/download/3.0.0/sources/nxcompshad-3.0.0-{1..15}.tar.gz

These sources are then unpacked in a temporary directory t/:

 mkdir t; cd t;
 for p in nxcomp{,shad,ext} nxproxy; do
   for f in ../$p*.tar.gz; do b=`basename $f`; mkdir $b; ( cd $b; tar xvf ../$f; ); done
 done
 

Now clone the nx-libs repo:

 git clone git://code.x2go.org/nx-libs.git

there, for each new submodule, create a new branch. as an example, here for the nxcomp branch:

 git checkout -b nxcomp a840692edc9c6d19cd7c057f68e39c7d95eb767d
  

NB: the commit a840692edc9c6d19cd7c057f68e39c7d95eb767d is the very first commit in the repository. It contains an empty tree as content and is common for all branches in nx-libs. This faciliates the merging step later.

We now import the sources using the git_load_dirs tool. It is run in the temporary directory t/:

wc=../nx-libs
l=`ls -d nxcomp-*(/)`
for f in $l; do (cd $wc; git reset --hard ; git clean -dfx); git_load_dirs -w $wc $f; done

Now the nxcomp sources have been imported in the 'nxcomp' branch.

Unresolved Issues

  1. How to import pristine-tar data. Note that the git-import-orig dir strips the first directory member. This is usually sensible for sensible projects, but not for NX, which expects the sources to be unpacked in a very precise manner. Therefore, we need to pretty clumsily work with temporary subdirectories to capture this right. I have not investigated yet how to integrate this with pristine-tar
  2. Mike writes: after struggling with pristine-tar for more than a day now… I have reported a patch against pristine-tar to Debian BTS: With that patch applied to pristine-tar, it is possible to commit NX sources as pristine-tar objects (.delta, .id) to our Git.

Editing patches using quilt

Configure quilt

add to ~/.bashrc

alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"

create ~/.quiltrc-dpkg

d=. ; while [ ! -d $d/debian -a `readlink -e $d` != / ]; do d=$d/..; done
if [ -d $d/debian ] && [ -z $QUILT_PATCHES ]; then
    # if in Debian packaging tree with unset $QUILT_PATCHES
    QUILT_PATCHES="debian/patches"
    QUILT_PATCH_OPTS="--reject-format=unified"
    QUILT_DIFF_ARGS="-p ab --no-timestamps --no-index --color=auto"
    QUILT_REFRESH_ARGS="-p ab --no-timestamps --no-index"
    QUILT_COLORS="diff_hdr=1;32:diff_add=1;34:diff_rem=1;31:diff_hunk=1;33:diff_ctx=35:diff_cctx=33"
    if ! [ -d $d/debian/patches ]; then mkdir $d/debian/patches; fi
fi

modifying patches

get a source tree from git

git clone ssh://x2go@code.x2go.org:32032/srv/git/code.x2go.org/nx-libs.git
cd nx-libs

apply patches until you find patch you want to edit

dquilt push

edit files you want to change

if you want to add new files to patch, you can make it with command:

dquilt add <new file>

after you are finished with editting, apply changes to patch

dquilt refresh --strip-trailing-whitespace

revoke all patches with

dquilt pop -a

check your changes with “git status” and “git diff”. Edit changelog with “dch”, for example:

* Update patch: 202_nx-x11_enable-xinerama.full.patch, disable Xinerama
    extension if NX_XINERAMA_CONF not exists.

commit your changes with “debcommit -a”

wiki/development/nxlibs-repository.1327927454.txt.gz · Last modified: 2013/03/08 13:31 (external edit)