[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [Ovirt-devel] oVirt Source Repository Refactoring

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:

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 bguthro ovirt]$ ls
node  node-image  release
[bguthro 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 ; \
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; \
/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
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.


oVirt Development Team

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]