[Ovirt-devel] oVirt Source Repository Refactoring

Ben Guthro bguthro at virtualiron.com
Tue Sep 9 13:22:11 UTC 2008


please disregard (operator error)
I was specifying the environment variables incorrectly on the build line.

apologies for the noise.


Ben Guthro wrote on 09/09/2008 08:42 AM:
> I'm having some issues building after the refactoring, and I was 
> hoping someone might be able to point me in the right direction...
>
> I am only interested in building the managed node pxe images, at this 
> point.
> As I understand this restructuring, this means I need the following 
> repos to build:
> ovirt-release
> ovirt-node
> ovirt-node-image
>
> I should be able to do without the other subcomponents that I am not 
> interested in, correct?
>
> To build I execute make overriding the following environment variables:
> FEDORA_URL                  Use a local yum mirror
> OVIRT_CACHE_DIR         Override location to make this behave as 
> before, and put it in a
>                                          local dir to the build area
> SUBDIRS="node node-image" Only build what I care about.
> OVIRT_BRANCH               build on the "next" branch
>
> However, it would seem that something in the automake magic is picking 
> up the SUBDIRS override, because it seems to be using it incorrectly 
> when it tries to make the "node" dir. (see make output below)
>
> Am I doing something wrong here? Is this a supported operation?
>
>
>
> <build output>
>
> [bguthro at bguthro ovirt]$ ls
> node  node-image  release
> [bguthro at bguthro ovirt]$ make FEDORA_URL=http://install/fedora/yum 
> OVIRT_CACHE_DIR=/home/bguthro/dev/trivo/ovirt/ovirt-cache 
> SUBDIRS="node node-image" -f release/ovirt.mk build
> for dir in node node-image; do \
>                if ! test -d $dir ; then \
>                        make $dir || exit 1 ; \
>                fi ; \
>                ( cd $dir; test ! -f Makefile.in && ./autogen.sh ); \
>                ( cd $dir; test ! -f Makefile && ./configure ); \
>                make -C $dir publish || exit 1 ; \
>        done
> I am going to run ./configure with no arguments - if you wish
> to pass any to it, please specify them on the ./autogen.sh command line.
> configure.ac:3: installing `./install-sh'
> configure.ac:3: installing `./missing'
> ovirt-identify-node/Makefile.am: installing `./depcomp'
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... gawk
> checking whether make sets $(MAKE)... yes
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables...
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking for style of include used by make... GNU
> checking dependency style of gcc... gcc3
> checking for pkg-config... /usr/bin/pkg-config
> checking pkg-config is at least version 0.9.0... yes
> checking for DBUS... yes
> checking for HAL... yes
> checking for VIRT... yes
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating ovirt-identify-node/Makefile
> config.status: creating config.h
> config.status: executing depfiles commands
> make[1]: Entering directory `/home/bguthro/dev/trivo/ovirt/node'
> { test ! -d ovirt-node-0.92 || { find ovirt-node-0.92 -type d ! -perm 
> -200 -exec chmod u+w {} ';' && rm -fr ovirt-node-0.92; }; }
> test -d ovirt-node-0.92 || mkdir ovirt-node-0.92
> list='node node-image'; for subdir in $list; do \
>          if test "$subdir" = .; then :; else \
>            test -d "ovirt-node-0.92/$subdir" \
>            || /bin/mkdir -p "ovirt-node-0.92/$subdir" \
>            || exit 1; \
>            distdir=`CDPATH="${ZSH_VERSION+.}:" && cd ovirt-node-0.92 
> && pwd`; \
>            top_distdir=`CDPATH="${ZSH_VERSION+.}:" && cd 
> ovirt-node-0.92 && pwd`; \
>            (cd $subdir && \
>              make  \
>                top_distdir="$top_distdir" \
>                distdir="$distdir/$subdir" \
>                am__remove_distdir=: \
>                am__skip_length_check=: \
>                distdir) \
>              || exit 1; \
>          fi; \
>        done
> /bin/sh: line 7: cd: node: No such file or directory
> make[1]: *** [distdir] Error 1
> make[1]: Leaving directory `/home/bguthro/dev/trivo/ovirt/node'
> make: *** [publish] Error 1
>
>
> </build output>
>
> Perry N. Myers wrote on 09/08/2008 03:40 PM:
>> oVirt is composed of several components that have well defined 
>> interfaces
>> and are able to be used in isolation from each other.  Our code 
>> repository
>> did not reflect this since it was a single monolithic repository for all
>> of oVirt.
>>
>> We've refactored the repositories into the following:
>>
>> ovirt-server    : RPMs that provide oVirt Server Suite functionality
>> ovirt-node      : RPMs that provide oVirt node functionality
>> ovirt-node-image: RPM that contains LiveCD ISO image and PXE images of
>>                   the oVirt Node which uses the ovirt-node RPM
>> ovirt-appliance : RPM that contains a Fedora appliance OS with
>>                   ovirt-server and ovirt-node-image RPMs installed and
>>                   configured
>> ovirt-release   : RPM that contains yum repo configuration file for
>>                   ovirt.org repositories and developer convenience 
>> scripts
>> ovirt-docs      : RPMs that contain documentation for the oVirt project
>>
>> The build-all.sh script that was used to build all of the 
>> sub-projects of
>> oVirt has been replaced with a top level makefile (ovirt.mk) from the
>> ovirt-release repository and RPM.
>>
>> The old ovirt repo will continue to be hosted on git.et.redhat.org
>> indefinitely, since it corresponds to version 0.92-1 and below of oVirt.
>> The next release of oVirt will use the new refactored repositories.
>>
>> In addition to the repo refactoring and change from build-all.sh to
>> ovirt.mk, we've also tried to reduce the dependency on root access for
>> building.  The only sections of the build that still require root are 
>> the
>> RPM builds of ovirt-appliance and ovirt-node-image, as these RPMs use
>> livecd-creator which requires root.
>>
>> Because of this, the user running the ovirt.mk makefile should have
>> passwordless sudo as root access.  Sudo is used inside of the appliance
>> and node-image spec files to allow livecd-creator to work properly.
>>
>> Developers wishing to take a look at what is currently in development 
>> for
>> the next release can do the following on a Fedora 9 host.
>>
>> Install the latest ovirt-release RPM from ovirt.org:
>>
>> $ sudo rpm -ivh 
>> http://ovirt.org/repos/ovirt/9/ovirt-release-0.92-1.fc9.noarch.rpm
>>
>> This will add:
>> /etc/yum.repos.d/ovirt.repo - Used for yum update/install of oVirt RPMs
>> /usr/share/ovirt-release/ovirt.mk - Developer Makefile
>>
>> To get the rest of the repositories do the following:
>> $ mkdir ~/ovirt
>> $ cd ~/ovirt\
>> $ export OVIRT_BRANCH=next
>> $ make -f /usr/share/ovirt-release/ovirt.mk update
>>
>> Replace ~/ovirt with any directory you would like (this is just an
>> example)  This will check out all 6 repos from the ovirt.org site.
>>
>> OVIRT_BRANCH is set to next to indicate that you want to work on the 
>> next
>> branch instead of master in the git repos.
>>
>> To do a build (similar to build-all.sh in previous releases) do:
>> $ make -f /usr/share/ovirt-release/ovirt.mk build
>>
>> This will build all of the RPMs and make the oVirt Node and Appliance.
>> After that you can run:
>>
>> $ sudo create-ovirt-appliance
>>
>> to create the Appliance on your host.  create-ovirt-appliance replaces
>> create-wui-appliance and has the same command line parameters.  So to
>> bridge your appliance to eth1, you would use:
>>
>> $ sudo create-ovirt-appliance -e eth1
>>
>> Give the new repositories and developer scripts a try and please report
>> any problems encountered.
>>
>> Thanks,
>>
>> oVirt Development Team
>>
>
> _______________________________________________
> Ovirt-devel mailing list
> Ovirt-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/ovirt-devel




More information about the ovirt-devel mailing list