Difference between revisions of "Live GIS Build"

From OSGeo
Jump to navigation Jump to search
m (Modified Lubuntu OS version (18.04 => 22.04) and architecture (i386 => amd64))
 
(268 intermediate revisions by 10 users not shown)
Line 1: Line 1:
=About=
+
= Getting started =
  
[http://gisvm.com/ GISVM] is an Xubuntu based Virtual Machine which has been installed with a suite of the best Open Source Geospatial software. It is also used to build [http://www.arramagong.com/Arramagong.html Arramagong], the Linux based Live DVD.
+
The first thing you will have to do is check-out the latest build scripts using either one of these two Git servers:
 +
git clone <nowiki>https://git.osgeo.org/gitea/osgeolive/OSGeoLive.git</nowiki>
  
=How to add your project or data to GISVM in 10 minutes=
+
git clone <nowiki>https://github.com/OSGeo/OSGeoLive.git</nowiki>
  
All that's required to add your favorite package into GISVM is to:
+
* see [[Live_GIS_Disc#Git_migration|here]] for more details.
  
* write a shell script which installs and configures your stable package into the current GISVM virtual machine (which will usually be the same as installing on Xubuntu or Ubuntu).
+
=How to add your project to OSGeo Live=
  
* add the script to subversion, in https://svn.osgeo.org/osgeo/livedvd/gisvm/trunk/bin/
+
* [[Live_GIS_Add_Project|Instructions for adding new projects]]
: If you do not have write permission there feel free to send the script to the [[Live_GIS_Disc#Communication|OSGeo live-demo mailing list]] ''as an attachment'' and we'll see that it makes it in.
 
  
* Notify the GISVM team to test your script, and reference your script from ''main.sh''.
+
= Creating a fresh Virtual Machine to use as a build host (Optional) =
 +
Refer to: [[Live_GIS_Virtual_Machine]].
  
The script may be as simple as:
+
= Build the Live DVD ISO image =
  
  
''install_mapserver.sh''
+
== Build ISO ==
  
  #!/bin/sh
+
This section describes the new method for building OSGeoLive as described in [https://help.ubuntu.com/community/LiveCDCustomization official ubuntu wiki]. This section is self-contained and there is no need to perform any of the procedures described above.
  # Copyright (c) 2009 The Open Source Geospatial Foundation.
+
 
# Licensed under the GNU LGPL.
+
All you need is a running Ubuntu/Xubuntu/Kubuntu/Lubuntu installation (even within a virtual machine as long as it has ~20GB free disk space). All needed to be done are the following steps under a "user" account:
  #
+
 
  # About:
+
* Bootstrap the host operating system. If you use the system to build more than once, then this must be done only for the first build
  # =====
+
host$ cd /tmp
  # This script will install mapserver
+
host$ wget https://github.com/OSGeo/OSGeoLive/raw/master/bin/bootstrap.sh
  #
+
host$ chmod a+x bootstrap.sh
  # Running:
+
host$ sudo ./bootstrap.sh
  # =======
+
This will install Git and the install scripts, and create a link to them from your home directory.
  # sudo ./install_mapserver.sh
+
 
 +
* Set the Version Number and Changes
 +
  Update https://github.com/OSGeo/OSGeoLive/blob/master/VERSION.txt with the current version number.
 +
 
 +
  Update https://github.com/OSGeo/OSGeoLive/blob/master/CHANGES.txt with changes since the last release.
 +
This list can be a summary of the [https://github.com/OSGeo/OSGeoLive/commits/master revision log] between releases
 +
Commit the changes to Git through a Pull Request right before a release build.
 +
 
 +
* Execute the build script:
 +
  host$ cd ~/gisvm/bin
 +
host$ sudo ./build_chroot.sh amd64 release master OSGeo 2>&1 | tee /var/log/osgeolive/chroot-build.log
 +
 
 +
* Compress the logs:
 +
host$ cd ~/livecdtmp
 +
host$ tar czf version-log.tar.gz -C /var/log osgeolive
 +
 
 +
* After the completion of the above script the new iso file is located in ~/livecdtmp along with the build logs. In case you wish to rerun the build process, do not remove or move the lubuntu official iso located in this folder to skip downloading it again.
 +
 
 +
* It is required to reboot your host machine after build is completed
 +
 
 +
* Once the ISO is complete copy it out to a server (a local server is fastest)
 +
  scp ~/livecdtmp/osgeolive-mini-8.0.iso user@server.org:destination/path/
 +
scp ~/livecdtmp/osgeolive-mini-8.0-log.tar.gz user@server.org:destination/path/
 +
 
 +
* And/OR wget or scp the file to the upload.osgeo.org server (Note wget is much faster if you have a good webserver to host from)
 +
 
 +
=== Build Full ISO from Mini ISO ===
 +
 
 +
Any mini iso file resulting from the procedure below can be turned into full iso, which is identical but adds the Windows and Mac software installers. Note that the resulting file may be bigger than a DVD. In that case the list of included applications in the load_mac_installers.sh need to be edited to exclude additional applications.
 +
 
 +
The standard current rules used to pick applications:
 +
* Desktop Applications
 +
* OSGeo projects and Incubated projects
 +
 
 +
sudo ./build_full_iso.sh /full/path/to/osgeo-live-mini-8.0.iso 2>&1 | tee ~/build_full_iso.log
 +
 
 +
== How to do development / debugging with the current build method ==
 +
 
 +
We have created a debug build process so that projects can now easily create their own iso, including parts of the OSGeoLive (eg only one project) in order to test if the installer scripts work well under this new build method.
 +
Here are the steps to debug/test your application:
 +
 
 +
===One time steps===
 +
 
 +
You will need to create a pure Lubuntu Virtual Machine setup:
 +
 
 +
* Download lubuntu-22.04-desktop-amd64.iso from [http://cdimage.ubuntu.com/lubuntu/releases/22.04/release/lubuntu-22.04-desktop-amd64.iso lubuntu web site].
 +
* Download and install VirtualBox.
 +
* Create a fresh VM installation of Lubuntu. You will need to create a virtual disk drive with at least 25 GB of space and allocate 768MB of RAM to the VM. During installation set the username to "user" and hostname to "osgeolive". DO NOT install system updates during lubuntu installation or after the installation is done. At this moment we work with the default kernel included in lubuntu.
 +
* After the VM is done, login as "user" and open a terminal.
 +
* Bootstrap the VM:
 +
  osgeolive$ cd /tmp
 +
  osgeolive$ wget https://github.com/OSGeo/OSGeoLive/raw/master/bin/bootstrap.sh
 +
  osgeolive$ chmod a+x bootstrap.sh
 +
osgeolive$ sudo ./bootstrap.sh
 +
 
 +
This will install Git, the install scripts, and create a link to them from your home directory.
 +
 
 +
===Steps to create the build (repeat as much as needed)===
 +
 
 +
* Make changes to your project's installation script and commit to Git.
 +
 
 +
* Update the git code:
 +
osgeolive$ cd ~/gisvm
 +
  osgeolive$ git pull origin master
 +
 
 +
* Open file inchroot.sh with an editor and comment out all scripts you do not need for your test.
 +
  osgeolive$ cd ~/gisvm/bin
 +
  osgeolive$ vi inchroot.sh
 +
 
 +
* Always leave un-commented the following scripts: setup.sh, install_services.sh, install_mysql.sh, install_java.sh, install_apache2.sh, install_tomcat6.sh, install_desktop.sh and setdown.sh.
 +
 
 +
* Save your changes and execute the build:
 +
  osgeolive$ cd ~/gisvm/bin
 +
osgeolive$ sudo ./build_chroot.sh amd64 2>&1 | tee /var/log/osgeolive/chroot-build.log
 +
 
 +
* After a while the iso will be created in ~livecdtmp/
 +
 
 +
* Do not delete the file ~/livecdtmp/lubuntu-22.04-desktop-amd64.iso as it will be needed for next build (saves time not to download again)
 +
 
 +
* Logs are created at /var/log/osgeolive/chroot-build.log
 +
 
 +
* Copy the iso and test
 +
 
 +
= Build the Live DVD VM image =
 +
 
 +
== Create the VM ==
 +
 
 +
The OSGeoLive Virtual Machine creation process is now exactly similar to a plain Lubuntu VM installation.
 +
Use the mini iso file that was created from the previous chapter.
 +
Instructions can be found [[Live_GIS_Virtual_Machine]]
 +
 
 +
== Package the VM ==
 +
 
 +
From within the VM, fill empty space with zeros in order to be able to shrink the virtual disk files:
 +
 
 +
  osgeolive$ sudo ~/gisvm/bin/zerofill.sh
 +
 
 +
Shrink the virtual machine:
 +
 
 +
host$ VBoxManage modifyhd osgeolive.vdi --compact
 +
 
 +
Convert to vmdk format (more widely compatible):
 
   
 
   
  apt-get install cgi-mapserver
+
  host$ VBoxManage clonehd osgeolive.vdi osgeolive-14.0-amd64.vmdk --format VMDK
 +
OR with a recent version of QEMU
 +
host$ qemu-img convert -f vdi -o compat6 -O vmdk osgeolive.vdi osgeolive-14.0-amd64.vmdk
 +
 
 +
Zip the image up:
 +
 
 +
host$ 7z a -mx=9 osgeolive-14.0-amd64.vmdk.7z osgeolive-14.0-amd64.vmdk
 +
 
 +
Create the md5sum checksums, so which can be used to confirm that the images have been downloaded correctly:
 +
host$ md5sum *.7z*
 +
 
 +
= Upload the Release =
 +
 
 +
== Upload to sourceforge ==
 +
As of 6.0 the official releases are hosted on sourceforge. To upload you need a sourceforge account and permissions to the osgeo-live project upload.
 +
 
 +
rsync -e ssh osgeolive-14.0-amd64.iso username,osgeo-live@frs.sourceforge.net:/home/pfs/project/o/os/osgeo-live/14.0/
  
= Build Drivers =
+
== Upload to the OSGeo Server ==
== Which version? ==
 
The criteria used to select applications for GISVM is as follows:
 
  
# Priority goes to Ubuntu packaged software first, then Debian packaged software! This facilitates easy and reliable maintenance and update. Users will benefit from it. Programmers are encouraged to move their software into [http://wiki.debian.org/DebianGis DebianGIS] or [https://wiki.ubuntu.com/UbuntuGIS UbuntuGIS] repositories.
+
host$ scp -pr osgeolive-gisvm-2.0-alpha5 username@upload.osgeo.org:/osgeo/download/livedvd/
# Stable, always! GISVM users are mainly starters. So they obviously are better with stable software. They have enough problems already and will gladly be happier without software bugs.
 
  
For people who want the latest version, they can create an alternative upgrade script.
+
Update the index.html file at: https://svn.osgeo.org/osgeo/livedvd/gisvm/trunk/download/index.html
  
== Low Memory ==
+
Check the result at: http://download.osgeo.org/livedvd
Both Virtual Machines, and a LiveDVD images are likely to be constrained by limited memory. So to reduce memory usage. Disk image size is not of major concern, as we can just distribute less data.
 
  
The following principles should be followed.
+
== Creating a torrent file ==
# Do not start applications upon power up. (Ie, don't start deamons, allow users to start them instead).
+
'''Ibiblio has offered torrent hosting, this section needs to include who to contact/how to setup'''
# Set up examples which, by default, don't depend on other applications. Less applications open, means less memory. Ie, Have GeoServer access a shapefile instead of PostGIS.
+
Several tools exist for creating torrents. Below are the key settings you need.
# Try to avoid scenarios which write data to disk, as disk space in the Live DVD is stored in RAM, and is not cleared afterward.
 
  
= Directory Structure =
+
Deluge with the torrent creator plugin has been tested.
 +
* Make sure you have a copy of the file you want to create a torrent for. Mounted remote drives may work.
 +
* Web Seed - URL to a web server that hosts the file, adds speed to the torrents especially at the start. (Most clients implement this now)
 +
* Tracker - There are 2 open and free trackers that have been tested, use one or the other as most clients do not handle multiple trackers yet.
 +
http://tracker.openbittorrent.com/announce
 +
udp://tracker.openbittorrent.com:80/announce
 +
OR
 +
http://tracker.publicbt.com:80/announce
 +
udp://tracker.publicbt.com:80/announce
 +
* Upload the .torrent file of your iso file for others to grab
 +
* Start the torrent on your machine or dedicated seeder, so that others have somewhere to start.
 +
* There is a possibility of seeding from osgeo machines but a Quality of Service (QoS) system would need to be in place to ensure it does not impact other services.
  
# Temporary files (e.g., downloaded archives) go into /tmp. Please create a separate folder for your project.
+
= SVN branches and tags =
# application are usually installed into /usr/lib
+
 
# things that get executed by the user such as startup scripts or links to them should go into /usr/bin
+
=== Naming ===
# startup/shutdown scripts for services (e.g., postgres, apache, tomcat) are stored in /etc/init.d
+
 
# sample data and documentation goes into /usr/local/share
+
* main development happens in "<tt>trunk</tt>" (aka HEAD)
# config files are stored in /etc
+
* a branch is split off before release time. Bug fixes (only) happen in it and updates like version 2.1 are tagged from it.
# user specific config files or working directories can go into /home/user. However, it will be appreciated if you can keep the amount of things in the user's home folder as small as possible. Symlinks into /usr/local can be useful here.
+
: its name might be like "<tt>arramagong_2</tt>"
 +
* a tag is a snapshot of the svn at some point in time, aka a release name. It does not make sense to checkin fixes to one. They should ideally be set as read-only after creation to prevent this.
 +
: its name might be like "<tt>release_20090927_arramagong_2_0</tt>"
 +
 
 +
=== Creating ===
 +
 
 +
cd livedvd/gisvm/
 +
 +
svn copy trunk branches/arramagong_2
 +
svn commit branches/arramagong_2 -m "Splitting off branch for 2.x"
 +
 +
cd branches/arramagong_2/bin/
 +
# something like this, maybe need a for loop or xargs:
 +
sed -e 's+gisvm/trunk+gisvm/branches/arramagong_2+g' *.sh | less  # check
 +
sed -i -e 's+gisvm/trunk+gisvm/branches/arramagong_2+g' *.sh      # execute
 +
cd -
 +
 
 +
svn copy branches/arramagong_2 tags/release_20090927_arramagong_2_0_3
 +
svn commit tags/release_20090927_arramagong_2_0_3 -m "tag release 2.0.3"
 +
 
 +
=== Merging ===
 +
 
 +
To merge a change from <tt>trunk</tt> into a release branch use "<tt>svn&nbsp;merge</tt>", as follows: (in this example r2131 from trunk)
 +
 
 +
svn up branches/arramagong_2/
 +
cd branches/arramagong_2/
 +
 +
svn merge -c 2131 <nowiki>https://svn.osgeo.org/osgeo/livedvd/gisvm/trunk</nowiki>
 +
svn diff
 +
svn commit -m "bugfix: bikeshed should be orange! (merge from trunk r2131)"
 +
 
 +
If you do this a lot you might make a little shell script. Here's one called svn_merge_livefromtrunk.sh:
 +
#!/bin/sh
 +
# Usage: svn_merge_livefromtrunk <rev number>
 +
svn merge -c $1 <nowiki>https://svn.osgeo.org/osgeo/livedvd/gisvm/trunk</nowiki>
 +
 
 +
=== See also ===
 +
 
 +
* Many good hints can be found in the [https://trac.osgeo.org/grass/wiki/HowToSVN GRASS SVN-help wiki page].
  
 
[[Category: Live-demo]]
 
[[Category: Live-demo]]
 +
 +
 +
= Staging the new release =
 +
 +
== Website ==
 +
Log in to live.osgeo.org.
 +
cd /osgeo/osgeolive
 +
mkdir ''<versionnumber>''
 +
 +
From another machine (ususally adhoc) go to the root of the docs and do
 +
scp -r /osgeo/livedvd/www/docs/* live.osgeo.org:/osgeo/osgeolive/''<versionumber>''/
 +
 +
Once done check that it's all good:
 +
<nowiki>http://live.osgeo.org/archive/</nowiki>''versionnumber''
 +
 +
Assuming docs are ok, then update the current symlink:
 +
chmod -R g+w ''<versionnumber>''
 +
rm current
 +
ln -s ''<versionnumber>'' current
 +
 +
== Download mirror ==
 +
 +
Upload files to https://sourceforge.net/projects/osgeo-live/files/
 +
 +
Add a new folder for the release, go into it, then scp the file to SourceForge.
 +
* See  https://sourceforge.net/p/forge/documentation/Release%20Files%20for%20Download/#scp
 +
 +
Click the box to stage the files for 3 days to give time for the mirrors to populate.
 +
 +
Once the files are ready (no longer say "Pending...") and the download links and redirects from download.osgeo.org are tested & working, set the default download on the SourceForge site to either the full or mini ISO by clicking the "i" information button next to the file and "select all" for all platform types, then click the Save button.

Latest revision as of 09:02, 26 June 2022

Getting started

The first thing you will have to do is check-out the latest build scripts using either one of these two Git servers:

git clone https://git.osgeo.org/gitea/osgeolive/OSGeoLive.git
git clone https://github.com/OSGeo/OSGeoLive.git
  • see here for more details.

How to add your project to OSGeo Live

Creating a fresh Virtual Machine to use as a build host (Optional)

Refer to: Live_GIS_Virtual_Machine.

Build the Live DVD ISO image

Build ISO

This section describes the new method for building OSGeoLive as described in official ubuntu wiki. This section is self-contained and there is no need to perform any of the procedures described above.

All you need is a running Ubuntu/Xubuntu/Kubuntu/Lubuntu installation (even within a virtual machine as long as it has ~20GB free disk space). All needed to be done are the following steps under a "user" account:

  • Bootstrap the host operating system. If you use the system to build more than once, then this must be done only for the first build
host$ cd /tmp
host$ wget https://github.com/OSGeo/OSGeoLive/raw/master/bin/bootstrap.sh
host$ chmod a+x bootstrap.sh
host$ sudo ./bootstrap.sh

This will install Git and the install scripts, and create a link to them from your home directory.

  • Set the Version Number and Changes
 Update https://github.com/OSGeo/OSGeoLive/blob/master/VERSION.txt with the current version number.
 Update https://github.com/OSGeo/OSGeoLive/blob/master/CHANGES.txt with changes since the last release.

This list can be a summary of the revision log between releases Commit the changes to Git through a Pull Request right before a release build.

  • Execute the build script:
host$ cd ~/gisvm/bin
host$ sudo ./build_chroot.sh amd64 release master OSGeo 2>&1 | tee /var/log/osgeolive/chroot-build.log
  • Compress the logs:
host$ cd ~/livecdtmp
host$ tar czf version-log.tar.gz -C /var/log osgeolive
  • After the completion of the above script the new iso file is located in ~/livecdtmp along with the build logs. In case you wish to rerun the build process, do not remove or move the lubuntu official iso located in this folder to skip downloading it again.
  • It is required to reboot your host machine after build is completed
  • Once the ISO is complete copy it out to a server (a local server is fastest)
scp ~/livecdtmp/osgeolive-mini-8.0.iso user@server.org:destination/path/
scp ~/livecdtmp/osgeolive-mini-8.0-log.tar.gz user@server.org:destination/path/
  • And/OR wget or scp the file to the upload.osgeo.org server (Note wget is much faster if you have a good webserver to host from)

Build Full ISO from Mini ISO

Any mini iso file resulting from the procedure below can be turned into full iso, which is identical but adds the Windows and Mac software installers. Note that the resulting file may be bigger than a DVD. In that case the list of included applications in the load_mac_installers.sh need to be edited to exclude additional applications.

The standard current rules used to pick applications:

  • Desktop Applications
  • OSGeo projects and Incubated projects
sudo ./build_full_iso.sh /full/path/to/osgeo-live-mini-8.0.iso 2>&1 | tee ~/build_full_iso.log

How to do development / debugging with the current build method

We have created a debug build process so that projects can now easily create their own iso, including parts of the OSGeoLive (eg only one project) in order to test if the installer scripts work well under this new build method. Here are the steps to debug/test your application:

One time steps

You will need to create a pure Lubuntu Virtual Machine setup:

  • Download lubuntu-22.04-desktop-amd64.iso from lubuntu web site.
  • Download and install VirtualBox.
  • Create a fresh VM installation of Lubuntu. You will need to create a virtual disk drive with at least 25 GB of space and allocate 768MB of RAM to the VM. During installation set the username to "user" and hostname to "osgeolive". DO NOT install system updates during lubuntu installation or after the installation is done. At this moment we work with the default kernel included in lubuntu.
  • After the VM is done, login as "user" and open a terminal.
  • Bootstrap the VM:
osgeolive$ cd /tmp
osgeolive$ wget https://github.com/OSGeo/OSGeoLive/raw/master/bin/bootstrap.sh
osgeolive$ chmod a+x bootstrap.sh
osgeolive$ sudo ./bootstrap.sh

This will install Git, the install scripts, and create a link to them from your home directory.

Steps to create the build (repeat as much as needed)

  • Make changes to your project's installation script and commit to Git.
  • Update the git code:
osgeolive$ cd ~/gisvm
osgeolive$ git pull origin master
  • Open file inchroot.sh with an editor and comment out all scripts you do not need for your test.
osgeolive$ cd ~/gisvm/bin
osgeolive$ vi inchroot.sh
  • Always leave un-commented the following scripts: setup.sh, install_services.sh, install_mysql.sh, install_java.sh, install_apache2.sh, install_tomcat6.sh, install_desktop.sh and setdown.sh.
  • Save your changes and execute the build:
osgeolive$ cd ~/gisvm/bin
osgeolive$ sudo ./build_chroot.sh amd64 2>&1 | tee /var/log/osgeolive/chroot-build.log
  • After a while the iso will be created in ~livecdtmp/
  • Do not delete the file ~/livecdtmp/lubuntu-22.04-desktop-amd64.iso as it will be needed for next build (saves time not to download again)
  • Logs are created at /var/log/osgeolive/chroot-build.log
  • Copy the iso and test

Build the Live DVD VM image

Create the VM

The OSGeoLive Virtual Machine creation process is now exactly similar to a plain Lubuntu VM installation. Use the mini iso file that was created from the previous chapter. Instructions can be found Live_GIS_Virtual_Machine

Package the VM

From within the VM, fill empty space with zeros in order to be able to shrink the virtual disk files:

osgeolive$ sudo ~/gisvm/bin/zerofill.sh

Shrink the virtual machine:

host$ VBoxManage modifyhd osgeolive.vdi --compact

Convert to vmdk format (more widely compatible):

host$ VBoxManage clonehd osgeolive.vdi osgeolive-14.0-amd64.vmdk --format VMDK
OR with a recent version of QEMU
host$ qemu-img convert -f vdi -o compat6 -O vmdk osgeolive.vdi osgeolive-14.0-amd64.vmdk

Zip the image up:

host$ 7z a -mx=9 osgeolive-14.0-amd64.vmdk.7z osgeolive-14.0-amd64.vmdk

Create the md5sum checksums, so which can be used to confirm that the images have been downloaded correctly:

host$ md5sum *.7z*

Upload the Release

Upload to sourceforge

As of 6.0 the official releases are hosted on sourceforge. To upload you need a sourceforge account and permissions to the osgeo-live project upload.

rsync -e ssh osgeolive-14.0-amd64.iso username,osgeo-live@frs.sourceforge.net:/home/pfs/project/o/os/osgeo-live/14.0/

Upload to the OSGeo Server

host$ scp -pr osgeolive-gisvm-2.0-alpha5 username@upload.osgeo.org:/osgeo/download/livedvd/

Update the index.html file at: https://svn.osgeo.org/osgeo/livedvd/gisvm/trunk/download/index.html

Check the result at: http://download.osgeo.org/livedvd

Creating a torrent file

Ibiblio has offered torrent hosting, this section needs to include who to contact/how to setup Several tools exist for creating torrents. Below are the key settings you need.

Deluge with the torrent creator plugin has been tested.

  • Make sure you have a copy of the file you want to create a torrent for. Mounted remote drives may work.
  • Web Seed - URL to a web server that hosts the file, adds speed to the torrents especially at the start. (Most clients implement this now)
  • Tracker - There are 2 open and free trackers that have been tested, use one or the other as most clients do not handle multiple trackers yet.
http://tracker.openbittorrent.com/announce
udp://tracker.openbittorrent.com:80/announce

OR

http://tracker.publicbt.com:80/announce
udp://tracker.publicbt.com:80/announce
  • Upload the .torrent file of your iso file for others to grab
  • Start the torrent on your machine or dedicated seeder, so that others have somewhere to start.
  • There is a possibility of seeding from osgeo machines but a Quality of Service (QoS) system would need to be in place to ensure it does not impact other services.

SVN branches and tags

Naming

  • main development happens in "trunk" (aka HEAD)
  • a branch is split off before release time. Bug fixes (only) happen in it and updates like version 2.1 are tagged from it.
its name might be like "arramagong_2"
  • a tag is a snapshot of the svn at some point in time, aka a release name. It does not make sense to checkin fixes to one. They should ideally be set as read-only after creation to prevent this.
its name might be like "release_20090927_arramagong_2_0"

Creating

cd livedvd/gisvm/

svn copy trunk branches/arramagong_2
svn commit branches/arramagong_2 -m "Splitting off branch for 2.x"

cd branches/arramagong_2/bin/
# something like this, maybe need a for loop or xargs:
sed -e 's+gisvm/trunk+gisvm/branches/arramagong_2+g' *.sh | less   # check
sed -i -e 's+gisvm/trunk+gisvm/branches/arramagong_2+g' *.sh       # execute
cd -
 
svn copy branches/arramagong_2 tags/release_20090927_arramagong_2_0_3
svn commit tags/release_20090927_arramagong_2_0_3 -m "tag release 2.0.3"

Merging

To merge a change from trunk into a release branch use "svn merge", as follows: (in this example r2131 from trunk)

svn up branches/arramagong_2/
cd branches/arramagong_2/

svn merge -c 2131 https://svn.osgeo.org/osgeo/livedvd/gisvm/trunk
svn diff
svn commit -m "bugfix: bikeshed should be orange! (merge from trunk r2131)"

If you do this a lot you might make a little shell script. Here's one called svn_merge_livefromtrunk.sh:

#!/bin/sh
# Usage: svn_merge_livefromtrunk <rev number>
svn merge -c $1 https://svn.osgeo.org/osgeo/livedvd/gisvm/trunk

See also


Staging the new release

Website

Log in to live.osgeo.org.

cd /osgeo/osgeolive
mkdir <versionnumber>

From another machine (ususally adhoc) go to the root of the docs and do

scp -r /osgeo/livedvd/www/docs/* live.osgeo.org:/osgeo/osgeolive/<versionumber>/

Once done check that it's all good:

http://live.osgeo.org/archive/versionnumber

Assuming docs are ok, then update the current symlink:

chmod -R g+w <versionnumber>
rm current
ln -s <versionnumber> current

Download mirror

Upload files to https://sourceforge.net/projects/osgeo-live/files/

Add a new folder for the release, go into it, then scp the file to SourceForge.

Click the box to stage the files for 3 days to give time for the mirrors to populate.

Once the files are ready (no longer say "Pending...") and the download links and redirects from download.osgeo.org are tested & working, set the default download on the SourceForge site to either the full or mini ISO by clicking the "i" information button next to the file and "select all" for all platform types, then click the Save button.