Changes between Version 25 and Version 26 of WikiStart


Ignore:
Timestamp:
Nov 19, 2007, 1:19:43 PM (13 years ago)
Author:
Bruno Cornec
Comment:

begin subdivision in separate pages

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v25 v26  
    1616 * use AppConfig. A lot of information is managed under a configuration file format and AppConfig makes it trivial to handle them. BTW look at that [http://trac.project-builder.org/browser/devel/pb-doc/AppConfig%3A%3AFile.patch patch] as the versions of AppConfig from 1.63 and up to 1.66 at least have a bug for handling hashes correctly this fixes. Cf: http://rt.cpan.org/Ticket/Display.html?id=28766
    1717
    18 = Example of use on netperf (simple example) =
     18= Examples of Project-Builder usage =
    1919
    20 As an example of how easy (or not :-) Project-Builder is to use, I decide to write that tutorial as a gift for another project which deserves it, the [www.netperf.org NetPerf] project .
    21 
    22 You first have to create a .pbrc configuration file in your home directory, which will setup things globally:
    23 
    24 {{{
    25 $ cat > ~/.pbrc << EOF
    26 #
    27 # Root of the temp file used to store info on the project
    28 # Is also used to determine the root directory of the project
    29 # No default option allowed here as they need to be all different
    30 #
    31 pbrc netperf = $ENV{'HOME'}/netperf/src
    32 EOF
    33 }}}
    34 
    35 Should be obvious for the content. Note that the format is in general
    36 {{{
    37 pb-keyword project = value
    38 }}}
    39 which means that here I named my project for netperf for Project-Builder (I can choose what I want but need to be consistent everywhere).
    40 
    41 Then get the bits of the project you want to package. It could be using a SVN or CVS access if there is such a thing, or by downloading (at worse) the tar file of the project. Then extract that under a newly created directory that you referenced in your project configuration file:
    42 
    43 {{{
    44 $ cd /tmp
    45 $ wget ftp://ftp.netperf.org/netperf/netperf-2.4.4.tar.bz2
    46 $ mkdir -p $HOME/netperf/src
    47 $ cd $HOME/netperf/src
    48 $ umask 022
    49 $ tar xvfj /tmp/netperf-2.4.4.tar.bz2
    50 $ rm -f /tmp/netperf-2.4.4.tar.bz2
    51 }}}
    52 
    53 The netperf project is a nice project using a simple environment to build itself. It uses the GNU autoconf/autmake/litool mechanism, which makes it easy to package with pb.
    54 
    55 You will now need to get the latest and greatest project-builder software from our [ftp://ftp.project-builder.org ftp] repository. Of course we provide lots of packages for your distribution ;-) Or a tar.gz file if you prefer. Once available, you can use the newproj option of pb to create the infrastructure that is mandatory for pb. It is mandatory that there is a corespondance between the directory mentioned in $HOME/.pbrc and the -r option:
    56 
    57 {{{
    58 $ pb -p netperf -r `pwd` newproj
    59 Creating /users/bruno/netperf/src/pbconf directory
    60 
    61 Do not to forget to commit the pbconf directory in your CMS if needed
    62 After having renamed the pkg1 directory to your package's name
    63 
    64 Project: netperf
    65 Action: newproj
    66 }}}
    67 
    68 Explore then the pbconf directory to familiarize yourself with some of the config file. the next one we want to edit, is the main configuration file which will be used as the central piece of information for pb.
    69 
    70 Edit it and adapt it. After edition, here is the resulting file:
    71 {{{
    72 $ ls -R pbconf
    73 pbconf:
    74 netperf.pb  pbfilter  pkg1
    75 
    76 pbconf/pbfilter:
    77 all.pbf  deb.pbf  md.pbf  novell.pbf  rpm.pbf
    78 
    79 pbconf/pkg1:
    80 deb  pbfilter  rpm
    81 
    82 pbconf/pkg1/deb:
    83 changelog  compat  control  copyright  pkg1.dirs  pkg1.docs  rules
    84 
    85 pbconf/pkg1/pbfilter:
    86 
    87 pbconf/pkg1/rpm:
    88 pkg1.spec
    89 $
    90 $ vi pbconf/netperf.pb
    91 [Modifications here]
    92 $ cat pbconf/netperf.pb
    93 #
    94 # Project Builder configuration file
    95 # For project netperf
    96 #
    97 # $Id$
    98 #
    99 
    100 #
    101 # Which CMS system is used (Subversion, CVS or tar file content extracted)
    102 #
    103 #cms netperf = svn
    104 #cms netperf = cvs
    105 cms netperf = flat
    106 
    107 #
    108 # Packager label
    109 #
    110 packager netperf = "Bruno Cornec <bruno@project-builder.org>"
    111 #
    112 
    113 # For delivery to a machine by SSH (potentially the FTP server)
    114 # Needs hostname, account and directory
    115 #
    116 sshhost netperf = www.project-builder.org
    117 sshlogin netperf = bruno
    118 sshdir netperf = /mondo/ftp
    119 sshport netperf = 22
    120 
    121 #
    122 # For Virtual machines management
    123 # Naming convention to follow: distribution name (as per ProjectBuilder::Distribution)
    124 # followed by '_' and by release number
    125 # a .vmtype extension will be added to the resulting string
    126 # a QEMU rhel_3 here means that the VM will be named rhel_3.qemu
    127 #
    128 vmlist netperf = mandrake_10.1,mandrake_10.2,mandriva_2006.0,mandriva_2007.0,mandriva_2007.1,mandriva_2008.0,redhat_7.3,redhat_9,fedora_4,fedora_5,fedora_6,fedora_7,rhel_3,rhel_4,rhel_5,suse_10.0,suse_10.1,suse_10.2,suse_10.3,sles_9,sles_10,gentoo_nover,debian_3.1,debian_4.0,ubuntu_6.06,ubuntu_7.04,ubuntu_7.10
    129 
    130 #
    131 # Valid values for vmtype are
    132 # qemu, (vmware, xen, ... TBD)
    133 vmtype netperf = qemu
    134 
    135 # Hash for VM stuff on vmtype
    136 vmntp default = pool.ntp.org
    137 
    138 # We suppose we can commmunicate with the VM through SSH
    139 vmhost netperf = localhost
    140 vmlogin netperf = pb
    141 vmport netperf = 2225
    142 
    143 # Timeout to wait when VM is launched/stopped
    144 vmtmout default = 120
    145 
    146 # per VMs needed paramaters
    147 vmopt netperf = -m 384 -daemonize
    148 vmpath netperf = /home/qemu
    149 vmsize netperf = 5G
    150 
    151 #
    152 # Global version/tag for the project
    153 #
    154 projver netperf = 2.4.4
    155 projtag netperf = 1
    156 
    157 # Adapt to your needs:
    158 # Optional if you need to overwrite the global values above
    159 #
    160 #pkgver pkg1 = stable
    161 #pkgtag pkg1 = 3
    162 #pkgver nil
    163 #pkgtag nil
    164 
    165 # Hash of default package/package directory
    166 defpkgdir netperf = netperf-2.4.4
    167 
    168 # Hash of additional package/package directory
    169 #extpkgdir pkg1-doc = pkg1-docdir
    170 
    171 # Hash of valid version names
    172 version devel
    173 #version stable
    174 
    175 # List of files per pkg on which to apply filters
    176 # Files are mentioned relatively to pbroot/defpkgdir
    177 filteredfiles netperf = configure.ac
    178 #filteredfiles pkg1-doc = configure.in
    179 }}}
    180 I skip the parameters begining with vm and ssh for the moment. I inform pb that I will produce packages with a version-tag of 2.4.4-1, that no local package should have a different version than the project version (pkgver/pkgtag), that my default package will be netperf (pb will work on it by default all the time) and that no additional packages will be produced. In addition to standard version with numbers, pb will accept the version devel. And finally, I give to pb the name of all files (per package) that it will have to filter to produce the packages - more on that later on.
    181 Once this is done, you may already try to see if pb can make something useful for you. Check the result of:
    182 
    183 {{{
    184 $ pb -p netperf -r `pwd` cms2build
    185 Project: netperf
    186 Action: cms2build
    187 Packages: netperf
    188 
    189 Management of netperf 2.4.4-1 (rev flat)
    190 Exporting /users/bruno/netperf/src/netperf-2.4.4 from DIR to /users/bruno/netperf/delivery/netperf-2.4.4... OK
    191 Build files generated for
    192 No Build files found for mandriva-2006.0,sles-9,mandrake-10.2,mandriva-2007.0,rhel-3,mandriva-2007.1,redhat-9,ubuntu-6.06,suse-10.3,rhel-5,ubuntu-7.10,gentoo-nover,suse-10.2,mandrake-10.1,mandriva-2008.0,sles-10,fedora-6,suse-10.1,fedora-5,fedora-4,ubuntu-7.04,fedora-7,suse-10.0,debian-4.0,rhel-4,debian-3.1,redhat-7.3
    193 filter: no such variable
    194 Can't use an undefined value as a HASH reference at /usr/lib/perl5/vendor_perl/5.8.8/ProjectBuilder/Base.pm line 1077.
    195 }}}
    196 Ok we tried to make a build file from ou Configuration Management System (CMS) which didn't work completely as our structure is incomplete. However, pb already recognized the project name, action, package to build, type of CMS (flat), used our -r option to create the intermediate delivery directory where all the final files|packages will be created.
    197 
    198 So now, in order to be more useful, we need to create the structure for our package. Luckily, pb did most of the work for us, by creating a template pkg1 directory and files under pbconf. Rename them to netperf (name of our package) and explore and adapt its content:
    199 
    200 {{{
    201 $ find . -name pkg1'*'
    202 ./pbconf/pkg1
    203 ./pbconf/pkg1/rpm/pkg1.spec
    204 ./pbconf/pkg1/deb/pkg1.dirs
    205 ./pbconf/pkg1/deb/pkg1.docs
    206 $ mv ./pbconf/pkg1 ./pbconf/netperf
    207 $ mv ./pbconf/netperf/rpm/pkg1.spec ./pbconf/netperf/rpm/netperf.spec
    208 $ mv ./pbconf/netperf/deb/pkg1.dirs ./pbconf/netperf/deb/netperf.dirs
    209 $ mv ./pbconf/netperf/deb/pkg1.docs ./pbconf/netperf/deb/netperf.docs
    210 }}}
    211 
    212 Now this is done, it's time to look at those and adapt them. At the begining, we try to make RPM packages.
    213 {{{
    214 $ vi pbconf/netperf/rpm/netperf.spec
    215 [Modifications here]
    216 $ cat pbconf/netperf/rpm/netperf.spec
    217 #
    218 # $Id$
    219 #
    220 
    221 Summary:        The netperf tool is a benchmarking network tool
    222 Summary(fr):    netperf est un outil de benchmark réseau
    223 
    224 Name:           PBPKG
    225 Version:        PBVER
    226 Release:        PBTAGPBSUF
    227 License:        GPL
    228 Group:          PBGRP
    229 Url:            PBURL
    230 Source:         PBSRC
    231 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(id -u -n)
    232 
    233 %description
    234 PBDESC
    235 
    236 %description -l fr
    237 netperf est un outil de benchmark réseau
    238 
    239 %prep
    240 %setup -q
    241 
    242 %build
    243 ./configure
    244 make %{?_smp_mflags} VERSION=%{version}
    245 
    246 %install
    247 %{__rm} -rf $RPM_BUILD_ROOT
    248 make DESTDIR=$RPM_BUILD_ROOT install
    249 
    250 %clean
    251 %{__rm} -rf $RPM_BUILD_ROOT
    252 
    253 %files
    254 %defattr(-,root,root)
    255 %doc ChangeLog
    256 %doc INSTALL COPYING README AUTHORS NEWS
    257 
    258 %changelog
    259 PBLOG
    260 }}}
    261 
    262 That spec file looks normal except that it uses a lot of PBSOMETHING keywords. Those are Project-Builder macros that will be instantiate depending on the distribution during the cms2build step.
    263 
    264 So now that we have the base for our spec file, we need to look at those filters:
    265 
    266 {{{
    267 $ vi pbconf/pbfilter/all.pbf
    268 [Modifications here]
    269 $ cat pbconf/pbfilter/all.pbf
    270 #
    271 # $Id$
    272 #
    273 # Filter for all files
    274 #
    275 # PBSRC is replaced by the source package format
    276 filter PBSRC = ftp://ftp.netperf.org/netperf/%{name}-%{version}.tar.gz
    277 
    278 # PBVER is replaced by the version ($pbver in code)
    279 filter PBVER = $pbver
    280 
    281 # PBDATE is replaced by the date ($pbdate in code)
    282 filter PBDATE = $pbdate
    283 
    284 # PBLOG is replaced by the changelog if value is yes
    285 filter PBLOG = yes
    286 
    287 # PBTAG is replaced by the tag ($pbtag in code)
    288 filter PBTAG = $pbtag
    289 
    290 # PBREV is replaced by the revision ($pbrev in code)
    291 filter PBREV = $pbrev
    292 
    293 # PBPKG is replaced by the package name ($pbpkg in code)
    294 filter PBPKG = $pbpkg
    295 
    296 # PBPACKAGER is replaced by the packager name ($pbpackager in code)
    297 filter PBPACKAGER = $pbpackager
    298 
    299 # PBDESC contains the description of the package
    300 filter PBDESC = "netperf is a network benchmarking tool"
    301 
    302 # PBURL contains the URL of the Web site of the project
    303 filter PBURL = http://www.netperf.org
    304 }}}
    305 We can now try again to use pb to create our build file:
    306 {{{
    307 $ pb -p netperf -r `pwd` cms2build
    308 Project: netperf
    309 Action: cms2build
    310 Packages: netperf
    311 
    312 Management of netperf 2.4.4-1 (rev flat)
    313 Exporting /users/bruno/netperf/src/netperf-2.4.4 from DIR to /users/bruno/netperf/delivery/netperf-2.4.4... OK
    314 Build files generated for mandriva-2006.0,sles-9,mandrake-10.2,mandriva-2007.0,rhel-3,mandriva-2007.1,redhat-9,ubuntu-6.06,suse-10.3,rhel-5,ubuntu-7.10,suse-10.2,mandrake-10.1,mandriva-2008.0,sles-10,fedora-6,suse-10.1,fedora-5,fedora-4,ubuntu-7.04,fedora-7,suse-10.0,debian-4.0,rhel-4,debian-3.1,redhat-7.3
    315 No Build files found for gentoo-nover
    316 Files configure.ac have been filtered
    317 Creating netperf tar files compressed... OK
    318 Under /users/bruno/netperf/delivery/netperf-2.4.4.tar.gz
    319 }}}
    320 
    321 Much better. You have now your first useful result from pb :-) Congrats !
    322 Well wait ! It's not really useful because we started exactly from a tar file. Well it's not exactly the same tar file. This one adds Project-Builder support:
    323 {{{
    324 tar tvfz /users/bruno/netperf/delivery/netperf-2.4.4.tar.gz
    325 drwxr-x--- bruno/users       0 2007-11-16 00:57 netperf-2.4.4/
    326 -rw-r----- bruno/users      30 2007-10-16 20:00 netperf-2.4.4/inet_ntop.c
    327 -rwxr-x--- bruno/users   31743 2007-06-02 00:06 netperf-2.4.4/config.sub
    328 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/
    329 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/suse-10.0/
    330 -rw-r--r-- bruno/users     880 2007-11-16 00:57 netperf-2.4.4/pbconf/suse-10.0/netperf.spec
    331 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/rhel-5/
    332 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/rhel-5/netperf.spec
    333 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/fedora-4/
    334 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/fedora-4/netperf.spec
    335 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/suse-10.1/
    336 -rw-r--r-- bruno/users     880 2007-11-16 00:57 netperf-2.4.4/pbconf/suse-10.1/netperf.spec
    337 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/redhat-7.3/
    338 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/redhat-7.3/netperf.spec
    339 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/sles-9/
    340 -rw-r--r-- bruno/users     880 2007-11-16 00:57 netperf-2.4.4/pbconf/sles-9/netperf.spec
    341 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/mandriva-2006.0/
    342 -rw-r--r-- bruno/users     867 2007-11-16 00:57 netperf-2.4.4/pbconf/mandriva-2006.0/netperf.spec
    343 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/fedora-7/
    344 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/fedora-7/netperf.spec
    345 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/mandriva-2007.0/
    346 -rw-r--r-- bruno/users     867 2007-11-16 00:57 netperf-2.4.4/pbconf/mandriva-2007.0/netperf.spec
    347 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/mandriva-2008.0/
    348 -rw-r--r-- bruno/users     867 2007-11-16 00:57 netperf-2.4.4/pbconf/mandriva-2008.0/netperf.spec
    349 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/sles-10/
    350 -rw-r--r-- bruno/users     880 2007-11-16 00:57 netperf-2.4.4/pbconf/sles-10/netperf.spec
    351 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.04/
    352 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.04/changelog
    353 -rw-r--r-- bruno/users     431 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.04/control
    354 -rw-r--r-- bruno/users      36 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.04/netperf.docs
    355 -rw-r--r-- bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.04/netperf.dirs
    356 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.04/compat
    357 -rw-r--r-- bruno/users    3632 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.04/rules
    358 -rw-r--r-- bruno/users     994 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.04/copyright
    359 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-6.06/
    360 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-6.06/changelog
    361 -rw-r--r-- bruno/users     431 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-6.06/control
    362 -rw-r--r-- bruno/users      36 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-6.06/netperf.docs
    363 -rw-r--r-- bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-6.06/netperf.dirs
    364 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-6.06/compat
    365 -rw-r--r-- bruno/users    3632 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-6.06/rules
    366 -rw-r--r-- bruno/users     994 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-6.06/copyright
    367 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.10/
    368 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.10/changelog
    369 -rw-r--r-- bruno/users     431 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.10/control
    370 -rw-r--r-- bruno/users      36 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.10/netperf.docs
    371 -rw-r--r-- bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.10/netperf.dirs
    372 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.10/compat
    373 -rw-r--r-- bruno/users    3632 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.10/rules
    374 -rw-r--r-- bruno/users     994 2007-11-16 00:57 netperf-2.4.4/pbconf/ubuntu-7.10/copyright
    375 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/suse-10.3/
    376 -rw-r--r-- bruno/users     880 2007-11-16 00:57 netperf-2.4.4/pbconf/suse-10.3/netperf.spec
    377 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/rhel-3/
    378 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/rhel-3/netperf.spec
    379 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/mandriva-2007.1/
    380 -rw-r--r-- bruno/users     867 2007-11-16 00:57 netperf-2.4.4/pbconf/mandriva-2007.1/netperf.spec
    381 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-3.1/
    382 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-3.1/changelog
    383 -rw-r--r-- bruno/users     431 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-3.1/control
    384 -rw-r--r-- bruno/users      36 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-3.1/netperf.docs
    385 -rw-r--r-- bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-3.1/netperf.dirs
    386 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-3.1/compat
    387 -rw-r--r-- bruno/users    3632 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-3.1/rules
    388 -rw-r--r-- bruno/users     994 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-3.1/copyright
    389 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/fedora-5/
    390 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/fedora-5/netperf.spec
    391 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/fedora-6/
    392 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/fedora-6/netperf.spec
    393 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/mandrake-10.2/
    394 -rw-r--r-- bruno/users     867 2007-11-16 00:57 netperf-2.4.4/pbconf/mandrake-10.2/netperf.spec
    395 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/suse-10.2/
    396 -rw-r--r-- bruno/users     880 2007-11-16 00:57 netperf-2.4.4/pbconf/suse-10.2/netperf.spec
    397 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/redhat-9/
    398 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/redhat-9/netperf.spec
    399 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/rhel-4/
    400 -rw-r--r-- bruno/users     856 2007-11-16 00:57 netperf-2.4.4/pbconf/rhel-4/netperf.spec
    401 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/mandrake-10.1/
    402 -rw-r--r-- bruno/users     867 2007-11-16 00:57 netperf-2.4.4/pbconf/mandrake-10.1/netperf.spec
    403 drwxr-xr-x bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-4.0/
    404 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-4.0/changelog
    405 -rw-r--r-- bruno/users     431 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-4.0/control
    406 -rw-r--r-- bruno/users      36 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-4.0/netperf.docs
    407 -rw-r--r-- bruno/users       0 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-4.0/netperf.dirs
    408 -rw-r--r-- bruno/users       2 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-4.0/compat
    409 -rw-r--r-- bruno/users    3632 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-4.0/rules
    410 -rw-r--r-- bruno/users     994 2007-11-16 00:57 netperf-2.4.4/pbconf/debian-4.0/copyright
    411 -rw-r----- bruno/users    2382 2007-06-02 00:06 netperf-2.4.4/README.ovms
    412 -rwxr-x--- bruno/users    1988 2007-06-02 00:06 netperf-2.4.4/mkinstalldirs
    413 -rw-r----- bruno/users   14022 2007-06-05 03:08 netperf-2.4.4/acinclude.m4
    414 -rw-r----- bruno/users    4203 2007-06-14 18:51 netperf-2.4.4/README.windows
    415 -rw-r----- bruno/users    2100 2007-06-02 00:06 netperf-2.4.4/README
    416 -rw-r----- bruno/users    1048 2007-06-02 00:06 netperf-2.4.4/README.aix
    417 -rw-r----- bruno/users   45985 2007-10-17 18:55 netperf-2.4.4/aclocal.m4
    418 drwxr-x--- bruno/users       0 2007-10-17 23:42 netperf-2.4.4/doc/
    419 -rw-r----- bruno/users    1163 2007-06-02 00:06 netperf-2.4.4/doc/netserver.man
    420 [...]
    421 -rw-r----- bruno/users      27 2007-06-02 00:06 netperf-2.4.4/ChangeLog
    422 drwxr-x--- bruno/users       0 2007-10-17 23:42 netperf-2.4.4/src/
    423 -rw-r----- bruno/users    7777 2007-06-02 00:06 netperf-2.4.4/src/netperf.c
    424 [...]
    425 -rw-r----- bruno/users    4095 2007-08-08 22:30 netperf-2.4.4/src/netsh.h
    426 -rwxr-x--- bruno/users  290760 2007-10-17 18:55 netperf-2.4.4/configure
    427 -rw-r----- bruno/users     106 2007-06-02 00:06 netperf-2.4.4/Makefile.am
    428 -rw-r----- bruno/users   32819 2007-10-17 23:20 netperf-2.4.4/Release_Notes
    429 -rw-r----- bruno/users    9223 2007-10-17 23:42 netperf-2.4.4/config.h.in
    430 -rw-r----- bruno/users       0 2007-06-02 00:06 netperf-2.4.4/NEWS
    431 -rw-r----- bruno/users     258 2007-06-02 00:06 netperf-2.4.4/README.osx
    432 -rwxr-x--- bruno/users   13866 2007-06-02 00:06 netperf-2.4.4/depcomp
    433 -rw-r----- bruno/users    1260 2007-06-02 00:06 netperf-2.4.4/README.solaris
    434 -rwxr-x--- bruno/users    7122 2007-06-02 00:06 netperf-2.4.4/install-sh
    435 -rw-r----- bruno/users    1204 2007-06-02 00:06 netperf-2.4.4/netperf.spec.in
    436 -rwxr-x--- bruno/users   43499 2007-06-02 00:06 netperf-2.4.4/config.guess
    437 -rw-r----- bruno/users   14031 2007-11-16 00:57 netperf-2.4.4/configure.ac
    438 -rw-r----- bruno/users    2079 2007-06-02 00:06 netperf-2.4.4/COPYING
    439 -rwxr-x--- bruno/users   10266 2007-06-02 00:06 netperf-2.4.4/missing
    440 -rw-r----- bruno/users    6013 2007-10-15 19:41 netperf-2.4.4/AUTHORS
    441 -rw-r----- bruno/users    1772 2007-06-02 00:06 netperf-2.4.4/README.hpux
    442 -rw-r----- bruno/users   17464 2007-10-17 18:55 netperf-2.4.4/Makefile.in
    443 -rw-r----- bruno/users    9240 2007-06-02 00:06 netperf-2.4.4/INSTALL
    444 }}}
    445 As you can see a lot of directories and files have been created under pbconf. They correspond to all the required build files for all the distributions supported and will later be used to really create the packages.
    446 
    447 So now, we can try to go to the next step and build a package. So issue:
    448 {{{
    449 $ pb -p netperf -r `pwd` build2pkg
    450 Project: netperf
    451 Action: build2pkg
    452 Packages: netperf
    453 Source file: /users/bruno/netperf/delivery/netperf-2.4.4.tar.gz
    454 Working directory: /users/bruno/netperf/build
    455 Extracting build files... OK
    456 Building package with /users/bruno/netperf/build/SPECS/netperf.spec under /users/bruno/netperf/build... Executing(%prep): /bin/sh -e /users/bruno/netperf/build/tmp/rpm-tmp.93873
    457 + umask 022
    458 + cd /users/bruno/netperf/build/BUILD
    459 + '[' 1 -eq 1 ']'
    460 + '[' 1 -eq 1 ']'
    461 [... build execution continues ...]
    462 + '[' -f ./configure.in -o -f ./configure.ac ']'
    463 + CONFIGURE_XPATH='--x-includes=/usr/include --x-libraries=/usr/lib64'
    464 + ./configure x86_64-mandriva-linux-gnu --program-prefix= --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/lib64 --localstatedir=/var/lib --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --x-includes=/usr/include --x-libraries=/usr/lib64
    465 [... build execution continues ...]
    466 + make -j4
    467 cd . && /bin/sh /users/bruno/netperf/build/BUILD/netperf-2.4.4/missing --run aclocal-1.7
    468 /users/bruno/netperf/build/BUILD/netperf-2.4.4/missing: line 46: aclocal-1.7: command not found
    469 WARNING: `aclocal-1.7' is missing on your system.  You should only need it if
    470          you modified `acinclude.m4' or `configure.ac'.  You might want
    471          to install the `Automake' and `Perl' packages.  Grab them from
    472          any GNU archive site.
    473 cd . && \
    474           /bin/sh /users/bruno/netperf/build/BUILD/netperf-2.4.4/missing --run automake-1.7 --gnu  Makefile
    475 cd . && /bin/sh /users/bruno/netperf/build/BUILD/netperf-2.4.4/missing --run autoconf
    476 /users/bruno/netperf/build/BUILD/netperf-2.4.4/missing: line 46: automake-1.7: command not found
    477 WARNING: `automake-1.7' is missing on your system.  You should only need it if
    478          you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
    479          You might want to install the `Automake' and `Perl' packages.
    480          Grab them from any GNU archive site.
    481 /bin/sh ./config.status --recheck
    482 [... build execution continues ...]
    483 make[2]: Leaving directory `/users/bruno/netperf/build/BUILD/netperf-2.4.4'
    484 make[1]: Leaving directory `/users/bruno/netperf/build/BUILD/netperf-2.4.4'
    485 + exit 0
    486 Executing(%install): /bin/sh -e /users/bruno/netperf/build/tmp/rpm-tmp.48294
    487 + umask 022
    488 + cd /users/bruno/netperf/build/BUILD
    489 + cd netperf-2.4.4
    490 + '[' 1 -eq 1 ']'
    491 + /bin/rm -rf /users/bruno/netperf/build/tmp/netperf-2.4.4-1PBSUF-root-bruno
    492 + make DESTDIR=/users/bruno/netperf/build/tmp/netperf-2.4.4-1PBSUF-root-bruno install
    493 Making install in src
    494 [... build execution continues ...]
    495 Checking for unpackaged file(s): /usr/lib/rpm/check-files /users/bruno/netperf/build/tmp/netperf-2.4.4-1PBSUF-root-bruno
    496 error: Installed (but unpackaged) file(s) found:
    497    /usr/bin/netperf
    498    /usr/bin/netserver
    499    /usr/share/info/netperf.info.bz2
    500    /usr/share/man/man1/netperf.1.bz2
    501    /usr/share/man/man1/netserver.1.bz2
    502 
    503 
    504 RPM build errors:
    505     Installed (but unpackaged) file(s) found:
    506    /usr/bin/netperf
    507    /usr/bin/netserver
    508    /usr/share/info/netperf.info.bz2
    509    /usr/share/man/man1/netperf.1.bz2
    510    /usr/share/man/man1/netserver.1.bz2
    511 child (rpmbuild --define "packager Bruno Cornec <bruno@project-builder.org>" --define "_topdir /users/bruno/netperf/build" -ba /users/bruno/netperf/build/SPECS/netperf.spec) exited with value 1
    512 }}}
    513 So it seems we are not there yet ;-) But it's not too bad for just having renamed a couple of files and parameters in our conf files. Now we need to solve those issues and produce the package.
    514 
    515 The first problem we've met, is that the build process seems to need automake and autoconf. However, when build separately with the classical ./configure ; make it doesn't ask for it.
    516 
    517 Project-Builder provide a means when exporting the software to build a coherent automake/autoconf setup by the way of the pbinit script.
    518 
    519 Create now such a script for your project:
    520 {{{
    521 $ cat > pbconf/netperf/pbinit << EOF
    522 #!/bin/bash
    523 aclocal
    524 autoconf
    525 automake
    526 EOF
    527 $ chmod 755 pbconf/netperf/pbinit
    528 }}}
    529 Then it seems that the PBSUF macro isn't expanded correctly. Look for it using a Project-Builder tool:
    530 {{{
    531 $ pbg PBSUF
    532 ./pbconf/pbfilter/rpm.pbf:# PBSUF is replaced by the package name ($pbpkg in code)
    533 ./pbconf/pbfilter/rpm.pbf:#filter PBSUF = $pbsuf
    534 ./pbconf/netperf/rpm/netperf.spec:Release:        PBTAGPBSUF
    535 }}}
    536 So indeed that macro is used in our spec file, but is only declared for rpm types of build in the rpm filter file. However it's currently commented. So edit that file to validate it, as well as the other variables needed:
    537 {{{
    538 $ cat ./pbconf/pbfilter/rpm.pbf
    539 #
    540 # $Id$
    541 #
    542 # Filter for rpm build
    543 #
    544 
    545 # PBGRP is replaced by the RPM group of apps
    546 # Cf: http://fedoraproject.org/wiki/RPMGroups
    547 filter PBGRP = Applications/Network
    548 
    549 # PBDEP is replaced by the list of dependencies
    550 # filter PBDEP =
    551 
    552 # PBSUF is replaced by the package name ($pbpkg in code)
    553 filter PBSUF = $pbsuf
    554 
    555 # PBOBS is replaced by the Obsolete line
    556 #filter PBOBS =
    557 }}}
    558 And our final current problem is the list of files produced by the build process that need to be referenced in our %files session. So modify that section of the spec file to read like this:
    559 {{{
    560 %files
    561 %defattr(-,root,root)
    562 %doc ChangeLog
    563 %doc INSTALL COPYING README AUTHORS NEWS
    564 %doc README.* Release_Notes doc/examples
    565 %{_bindir}/*
    566 %{_mandir}/*/*
    567 %{_infodir}/*
    568 }}}
    569 
    570 Now you're ready for your second run !
    571 {{{
    572 $ pb -p netperf -r `pwd` cms2pkg
    573 [... build process ...]
    574 Wrote: /users/bruno/netperf/build/SRPMS/netperf-2.4.4-1.mdv2007.1.src.rpm
    575 Wrote: /users/bruno/netperf/build/RPMS/x86_64/netperf-2.4.4-1.mdv2007.1.x86_64.rpm
    576 Wrote: /users/bruno/netperf/build/RPMS/x86_64/netperf-debug-2.4.4-1.mdv2007.1.x86_64.rpm
    577 [... build process ...]
    578 Checking validity of rpms with rpmlint... E: netperf no-changelogname-tag
    579 E: netperf zero-length /usr/share/doc/netperf-2.4.4/NEWS
    580 E: netperf info-files-without-install-info-postin /usr/share/info/netperf.info.bz2
    581 E: netperf info-files-without-install-info-postun /usr/share/info/netperf.info.bz2
    582 E: netperf no-signature
    583 E: netperf no-changelogname-tag
    584 E: netperf no-signature
    585 $
    586 }}}
    587 So this time we have an RPM !
    588 You can try to install it and check if it works:
    589 {{{
    590 $ sudo urpmi /users/bruno/netperf/build/RPMS/x86_64/netperf-2.4.4-1.mdv2007.1.x86_64.rpm
    591 
    592 installation de netperf-2.4.4-1.mdv2007.1.x86_64.rpm depuis /users/bruno/netperf/build/RPMS/x86_64
    593 Préparation ...                  ##########################################################################
    594       1/1: netperf               ##########################################################################
    595 $ sudo netserver
    596 Starting netserver at port 12865
    597 Starting netserver at hostname 0.0.0.0 port 12865 and family AF_UNSPEC
    598 $ sudo netperf
    599 TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to victoria2.home.musique-ancienne.org (127.0.0.1) port 0 AF_INET
    600 Recv   Send    Send
    601 Socket Socket  Message  Elapsed
    602 Size   Size    Size     Time     Throughput
    603 bytes  bytes   bytes    secs.    10^6bits/sec
    604 
    605  87380  16384  16384    10.00    3665.59
    606 }}}
    607 
    608 So it seems to work. Check now the RPM:
    609 {{{
    610 $ rpm -ql netperf
    611 /usr/bin/netperf
    612 /usr/bin/netserver
    613 /usr/share/doc/netperf-2.4.4
    614 /usr/share/doc/netperf-2.4.4/AUTHORS
    615 /usr/share/doc/netperf-2.4.4/COPYING
    616 /usr/share/doc/netperf-2.4.4/ChangeLog
    617 /usr/share/doc/netperf-2.4.4/INSTALL
    618 /usr/share/doc/netperf-2.4.4/NEWS
    619 /usr/share/doc/netperf-2.4.4/README
    620 /usr/share/info/netperf.info.bz2
    621 /usr/share/man/man1/netperf.1.bz2
    622 /usr/share/man/man1/netserver.1.bz2
    623 $ rpm -qi netperf
    624 Name        : netperf                      Relocations: (not relocatable)
    625 Version     : 2.4.4                             Vendor: (none)
    626 Release     : 1.mdv2007.1                   Build Date: sam 17 nov 2007 00:40:33 CET
    627 Install Date: sam 17 nov 2007 00:47:29 CET      Build Host: victoria2.home.musique-ancienne.org
    628 Group       : Archiving/Backup              Source RPM: netperf-2.4.4-1.mdv2007.1.src.rpm
    629 Size        : 263698                           License: GPL
    630 Signature   : (none)
    631 Packager    : Bruno Cornec <bruno@project-builder.org>
    632 URL         : http://www.netperf.org
    633 Summary     : netperf est un outil de benchmark réseau
    634 Description :
    635 netperf est un outil de benchmark réseau
    636 $ rpm -q --changelog netperf
    637 $
    638 }}}
    639 So we still have an issue with the Group used and the changelog which is empty. Also some modes are wrong and our NEWS file is empty. Again Project-Builder can will with those issues.
    640 You'll have for that to create a new file under pbconf/netperf called pbcl which will be the changelog file for your project:
    641 {{{
    642 $ cp netperf-2.4.4/Release_Notes pbconf/netperf/pbcl
    643 $ vi pbconf/netperf/pbcl
    644 [... format modifications ...]
    645 $ head -20 pbconf/netperf/pbcl
    646 # $Id$
    647 
    648 NETPERF CHANGES
    649 
    650 2.4.4 (2007-11-16)
    651 -  The LOC_CPU and REM_CPU tests will report their respective beliefs
    652    as to the number of CPUs present when the verbosity is set to more
    653    than one.  This can be used when trying to diagnose issues with CPU
    654    utilization.
    655 -  A kind soul who wishes to remain anonymous provided a patch to
    656    enable use of sendfile() on OSX.
    657 -  Fix a misplaced \n in a format string of send_tcp_maerts, courtesy
    658    of Alexander Duyck.
    659 -  There is an experimental global -r option which will allow one to
    660    include CPU utilization measurements, but make the decision about
    661    hitting confidence based on the result only.  The test banner will
    662    reflects this when -r is used.
    663 -  It is no longer necessary to specify a file with the global -F
    664    option when running a _SENDFILE test.  Netperf will create a
    665    temporary file and populate it with random data and use that.  If
    666 $
    667 EOF
    668 }}}
    669 The format of the pbcl file is strict. It has 4 initital lines that you can use the way you want, the the 5th line should have 'Version (date)' wwith date using ISO format, then the following lines are the changelog content of that version. Then after a blank line, again a 'Version (date)' and the changelog, etc...
    670 
    671 I also decide to remove the useless files in the distribution, and replace them  with those that Project-Builder will generate from the pbcl file we just created from Release_Notes:
    672 {{{
    673 $ rm netperf-2.4.4/ChangeLog netperf-2.4.4/NEWS
    674 }}}
    675 
    676 Ready to check again:
    677 {{{
    678 $ pb -p netperf -r `pwd` cms2pkg
    679 Project: netperf
    680 Action: cms2pkg
    681 Packages: netperf
    682 
    683 Management of netperf 2.4.4-1 (rev flat)
    684 Exporting /users/bruno/netperf/src/netperf-2.4.4 from DIR to /users/bruno/netperf/delivery/netperf-2.4.4... OK
    685 Generating NEWS file from /users/bruno/netperf/src/pbconf/netperf/pbcl
    686 [... build continues ...]
    687 Wrote: /users/bruno/netperf/build/SRPMS/netperf-2.4.4-1.mdv2007.1.src.rpm
    688 Wrote: /users/bruno/netperf/build/RPMS/x86_64/netperf-2.4.4-1.mdv2007.1.x86_64.rpm
    689 Wrote: /users/bruno/netperf/build/RPMS/x86_64/netperf-debug-2.4.4-1.mdv2007.1.x86_64.rpm
    690 Executing(%clean): /bin/sh -e /users/bruno/netperf/build/tmp/rpm-tmp.76745
    691 + umask 022
    692 + cd /users/bruno/netperf/build/BUILD
    693 + cd netperf-2.4.4
    694 + /bin/rm -rf /users/bruno/netperf/build/tmp/netperf-2.4.4-1.mdv2007.1-root-bruno
    695 + exit 0
    696 OK
    697 Checking validity of rpms with rpmlint... E: netperf script-without-shellbang /usr/share/doc/netperf-2.4.4/examples/arr_script
    698 E: netperf info-files-without-install-info-postin /usr/share/info/netperf.info.bz2
    699 E: netperf info-files-without-install-info-postun /usr/share/info/netperf.info.bz2
    700 W: netperf wrong-file-end-of-line-encoding /usr/share/doc/netperf-2.4.4/README.windows
    701 E: netperf no-signature
    702 E: netperf no-signature
    703 OK
    704 }}}
    705 
    706 So seems much better. More verifications:
    707 {{{
    708 $ sudo rpm -Uvh --force /users/bruno/netperf/build/RPMS/x86_64/netperf-2.4.4-1.mdv2007.1.x86_64.rpm
    709 Préparation...              ########################################### [100%]
    710    1:netperf                ########################################### [100%]
    711 $ rpm -ql netperf
    712 /usr/bin/netperf
    713 /usr/bin/netserver
    714 /usr/share/doc/netperf-2.4.4
    715 /usr/share/doc/netperf-2.4.4/AUTHORS
    716 /usr/share/doc/netperf-2.4.4/COPYING
    717 /usr/share/doc/netperf-2.4.4/ChangeLog
    718 /usr/share/doc/netperf-2.4.4/INSTALL
    719 /usr/share/doc/netperf-2.4.4/NEWS
    720 /usr/share/doc/netperf-2.4.4/README
    721 /usr/share/doc/netperf-2.4.4/README.aix
    722 /usr/share/doc/netperf-2.4.4/README.hpux
    723 /usr/share/doc/netperf-2.4.4/README.osx
    724 /usr/share/doc/netperf-2.4.4/README.ovms
    725 /usr/share/doc/netperf-2.4.4/README.solaris
    726 /usr/share/doc/netperf-2.4.4/README.windows
    727 /usr/share/doc/netperf-2.4.4/Release_Notes
    728 /usr/share/doc/netperf-2.4.4/examples
    729 /usr/share/doc/netperf-2.4.4/examples/Makefile
    730 /usr/share/doc/netperf-2.4.4/examples/Makefile.am
    731 /usr/share/doc/netperf-2.4.4/examples/Makefile.in
    732 /usr/share/doc/netperf-2.4.4/examples/arr_script
    733 /usr/share/doc/netperf-2.4.4/examples/packet_byte_script
    734 /usr/share/doc/netperf-2.4.4/examples/sctp_stream_script
    735 /usr/share/doc/netperf-2.4.4/examples/snapshot_script
    736 /usr/share/doc/netperf-2.4.4/examples/tcp_range_script
    737 /usr/share/doc/netperf-2.4.4/examples/tcp_rr_script
    738 /usr/share/doc/netperf-2.4.4/examples/tcp_stream_script
    739 /usr/share/doc/netperf-2.4.4/examples/udp_rr_script
    740 /usr/share/doc/netperf-2.4.4/examples/udp_stream_script
    741 /usr/share/info/netperf.info.bz2
    742 /usr/share/man/man1/netperf.1.bz2
    743 /usr/share/man/man1/netserver.1.bz2
    744 $ rpm -q --changelog netperf | head
    745 * ven nov 16 2007 Bruno Cornec <bruno@project-builder.org> 2.4.4-1.mdv2007.1
    746 - Updated to 2.4.4
    747 -  The LOC_CPU and REM_CPU tests will report their respective beliefs
    748    as to the number of CPUs present when the verbosity is set to more
    749    than one.  This can be used when trying to diagnose issues with CPU
    750    utilization.
    751 -  A kind soul who wishes to remain anonymous provided a patch to
    752    enable use of sendfile() on OSX.
    753 -  Fix a misplaced \n in a format string of send_tcp_maerts, courtesy
    754    of Alexander Duyck.
    755 $
    756 }}}
    757 
    758 So we now have a much more correct rpm built, even if not everything is solve. The beauty of Project-Builder will now appear, as it's as easy to generate more RPMs for other distributions than it is for your native distribution.
    759 
    760 Imagine you want to build the same RPMs for the just issued Fedora 8, instead of your native distribution. First download the ISO image of your distribution and put it where you have space on your disk. Then call pb to help you create a new virtual machine for that distribution:
    761 {{{
    762 $ pb -p pb -r `pwd` -m fedora_8 -i ~/Download/Fedora-8-i386-DVD.iso newvm
    763 Project: pb
    764 Action: newvm
    765 Creating the QEMU VM... Formating '/users/qemu/fedora_8.qemu', fmt=qcow2, size=5242880 kB
    766 OK
    767 Launching the VM /users/qemu/fedora_8.qemu... OK
    768 Waiting for VM fedora_8 to come up...
    769 }}}
    770 Then the Virtual Machine is launched booting on your CD, and the rest is just a classical installation of a Linux distribution.
    771 
     20* NetPerfExample: Simple Example with netperf
    77221
    77322= Example of use on LinuxCOE (more complex example) =