Difference between revisions of "Elphel on SourceForge"

From ElphelWiki
Jump to: navigation, search
(How to contribute to Elphel CVS)
('''Add files or directories to the repository:''')
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
= Releases description on Elphel's SourceForge project=
 
= Releases description on Elphel's SourceForge project=
 +
 +
The SourceForge official project - http://sourceforge.net/projects/elphel
 +
 +
== Elphel NC353L [http://sourceforge.net/project/showfiles.php?group_id=105686&package_id=222883&release_id=567444 7.1 firmwares and sources] releases ==
 +
 +
* image353-x.x.x.x.tar.gz are binary firmware images ready to flash into NC353L-based models.
 +
* elphel353-x.x.x.x.tar.gz are firmware sources for particular release version.
 +
 +
== Elphel [http://sourceforge.net/project/showfiles.php?group_id=105686&package_id=172636 rtp_receiver] (Only sources are available) ==
 +
 +
* [http://sourceforge.net/project/showfiles.php?group_id=105686&package_id=172636&release_id=556304 5MPx support] contain :
 +
** [http://downloads.sourceforge.net/elphel/common-1.2.16.tar.gz?modtime=1195859879&big_mirror=0 common-1.2.16] a patched version of UCL Common Code Library used in both ElphelOgm & ElphelSrv
 +
** [http://downloads.sourceforge.net/elphel/ElphelOgm-1.0.tar.gz?modtime=1195859879&big_mirror=0 ElphelOgm-1.0] the last version of ElphelOgm rtp receiver.
 +
** Obsolete versions of ElphelSrv packages, please take the last one from upper level.
 +
* [http://sourceforge.net/project/showfiles.php?group_id=105686&package_id=172636&release_id=581469 ElphelSrv-0.6]
  
 
= Elphel on SourceForge CVS tree description =
 
= Elphel on SourceForge CVS tree description =
Line 7: Line 22:
  
 
== Under development tree ==
 
== Under development tree ==
 +
= Elhel CVS and Cervisia (GUI front end to the CVS) =
 +
'''TODO:''' Not all of the functionality described below applies to the elphel-community project, that should be done
 +
It is possible to use Cervisia (unfortunately Konqueror integration as of now is broken in KDE 4.X, so it should be run as a standalone program).
 +
<!--  - there are scripts for the elphel project (official) that do it for both 7.1.x and 8.0.x branches. -->
 +
After you install the Elphel software using ./install_elphel (either from the source archive or the CVS, manually or using the script) you may get to the top working directory ( by default it is called "elphel353" and has subdirectories starting with "apps") and run
 +
make update
 +
If you run it for the first time it will create CVS-related directories and files (all directories are called 'CVS'). If you did that for anonymous user (read only access) and later want to upgrade to developer (read/write) access you'll be able to upgrade it as described [[Elphel_on_SourceForge#Setting_up_developer_CVS_access_to_elphel.2Felphel-community_projects_at_Sourceforge|below]]. After "make update" you may just open the elphel353 directory in the Cervisia and enjoy using CVS without the need to remember the command line options fro the cvs command. The only configuration setting you'll likely want to change is "update recursively" checkbox in the "Settings". Then if you right-click the top elphel353 directory and select "update" it will update all the project files, not just the ones in that top directory.
 +
 +
= Setting up developer CVS access to elphel/elphel-community projects at Sourceforge =
 +
* Get developer status from one of the project admins (elphel or elphel-community), ''your_sf_username'' below is your Sourceforge user name
 +
* Create SSH key for you computer (with empty pass phrase ) and post it at sourceforge (posting is on you personal page, not on the project page)
 +
ssh-keygen -t dsa -C " your_sf_username@elphel.cvs.sourceforge.net"
 +
or
 +
ssh-keygen -t dsa -C " your_sf_username@elphelcommunity.cvs.sourceforge.net"
 +
Agree with defaults, use empty passphrase
 +
You will get
 +
Your public key has been saved in (your home directory)/.ssh/id_dsa.pub.
 +
Copy the long line related to this host, something like
 +
ssh-dss AAAAB... (clipped) ...Gvs your_sf_username@elphel.cvs.sourceforge.net
 +
to the copy buffer.
 +
Login to Sourceforge, go to your account (link "Account" on the top-right in the browser page) and scroll down until you find (number of keys may be different)
 +
Number of SSH Shared Keys on file: 0 [Edit SSH Keys for Shell/CVS]
 +
 +
* And then open [https://sourceforge.net/account/editsshkeys.php Edit SSH Keys for Shell/CVS] link (that direct link here should also work if you are already logged in to [https://sourceforge.net Sourceforge] ). Paste the "ssh-dss ... @elphel.cvs.sourceforge.net" line into the form (it will end with elphelcommunity.cvs.sourceforge.net if you are working with "elphel-community", not "elphel" repository), submit the changes.
 +
 +
* Next step - you need to connect manually to the repository using ssh:
 +
ssh your_sf_username@elphel.cvs.sourceforge.net
 +
or
 +
ssh your_sf_username@elphelcommunity.cvs.sourceforge.net
 +
 +
The server will throw you away, but before that you'll agree to connect to that server so the system (your computer, not the Sourceforge) will not try to ask the scripts or Cervisia about it later.
 +
Welcome to *.cvs.sourceforge.net
 +
This is a restricted Shell Account
 +
You cannot execute anything here.
 +
Connection to elphel.cvs.sourceforge.net closed.
 +
Sourceforge states that there could be delay between posting a key and it becoming active, but it always worked for me immediately. If you do not see "Welcome to *.cvs.sourceforge.net" - try it later or recheck steps above and your CVS permissions in elphel/elphel-community projects.
 +
 +
* If you got that "Welcome..." you are now ready to update CVS information (in those 'CVS' directories) to use developer access. First - remove the 'CVS' directory from the top directory of the project ('elphel353/CVS' by default), you do not need to remove CVS in subdirectories. Then re-run
 +
make update
 +
And use your_sf_username when prompted (no password will be asked, security will rely on that key generated and posted above)
 +
 +
* All done, now you can use CVS (and Cervisia) with commit, in Cervisia it is right-click on the file(s) and select "commit" in the context menu.
  
 
= How to contribute to Elphel CVS =
 
= How to contribute to Elphel CVS =
Line 15: Line 72:
  
  
The goal is to overcome the need to froze the official Elphel CVS at some times
+
The goal is to overcome the need to freeze the official Elphel CVS at some times
  
(to issue stable releases), without having to resolve unexpected third-parties import
+
(to issue stable releases), without having to resolve unexpected third party import
  
 
related conflicts first.
 
related conflicts first.
Line 27: Line 84:
  
 
possible, after validation.
 
possible, after validation.
 +
 +
  
  
Line 46: Line 105:
  
 
  cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity co -P elphel353-7.1-community
 
  cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity co -P elphel353-7.1-community
 
  
 
'''Update your local version:'''
 
'''Update your local version:'''
Line 52: Line 110:
 
  cd elphel353-7.1-community && cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity udpate
 
  cd elphel353-7.1-community && cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity udpate
  
'''Add files or directories to the repository:'''
+
 
  cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity add <file>
+
 
 +
=='''Add files or directories to the repository:'''==
 +
 
 +
See the [[CVS_commit | CVS commit checklist]].
 +
 
 +
 
 +
 
 +
  cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity add <file> -m "description"
  
 
'''Upload your local changes:'''
 
'''Upload your local changes:'''
  
 
  cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit -m "descritpion"
 
  cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit -m "descritpion"
 +
 +
 +
'''Related links:'''
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_16.html#SEC124  checkout--Checkout sources for editing]
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_16.html#SEC154  update--Bring work tree in sync with repository]
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_7.html#SEC69  add--Adding removing and renaming files and directories]
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_16.html#SEC132  diff--Show differences between revisions]
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_16.html#SEC127  commit--Check files into the repository]
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_10.html#SEC89  Conflicts examples]
 +
  
 
----
 
----
  
  
'''Technical details (for Elphel staff) about repository setup and update:'''
+
'''Technical details (for Elphel stuff) about repository setup and update:'''
  
  
Line 75: Line 156:
  
  
''Maybe the current directory name is not important and maybe it is not necessary
+
''The current directory name is not important and it is not necessary to rename''
  
''to rename the directory using the name of the branch, but i did not test it yet.''
+
''the directory using the name of the branch, but i did it to clarify (hope it does).''
  
  
Line 95: Line 176:
 
  cd elphel353-7.1-community
 
  cd elphel353-7.1-community
 
   
 
   
  cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity import -m "Import of  elphel353-7.1-cvs-$DATE" elphel353-7.10-community ELPHEL353_DIST ELPHEL353_7_1_CVS_$DATE
+
  cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity import -m "Import of  elphel353-7.1-cvs-$DATE" elphel353-7.1-community ELPHEL353_DIST ELPHEL353_7_1_CVS_$DATE
 
   
 
   
 
  cd ../..
 
  cd ../..
Line 119: Line 200:
 
  mkdir tmp.cvs.$$
 
  mkdir tmp.cvs.$$
 
  cd tmp.cvs.$$
 
  cd tmp.cvs.$$
  cp -a ../elphel353-7.1-community elphel353-7.1
+
  cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity co -P elphel353-7.1-community
  cd elphel353-7.1
+
  cd elphel353-7.1-community
 
    
 
    
 
  # then update from the official cvs with:
 
  # then update from the official cvs with:
 
  if ! cvs -z3 -d:pserver:anonymous@elphel.cvs.sourceforge.net:/cvsroot/elphel update ; then
 
  if ! cvs -z3 -d:pserver:anonymous@elphel.cvs.sourceforge.net:/cvsroot/elphel update ; then
 
   
 
   
  # resolve conflicts with the shell in case of conflicts
+
  # resolve conflicts manually
 
     exit   
 
     exit   
 
     /bin/sh
 
     /bin/sh
Line 131: Line 212:
 
  fi
 
  fi
 
   
 
   
  # and rename the directory to '-community' before commiting change
+
  # and commit changes
 
cd ..
 
mv elphel353-7.1 elphel353-7.1-community
 
cd elphel353-7.1-community
 
 
   
 
   
 
  cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit
 
  cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit
 
   
 
   
 
  cd ../..
 
  cd ../..
  rm tmp.cvs.$$
+
  rm tmp.cvs.$$ -rf
  
 
= External links about CVS =
 
= External links about CVS =
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_toc.html  CVS--Concurrent Versions System]
 +
  
 
[http://alexandria.wiki.sourceforge.net/CVS+-+Version+Control+for+Source+Code  CVS - Version Control for Source Code]
 
[http://alexandria.wiki.sourceforge.net/CVS+-+Version+Control+for+Source+Code  CVS - Version Control for Source Code]
Line 149: Line 229:
  
 
[http://alexandria.wiki.sourceforge.net/File+Release+System+-+Offering+Files+for+Download  File Release System - Offering Files for Download]
 
[http://alexandria.wiki.sourceforge.net/File+Release+System+-+Offering+Files+for+Download  File Release System - Offering Files for Download]
 
 
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_7.html#SEC69  Adding removing and renaming files and directories]
 
 
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_10.html#SEC89  Conflicts examples]
 

Revision as of 00:59, 29 July 2009

Releases description on Elphel's SourceForge project

The SourceForge official project - http://sourceforge.net/projects/elphel

Elphel NC353L 7.1 firmwares and sources releases

  • image353-x.x.x.x.tar.gz are binary firmware images ready to flash into NC353L-based models.
  • elphel353-x.x.x.x.tar.gz are firmware sources for particular release version.

Elphel rtp_receiver (Only sources are available)

  • 5MPx support contain :
    • common-1.2.16 a patched version of UCL Common Code Library used in both ElphelOgm & ElphelSrv
    • ElphelOgm-1.0 the last version of ElphelOgm rtp receiver.
    • Obsolete versions of ElphelSrv packages, please take the last one from upper level.
  • ElphelSrv-0.6

Elphel on SourceForge CVS tree description

Actual "stable" tree for NC353L

First of all "stable" have "" because it's CVS, developers may upload code temporary breaking it's compilation or usability.

Under development tree

Elhel CVS and Cervisia (GUI front end to the CVS)

TODO: Not all of the functionality described below applies to the elphel-community project, that should be done It is possible to use Cervisia (unfortunately Konqueror integration as of now is broken in KDE 4.X, so it should be run as a standalone program). After you install the Elphel software using ./install_elphel (either from the source archive or the CVS, manually or using the script) you may get to the top working directory ( by default it is called "elphel353" and has subdirectories starting with "apps") and run

make update

If you run it for the first time it will create CVS-related directories and files (all directories are called 'CVS'). If you did that for anonymous user (read only access) and later want to upgrade to developer (read/write) access you'll be able to upgrade it as described below. After "make update" you may just open the elphel353 directory in the Cervisia and enjoy using CVS without the need to remember the command line options fro the cvs command. The only configuration setting you'll likely want to change is "update recursively" checkbox in the "Settings". Then if you right-click the top elphel353 directory and select "update" it will update all the project files, not just the ones in that top directory.

Setting up developer CVS access to elphel/elphel-community projects at Sourceforge

  • Get developer status from one of the project admins (elphel or elphel-community), your_sf_username below is your Sourceforge user name
  • Create SSH key for you computer (with empty pass phrase ) and post it at sourceforge (posting is on you personal page, not on the project page)
ssh-keygen -t dsa -C " your_sf_username@elphel.cvs.sourceforge.net"

or

ssh-keygen -t dsa -C " your_sf_username@elphelcommunity.cvs.sourceforge.net"

Agree with defaults, use empty passphrase You will get

Your public key has been saved in (your home directory)/.ssh/id_dsa.pub.

Copy the long line related to this host, something like

ssh-dss AAAAB... (clipped) ...Gvs your_sf_username@elphel.cvs.sourceforge.net

to the copy buffer. Login to Sourceforge, go to your account (link "Account" on the top-right in the browser page) and scroll down until you find (number of keys may be different)

Number of SSH Shared Keys on file: 0 [Edit SSH Keys for Shell/CVS] 
  • And then open Edit SSH Keys for Shell/CVS link (that direct link here should also work if you are already logged in to Sourceforge ). Paste the "ssh-dss ... @elphel.cvs.sourceforge.net" line into the form (it will end with elphelcommunity.cvs.sourceforge.net if you are working with "elphel-community", not "elphel" repository), submit the changes.
  • Next step - you need to connect manually to the repository using ssh:
ssh your_sf_username@elphel.cvs.sourceforge.net

or

ssh your_sf_username@elphelcommunity.cvs.sourceforge.net

The server will throw you away, but before that you'll agree to connect to that server so the system (your computer, not the Sourceforge) will not try to ask the scripts or Cervisia about it later.

Welcome to *.cvs.sourceforge.net
This is a restricted Shell Account
You cannot execute anything here.
Connection to elphel.cvs.sourceforge.net closed.

Sourceforge states that there could be delay between posting a key and it becoming active, but it always worked for me immediately. If you do not see "Welcome to *.cvs.sourceforge.net" - try it later or recheck steps above and your CVS permissions in elphel/elphel-community projects.

  • If you got that "Welcome..." you are now ready to update CVS information (in those 'CVS' directories) to use developer access. First - remove the 'CVS' directory from the top directory of the project ('elphel353/CVS' by default), you do not need to remove CVS in subdirectories. Then re-run
make update

And use your_sf_username when prompted (no password will be asked, security will rely on that key generated and posted above)

  • All done, now you can use CVS (and Cervisia) with commit, in Cervisia it is right-click on the file(s) and select "commit" in the context menu.

How to contribute to Elphel CVS

A dedicated sourceforge project has been started, "elphel-community",

for which anyone can obtain CVS access through sourceforge.


The goal is to overcome the need to freeze the official Elphel CVS at some times

(to issue stable releases), without having to resolve unexpected third party import

related conflicts first.


Changes in the main elphel cvs branch will be incorporated in the community cvs branch,

and changes in the community version will be imported into the official cvs as much as

possible, after validation.



Because Sourceforge users have only limited Sourceforge CVS access, it is

not possible to recover cleanly from wrong CVS commands that create new directories.

You need to be sure twice before importing files or comitting changes, to avoid

blocking the cvs waiting for a sourceforge admin action.


TIP: You can always(?) check what's going to be made, running your cvs command with -d:pserver:...

instead of -d:ext:... so that write permission is rejected at the end of the command execution.


Checkout this branch:

cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity co -P elphel353-7.1-community

Update your local version:

cd elphel353-7.1-community && cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity udpate


Add files or directories to the repository:

See the CVS commit checklist.


cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity add <file> -m "description"

Upload your local changes:

cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit -m "descritpion"


Related links:

checkout--Checkout sources for editing

update--Bring work tree in sync with repository

add--Adding removing and renaming files and directories

diff--Show differences between revisions

commit--Check files into the repository

Conflicts examples




Technical details (for Elphel stuff) about repository setup and update:


The elphel-community cvs is copied from the elphel cvs with the following script

(assuming there is no more than one copy per day, else add the time in $DATE)


Note: Maybe the same script can be used to update the elphel-community CVS,

and the same procedure with the offical CVS, but it is untested.


The current directory name is not important and it is not necessary to rename

the directory using the name of the branch, but i did it to clarify (hope it does).


#!/bin/sh -e

DATE=`date +%Y%m%d`

USERNAME=$1
[ -z "$USERNAME" ] && USERNAME=$USER

rm tmp.cvs.* -rf 2>/dev/null || true
mkdir tmp.cvs.$$
cd tmp.cvs.$$

cvs -z3 -d:pserver:anonymous@elphel.cvs.sourceforge.net:/cvsroot/elphel co -P elphel353-7.1
mv elphel353-7.1 elphel353-7.1-community
cd elphel353-7.1-community

cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity import -m "Import of  elphel353-7.1-cvs-$DATE" elphel353-7.1-community ELPHEL353_DIST ELPHEL353_7_1_CVS_$DATE

cd ../..
rm tmp.cvs.$$ -rf


Related links:

Tracking third-party sources

Importing for the first time

Updating with the import command



Other possibility for updating the elphel-community cvs with the elphel cvs

# (Untested procedure)
# For updating elphel-community, maybe we can also/must instead copy the community directory

mkdir tmp.cvs.$$
cd tmp.cvs.$$
cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity co -P elphel353-7.1-community
cd elphel353-7.1-community
 
# then update from the official cvs with:
if ! cvs -z3 -d:pserver:anonymous@elphel.cvs.sourceforge.net:/cvsroot/elphel update ; then

# resolve conflicts manually
   exit   
   /bin/sh

fi

# and commit changes

cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit

cd ../..
rm tmp.cvs.$$ -rf

External links about CVS

CVS--Concurrent Versions System


CVS - Version Control for Source Code

Recommended User Software Configuration

File Release System - Offering Files for Download