User Tools

Site Tools


wiki:development:nxlibs-repository

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

wiki:development:nxlibs-repository [2012/02/28 13:22]
morty missing bash
wiki:development:nxlibs-repository [2013/03/08 13:31]
Line 1: Line 1:
-====== The nx-libs repository ====== 
  
-This page explains how the branches of the ''nx-libs'' repository are managed 
- 
-Links: 
- 
-   * http://code.x2go.org/gitweb?p=nx-libs.git;a=summary 
- 
- 
-===== Importing the old sources ===== 
- 
-The old sources were downloaded by brute force from the nomachine download server: 
-<file bash getnx.sh> 
-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 
-</file> 
- 
-These sources are then unpacked in a temporary directory ''t/'': 
-<file bash extractnx.sh> 
-#!/bin/bash 
-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 
-</file> 
-    
-Now clone the nx-libs repo: 
- 
-<code bash> 
-git clone git://code.x2go.org/nx-libs.git 
-</code> 
- 
-there, for each new submodule, create a new branch. as an example, here for the nxcomp branch: 
- 
-<code bash> 
-git checkout -b nxcomp a840692edc9c6d19cd7c057f68e39c7d95eb767d 
-</code> 
-     
-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 [[http://packages.debian.org/squeeze/git-load-dirs | git_load_dirs]] tool. It is run in the temporary directory ''t/'': 
- 
-<file bash run-git-load-dirs.sh> 
-#!/bin/bash 
-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 
-</file> 
- 
-Now the nxcomp sources have been imported in the 'nxcomp' branch. 
- 
-===== Unresolved Issues ===== 
- 
-   - 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 
-   - Mike writes: after struggling with pristine-tar for more than a day now... I have reported a [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653465|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 ==== 
-The following configuration options support the usage of quilt. 
- 
-create ~/.quiltrc-dpkg 
-<code bash .quiltrc-dpkg> 
-#!/bin/bash 
-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 
-</code> 
- 
-Set an alias to use these configuration options. This only appies to Bash and can be added to ''~/.bashrc''. Other shells may have similar commands. 
-<code bash> 
-alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg" 
-</code> 
- 
-==== Modifying patches ==== 
-get a source tree from git 
-<code> 
-git clone ssh://x2go@code.x2go.org:32032/srv/git/code.x2go.org/nx-libs.git 
-cd nx-libs 
-</code> 
-apply patches until you find patch you want to edit 
-<code> 
-dquilt push 
-</code> 
-edit files you want to change 
- 
-if you want to add new files to patch, you can make it with command: 
-<code> 
-dquilt add <new file> 
-</code> 
-after you are finished with editting, apply changes to patch 
-<code> 
-dquilt refresh --strip-trailing-whitespace 
-</code> 
-revoke all patches with 
-<code> 
-dquilt pop -a 
-</code> 
-check your changes with "git status" and "git diff". Edit changelog with "dch", make sure you keep changelog lines below 80 characters, for example: 
-<code> 
-* Update patch: 202_nx-x11_enable-xinerama.full.patch, 
-  <describe what you did...>. 
-</code> 
-commit your changes with "debcommit -a" 
-==== Create new patch ==== 
-apply paches until you reach the code state where you want to begin with your new patch 
-<code> 
-dquilt push 
-</code> 
-create new patch ''<NUMBER>_<NXCOMPONENT>_<DESCRIPTION>.full.patch'', for example: 
-<code> 
-dquilt new 203_nxagent_disable-rootless-exit.full.patch 
-</code> 
-add files, which you want to patch with 
-<code> 
-dquilt add <FILE> 
-</code> 
-edit files, you want to patch and save the changes 
-<code> 
-dquilt refresh 
-</code> 
-revoke all patches with  
-<code> 
-dquilt pop -a 
-</code> 
-check your changes with "git status" and "git diff". Edit changelog with "dch", make sure you keep changelog lines below 80 characters, for example: 
-<code> 
-* Create patch: 203_nxagent_disable-rootless-exit.full.patch, 
-  <describe what you did...>. 
-</code> 
-commit your changes with "debcommit -a" 
wiki/development/nxlibs-repository.txt ยท Last modified: 2013/03/08 13:31 (external edit)