Changes between Version 25 and Version 26 of WikiStart


Ignore:
Timestamp:
11/19/07 13:19:43 (6 years ago)
Author:
bruno
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) =