Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
libvirt
提交
542039fa
L
libvirt
项目概览
openeuler
/
libvirt
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
libvirt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
542039fa
编写于
9月 05, 2008
作者:
D
Daniel P. Berrange
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fully support mingw builds
上级
126d3ebe
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
236 addition
and
31 deletion
+236
-31
.cvsignore
.cvsignore
+1
-0
ChangeLog
ChangeLog
+22
-0
Makefile.am
Makefile.am
+1
-0
autobuild.sh
autobuild.sh
+36
-3
configure.in
configure.in
+20
-4
mingw-libvirt.spec.in
mingw-libvirt.spec.in
+87
-0
qemud/remote_protocol.c
qemud/remote_protocol.c
+1
-0
qemud/remote_protocol.h
qemud/remote_protocol.h
+1
-0
qemud/remote_protocol.x
qemud/remote_protocol.x
+1
-0
src/Makefile.am
src/Makefile.am
+3
-3
src/storage_backend.c
src/storage_backend.c
+48
-5
src/storage_conf.c
src/storage_conf.c
+3
-3
src/util.c
src/util.c
+4
-13
src/util.h
src/util.h
+8
-0
未找到文件。
.cvsignore
浏览文件 @
542039fa
...
...
@@ -20,6 +20,7 @@ ltconfig
update.log
libvirt.pc
libvirt.spec
mingw-libvirt.spec
COPYING
m4
ABOUT-NLS
...
...
ChangeLog
浏览文件 @
542039fa
Fri Sep 5 13:02:26 BST 2008 Daniel P. Berrange <berrange@redhat.com>
Fully support mingw builds
* .cvsignore: Ignore mingw-libvirt.spec
* autobuild.sh: Perform mingw build if toolchain is available
* Makefile.am: Add mingw-libvirt.spec to EXTRA_DIST
* configure.in: Add check for getuid/getgit. Add gettext()
check against libintl. Disable storage drivers if libvirtd
is disabled
* mingw-libvirt.spec.in: Specfile for mingw cross compile
* qemud/remote_protocol.{c,x,h}: Add socketcompat.h include
for htons() methods
* src/Makefile.am: Don't wrap storage driver conditionals in
a libvirtd conditional
* src/storage_backend.c: Add no-op implementations of
virStorageBackendRunProgRegex and virStorageBackendRunProgNul
functions for mingw
* src/storage_conf.c: Fix typo in getgid() call. Avoid
not-literal in format string.
* src/util.c: Fix signature of virExec() for mingw build
* src/util.h: Add stub impl of getuid/getgid calls
Fri Sep 5 12:50:26 BST 2008 Daniel P. Berrange <berrange@redhat.com>
Fix starting of Xen domains without PVFB console, by not
...
...
Makefile.am
浏览文件 @
542039fa
...
...
@@ -10,6 +10,7 @@ ACLOCAL_AMFLAGS = -I m4 -I gnulib/m4
EXTRA_DIST
=
\
libvirt.spec libvirt.spec.in
\
mingw-libvirt.spec mingw-libvirt.spec.in
\
libvirt.pc libvirt.pc.in
\
$(man_MANS)
autobuild.sh
\
.x-sc_avoid_if_before_free
\
...
...
autobuild.sh
浏览文件 @
542039fa
...
...
@@ -17,8 +17,6 @@ rm -rf coverage
./autogen.sh
--prefix
=
"
$AUTOBUILD_INSTALL_ROOT
"
\
--enable-test-coverage
\
--enable-compile-warnings
=
error
\
--with-openvz
\
--with-lxc
\
--with-xen-proxy
# If the MAKEFLAGS envvar does not yet include a -j option,
...
...
@@ -51,5 +49,40 @@ if [ -f /usr/bin/rpmbuild ]; then
NOW
=
`
date
+
"%s"
`
EXTRA_RELEASE
=
".
$USER$NOW
"
fi
rpmbuild
--nodeps
--define
"extra_release
$EXTRA_RELEASE
"
-ta
--clean
*
.tar.gz
rpmbuild
--nodeps
\
--define
"extra_release
$EXTRA_RELEASE
"
\
--define
"_sourcedir
`
pwd
`
"
\
-ba
--clean
libvirt.spec
fi
if
[
-x
/usr/bin/i686-pc-mingw32-gcc
]
;
then
make distclean
PKG_CONFIG_PATH
=
"
$AUTOBUILD_INSTALL_ROOT
/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig"
\
CC
=
"i686-pc-mingw32-gcc"
\
./configure
\
--build
=
$(
uname
-m
)
-pc-linux
\
--host
=
i686-pc-mingw32
\
--prefix
=
"
$AUTOBUILD_INSTALL_ROOT
/i686-pc-mingw32/sys-root/mingw"
\
--without-sasl
\
--without-avahi
\
--without-polkit
\
--without-python
\
--without-xen
\
--without-qemu
\
--without-lxc
\
--without-openvz
\
--without-libvirtd
make
make
install
#set -o pipefail
#make check 2>&1 | tee "$RESULTS"
rpmbuild
--nodeps
\
--define
"extra_release
$EXTRA_RELEASE
"
\
--define
"_sourcedir
`
pwd
`
"
\
-ba
--clean
mingw-libvirt.spec
fi
configure.in
浏览文件 @
542039fa
...
...
@@ -65,10 +65,10 @@ dnl Use --disable-largefile if you don't want this.
AC_SYS_LARGEFILE
dnl Availability of various common functions (non-fatal if missing).
AC_CHECK_FUNCS([cfmakeraw regexec uname sched_getaffinity])
AC_CHECK_FUNCS([cfmakeraw regexec uname sched_getaffinity
getuid getgid
])
dnl Availability of various common headers (non-fatal if missing).
AC_CHECK_HEADERS([pwd.h paths.h sys/syslimits.h sys/utsname.h sys/wait.h winsock2.h sched.h termios.h])
AC_CHECK_HEADERS([pwd.h paths.h
regex.h
sys/syslimits.h sys/utsname.h sys/wait.h winsock2.h sched.h termios.h])
dnl Where are the XDR functions?
dnl If portablexdr is installed, prefer that.
...
...
@@ -77,6 +77,8 @@ AC_CHECK_LIB([portablexdr],[xdrmem_create],[],[
AC_SEARCH_LIBS([xdrmem_create],[rpc xdr])
])
AC_CHECK_LIB([intl],[gettext],[])
dnl Do we have rpcgen?
AC_PATH_PROG([RPCGEN], [rpcgen], [no])
AM_CONDITIONAL([RPCGEN], [test "x$ac_cv_path_RPCGEN" != "xno"])
...
...
@@ -649,6 +651,20 @@ AC_ARG_WITH([storage-iscsi],
AC_ARG_WITH([storage-disk],
[ --with-storage-disk with GPartd Disk backend for the storage driver (on)],[],[with_storage_disk=check])
with_storage_dir=yes
if test "$with_libvirtd" = "no"; then
with_storage_dir=no
with_storage_fs=no
with_storage_lvm=no
with_storage_iscsi=no
with_storage_disk=no
fi
if test "$with_storage_dir" = "yes" ; then
AC_DEFINE_UNQUOTED([WITH_STORAGE_DIR], 1, [whether directory backend for storage driver is enabled])
fi
AM_CONDITIONAL([WITH_STORAGE_DIR], [test "$with_storage_dir" = "yes"])
if test "$with_storage_fs" = "yes" -o "$with_storage_fs" = "check"; then
AC_PATH_PROG([MOUNT], [mount], [], [$PATH:/sbin:/usr/sbin])
AC_PATH_PROG([UMOUNT], [umount], [], [$PATH:/sbin:/usr/sbin])
...
...
@@ -1024,7 +1040,7 @@ AC_OUTPUT(Makefile src/Makefile include/Makefile docs/Makefile \
docs/examples/python/Makefile \
gnulib/lib/Makefile \
gnulib/tests/Makefile \
libvirt.pc libvirt.spec \
libvirt.pc libvirt.spec
mingw-libvirt.spec
\
po/Makefile.in \
include/libvirt/Makefile include/libvirt/libvirt.h \
python/Makefile python/tests/Makefile \
...
...
@@ -1053,7 +1069,7 @@ AC_MSG_NOTICE([Libvirtd: $with_libvirtd])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([Storage Drivers])
AC_MSG_NOTICE([])
AC_MSG_NOTICE([ Dir:
yes
])
AC_MSG_NOTICE([ Dir:
$with_storage_dir
])
AC_MSG_NOTICE([ FS: $with_storage_fs])
AC_MSG_NOTICE([ NetFS: $with_storage_fs])
AC_MSG_NOTICE([ LVM: $with_storage_lvm])
...
...
mingw-libvirt.spec.in
0 → 100644
浏览文件 @
542039fa
%include /usr/lib/rpm/mingw-defs
Name: mingw-libvirt
Version: @VERSION@
Release: 1%{?dist}%{?extra_release}
Summary: MinGW Windows libvirt virtualization library
License: LGPLv2+
Group: Development/Libraries
URL: http://www.libvirt.org/
Source0: ftp://libvirt.org/libvirt/libvirt-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: mingw-filesystem >= 19
BuildRequires: mingw-gcc
BuildRequires: mingw-binutils
BuildRequires: mingw-libgpg-error
BuildRequires: mingw-libgcrypt
BuildRequires: mingw-gnutls
BuildRequires: mingw-gettext
BuildRequires: mingw-libxml2
BuildRequires: mingw-portablexdr
%description
MinGW Windows libvirt virtualization library.
%prep
%setup -q -n libvirt-%{version}
%build
# XXX enable SASL in future
PKG_CONFIG_PATH="%{_prefix}/i686-pc-mingw32/sys-root/mingw/lib/pkgconfig" \
CC="i686-pc-mingw32-gcc" \
CFLAGS="-O2 -g -Wall -pipe" \
./configure \
--build=%_build \
--host=i686-pc-mingw32 \
--prefix=%{_prefix}/i686-pc-mingw32/sys-root/mingw \
--without-sasl \
--without-avahi \
--without-polkit \
--without-python \
--without-xen \
--without-qemu \
--without-lxc \
--without-openvz \
--without-libvirtd
make
%install
rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
rm -rf $RPM_BUILD_ROOT/%{_mingw_sysconfdir}/libvirt
rm -rf $RPM_BUILD_ROOT/%{_mingw_datadir}/doc/*
rm -rf $RPM_BUILD_ROOT/%{_mingw_datadir}/gtk-doc/*
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root)
%{_mingw_bindir}/libvirt-0.dll
%{_mingw_bindir}/virsh.exe
%{_mingw_libdir}/libvirt.a
%{_mingw_libdir}/libvirt.dll.a
%{_mingw_libdir}/libvirt.la
%{_mingw_libdir}/pkgconfig/libvirt.pc
%{_mingw_datadir}/locale/*/LC_MESSAGES/libvirt.mo
%dir %{_mingw_includedir}/libvirt
%{_mingw_includedir}/libvirt/libvirt.h
%{_mingw_includedir}/libvirt/virterror.h
%{_mingw_mandir}/man1/virsh.1*
%changelog
* Tue Sep 2 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.4-1
- Initial RPM release, largely based on earlier work from several sources.
qemud/remote_protocol.c
浏览文件 @
542039fa
...
...
@@ -6,6 +6,7 @@
#include "remote_protocol.h"
#include <config.h>
#include "internal.h"
#include "socketcompat.h"
bool_t
xdr_remote_nonnull_string
(
XDR
*
xdrs
,
remote_nonnull_string
*
objp
)
...
...
qemud/remote_protocol.h
浏览文件 @
542039fa
...
...
@@ -15,6 +15,7 @@ extern "C" {
#include <config.h>
#include "internal.h"
#include "socketcompat.h"
#define REMOTE_MESSAGE_MAX 262144
#define REMOTE_STRING_MAX 65536
...
...
qemud/remote_protocol.x
浏览文件 @
542039fa
...
...
@@ -38,6 +38,7 @@
%
#
include
<
config
.
h
>
%
#
include
"internal.h"
%
#
include
"socketcompat.h"
/*----- Data types. -----*/
...
...
src/Makefile.am
浏览文件 @
542039fa
...
...
@@ -58,7 +58,8 @@ NETWORK_CONF_SOURCES = \
# Storage driver generic impl APIs
STORAGE_CONF_SOURCES
=
\
storage_conf.h storage_conf.c
storage_conf.h storage_conf.c
\
storage_backend.h storage_backend.c
# The remote RPC driver, covering domains, storage, networks, etc
...
...
@@ -109,8 +110,7 @@ QEMU_DRIVER_SOURCES = \
# And finally storage backend specific impls
STORAGE_DRIVER_SOURCES
=
\
storage_driver.h storage_driver.c
\
storage_backend.h storage_backend.c
storage_driver.h storage_driver.c
STORAGE_DRIVER_FS_SOURCES
=
\
storage_backend_fs.h storage_backend_fs.c
...
...
src/storage_backend.c
浏览文件 @
542039fa
...
...
@@ -24,9 +24,13 @@
#include <config.h>
#include <string.h>
#if HAVE_REGEX_H
#include <regex.h>
#endif
#include <sys/types.h>
#if HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#include <unistd.h>
#include <fcntl.h>
#include <stdint.h>
...
...
@@ -38,6 +42,10 @@
#endif
#include "internal.h"
#include "util.h"
#include "memory.h"
#include "storage_backend.h"
#if WITH_STORAGE_LVM
#include "storage_backend_logical.h"
...
...
@@ -48,15 +56,14 @@
#if WITH_STORAGE_DISK
#include "storage_backend_disk.h"
#endif
#include "util.h"
#include "memory.h"
#include "storage_backend.h"
#if WITH_STORAGE_DIR
#include "storage_backend_fs.h"
#endif
static
virStorageBackendPtr
backends
[]
=
{
#if WITH_STORAGE_DIR
&
virStorageBackendDirectory
,
#endif
#if WITH_STORAGE_FS
&
virStorageBackendFileSystem
,
&
virStorageBackendNetFileSystem
,
...
...
@@ -209,8 +216,12 @@ virStorageBackendUpdateVolInfoFD(virConnectPtr conn,
return
-
2
;
if
(
S_ISREG
(
sb
.
st_mode
))
{
#ifndef __MINGW32__
vol
->
allocation
=
(
unsigned
long
long
)
sb
.
st_blocks
*
(
unsigned
long
long
)
sb
.
st_blksize
;
#else
vol
->
allocation
=
sb
.
st_size
;
#endif
/* Regular files may be sparse, so logical size (capacity) is not same
* as actual allocation above
*/
...
...
@@ -337,6 +348,8 @@ virStorageBackendStablePath(virConnectPtr conn,
return
devpath
;
}
#ifndef __MINGW32__
/*
* Run an external program.
*
...
...
@@ -620,3 +633,33 @@ virStorageBackendRunProgNul(virConnectPtr conn,
return
0
;
}
#else
int
virStorageBackendRunProgRegex
(
virConnectPtr
conn
,
virStoragePoolObjPtr
pool
ATTRIBUTE_UNUSED
,
const
char
*
const
*
prog
ATTRIBUTE_UNUSED
,
int
nregex
ATTRIBUTE_UNUSED
,
const
char
**
regex
ATTRIBUTE_UNUSED
,
int
*
nvars
ATTRIBUTE_UNUSED
,
virStorageBackendListVolRegexFunc
func
ATTRIBUTE_UNUSED
,
void
*
data
ATTRIBUTE_UNUSED
,
int
*
outexit
ATTRIBUTE_UNUSED
)
{
virStorageReportError
(
conn
,
VIR_ERR_INTERNAL_ERROR
,
_
(
"%s not implemented on Win32"
),
__FUNCTION__
);
return
-
1
;
}
int
virStorageBackendRunProgNul
(
virConnectPtr
conn
,
virStoragePoolObjPtr
pool
ATTRIBUTE_UNUSED
,
const
char
**
prog
ATTRIBUTE_UNUSED
,
size_t
n_columns
ATTRIBUTE_UNUSED
,
virStorageBackendListVolNulFunc
func
ATTRIBUTE_UNUSED
,
void
*
data
ATTRIBUTE_UNUSED
)
{
virStorageReportError
(
conn
,
VIR_ERR_INTERNAL_ERROR
,
_
(
"%s not implemented on Win32"
),
__FUNCTION__
);
return
-
1
;
}
#endif
src/storage_conf.c
浏览文件 @
542039fa
...
...
@@ -200,7 +200,7 @@ virStoragePoolDefParsePerms(virConnectPtr conn,
}
if
(
virXPathNode
(
conn
,
"/pool/permissions/group"
,
ctxt
)
==
NULL
)
{
perms
->
u
id
=
getgid
();
perms
->
g
id
=
getgid
();
}
else
{
if
(
virXPathLong
(
conn
,
"number(/pool/permissions/group)"
,
ctxt
,
&
v
)
<
0
)
{
virStorageReportError
(
conn
,
VIR_ERR_XML_ERROR
,
...
...
@@ -425,7 +425,7 @@ virStoragePoolDefParse(virConnectPtr conn,
if
(
!
xml
)
{
if
(
conn
&&
conn
->
err
.
code
==
VIR_ERR_NONE
)
virStorageReportError
(
conn
,
VIR_ERR_XML_ERROR
,
_
(
"failed to parse xml document"
));
"%s"
,
_
(
"failed to parse xml document"
));
goto
cleanup
;
}
...
...
@@ -799,7 +799,7 @@ virStorageVolDefParse(virConnectPtr conn,
if
(
!
xml
)
{
if
(
conn
&&
conn
->
err
.
code
==
VIR_ERR_NONE
)
virStorageReportError
(
conn
,
VIR_ERR_XML_ERROR
,
_
(
"failed to parse xml document"
));
"%s"
,
_
(
"failed to parse xml document"
));
goto
cleanup
;
}
...
...
src/util.c
浏览文件 @
542039fa
...
...
@@ -440,22 +440,13 @@ virRun(virConnectPtr conn,
int
virExec
(
virConnectPtr
conn
,
const
char
*
const
*
argv
ATTRIBUTE_UNUSED
,
const
char
*
const
*
envp
ATTRIBUTE_UNUSED
,
const
fd_set
*
keepfd
ATTRIBUTE_UNUSED
,
int
*
retpid
ATTRIBUTE_UNUSED
,
int
infd
ATTRIBUTE_UNUSED
,
int
*
outfd
ATTRIBUTE_UNUSED
,
int
*
errfd
ATTRIBUTE_UNUSED
)
{
ReportError
(
conn
,
VIR_ERR_INTERNAL_ERROR
,
__FUNCTION__
);
return
-
1
;
}
int
virExecNonBlock
(
virConnectPtr
conn
,
const
char
*
const
*
argv
ATTRIBUTE_UNUSED
,
int
*
retpid
ATTRIBUTE_UNUSED
,
int
infd
ATTRIBUTE_UNUSED
,
int
*
outfd
ATTRIBUTE_UNUSED
,
int
*
errfd
ATTRIBUTE_UNUSED
)
int
*
errfd
ATTRIBUTE_UNUSED
,
int
flags
ATTRIBUTE_UNUSED
)
{
ReportError
(
conn
,
VIR_ERR_INTERNAL_ERROR
,
__FUNCTION__
);
return
-
1
;
...
...
src/util.h
浏览文件 @
542039fa
...
...
@@ -144,4 +144,12 @@ const char *virEnumToString(const char *const*types,
const char *name ## TypeToString(int type); \
int name ## TypeFromString(const char*type);
#ifndef HAVE_GETUID
static
inline
int
getuid
(
void
)
{
return
0
;
}
#endif
#ifndef HAVE_GETGID
static
inline
int
getgid
(
void
)
{
return
0
;
}
#endif
#endif
/* __VIR_UTIL_H__ */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录