diff options
-rw-r--r-- | emulators/qemu-devel/Makefile | 4 | ||||
-rw-r--r-- | emulators/qemu-devel/distinfo | 4 | ||||
-rw-r--r-- | emulators/qemu-devel/files/kqemu-patch | 3 | ||||
-rw-r--r-- | emulators/qemu-devel/files/patch-slirp | 198 | ||||
-rw-r--r-- | emulators/qemu-devel/pkg-descr | 4 | ||||
-rw-r--r-- | emulators/qemu/Makefile | 4 | ||||
-rw-r--r-- | emulators/qemu/distinfo | 4 | ||||
-rw-r--r-- | emulators/qemu/files/kqemu-patch | 3 | ||||
-rw-r--r-- | emulators/qemu/files/patch-slirp | 198 | ||||
-rw-r--r-- | emulators/qemu/pkg-descr | 4 |
10 files changed, 416 insertions, 10 deletions
diff --git a/emulators/qemu-devel/Makefile b/emulators/qemu-devel/Makefile index 5bec3cc93a84..100f1bc26700 100644 --- a/emulators/qemu-devel/Makefile +++ b/emulators/qemu-devel/Makefile @@ -6,12 +6,12 @@ # PORTNAME= qemu -PORTVERSION= 0.7.0s.20050502 +PORTVERSION= 0.7.0s.20050528 CATEGORIES= emulators MASTER_SITES= http://www.qemu.org/ \ http://people.fruitsalad.org/nox/qemu/ \ http://dad-answers.com/qemu/ -DISTNAME= ${PORTNAME}-snapshot-2005-05-02_23 +DISTNAME= ${PORTNAME}-snapshot-2005-05-28_23 EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= nox@jelal.kn-bremen.de diff --git a/emulators/qemu-devel/distinfo b/emulators/qemu-devel/distinfo index 5d4b1c2ede35..a6120983bc64 100644 --- a/emulators/qemu-devel/distinfo +++ b/emulators/qemu-devel/distinfo @@ -1,4 +1,4 @@ -MD5 (qemu-snapshot-2005-05-02_23.tar.bz2) = b7d4115a68bf93a9ad2c0c64a0c59137 -SIZE (qemu-snapshot-2005-05-02_23.tar.bz2) = 1020482 +MD5 (qemu-snapshot-2005-05-28_23.tar.bz2) = f232843519396178b921676475d49615 +SIZE (qemu-snapshot-2005-05-28_23.tar.bz2) = 1020104 MD5 (kqemu-0.6.2-1.tar.gz) = c6bb3b40fb3d526d731eb0f1f9dee7ee SIZE (kqemu-0.6.2-1.tar.gz) = 21002 diff --git a/emulators/qemu-devel/files/kqemu-patch b/emulators/qemu-devel/files/kqemu-patch index ba82ba368808..ae0064ba3be7 100644 --- a/emulators/qemu-devel/files/kqemu-patch +++ b/emulators/qemu-devel/files/kqemu-patch @@ -1,10 +1,11 @@ Index: qemu/kqemu/Makefile -@@ -1,62 +1,5 @@ +@@ -1,62 +1,6 @@ -ifeq ($(PATCHLEVEL),) -# compile in kqemu directory +KMOD= kqemu +SRCS= kmod_bsd.c +OBJS= kqemu-mod-i386.o ++WERROR= --include ../config-host.mak - diff --git a/emulators/qemu-devel/files/patch-slirp b/emulators/qemu-devel/files/patch-slirp new file mode 100644 index 000000000000..6bf955431495 --- /dev/null +++ b/emulators/qemu-devel/files/patch-slirp @@ -0,0 +1,198 @@ +From: gbeauchesne@mandriva.com (Gwenole Beauchesne) +Subject: [Qemu-devel] [PATCH] slirp 64-bit fixes +Date: Tue, 17 May 2005 23:46:40 +0000 (UTC) + +Hi, + +Here are some 64-bit fixes to slirp. Tested on x86_64 as -user-net with a +single FTP transaction. You may not need all hunks though. + +2005-05-15 Gwenole Beauchesne <gbeauchesne@mandriva.com> + + * Merge slirp 64-bit fixes from Basilisk II tree. + +--- qemu-0.7.0/slirp/bootp.c.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/bootp.c 2005-05-17 07:29:29.000000000 +0200 +@@ -238,7 +238,7 @@ static void bootp_reply(struct bootp_t * + + void bootp_input(struct mbuf *m) + { +- struct bootp_t *bp = (struct bootp_t *)m->m_data; ++ struct bootp_t *bp = mtod(m, struct bootp_t *); + + if (bp->bp_op == BOOTP_REQUEST) { + bootp_reply(bp); +--- qemu-0.7.0/slirp/bootp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/bootp.h 2005-05-17 07:29:29.000000000 +0200 +@@ -97,9 +97,9 @@ struct bootp_t { + uint8_t bp_htype; + uint8_t bp_hlen; + uint8_t bp_hops; +- unsigned long bp_xid; +- unsigned short bp_secs; +- unsigned short unused; ++ uint32_t bp_xid; ++ uint16_t bp_secs; ++ uint16_t unused; + struct in_addr bp_ciaddr; + struct in_addr bp_yiaddr; + struct in_addr bp_siaddr; +--- qemu-0.7.0/slirp/ip_icmp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/ip_icmp.h 2005-05-17 07:29:29.000000000 +0200 +@@ -83,8 +83,8 @@ struct icmp { + struct ip idi_ip; + /* options and then 64 bits of data */ + } id_ip; +- u_long id_mask; +- char id_data[1]; ++ uint32_t id_mask; ++ char id_data[1]; + } icmp_dun; + #define icmp_otime icmp_dun.id_ts.its_otime + #define icmp_rtime icmp_dun.id_ts.its_rtime +--- qemu-0.7.0/slirp/libslirp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/libslirp.h 2005-05-17 07:29:29.000000000 +0200 +@@ -9,6 +9,10 @@ int inet_aton(const char *cp, struct in_ + #include <arpa/inet.h> + #endif + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + void slirp_init(void); + + void slirp_select_fill(int *pnfds, +@@ -29,4 +33,8 @@ int slirp_add_exec(int do_pty, const cha + + extern const char *tftp_prefix; + ++#ifdef __cplusplus ++} ++#endif ++ + #endif +--- qemu-0.7.0/slirp/udp.c.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/udp.c 2005-05-17 07:29:29.000000000 +0200 +@@ -420,10 +420,16 @@ struct talk_request { + #endif + + struct cu_header { +- char dest[8]; +- short family; +- u_short port; +- u_long addr; ++ uint16_t d_family; // destination family ++ uint16_t d_port; // destination port ++ uint32_t d_addr; // destination address ++ uint16_t s_family; // source family ++ uint16_t s_port; // source port ++ uint32_t s_addr; // source address ++ uint32_t seqn; // sequence number ++ uint16_t message; // message ++ uint16_t data_type; // data type ++ uint16_t pkt_len; // packet length + } *cu_head; + + switch(so->so_emu) { +@@ -610,8 +616,8 @@ struct cu_header { + if (getsockname(so->s, (struct sockaddr *)&addr, &addrlen) < 0) + return; + cu_head = mtod(m, struct cu_header *); +- cu_head->port = addr.sin_port; +- cu_head->addr = (u_long) our_addr.s_addr; ++ cu_head->s_port = addr.sin_port; ++ cu_head->s_addr = our_addr.s_addr; + } + + return; +--- qemu-0.7.0/slirp/udp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/udp.h 2005-05-17 07:29:29.000000000 +0200 +@@ -94,6 +94,7 @@ struct udpstat { + + extern struct udpstat udpstat; + extern struct socket udb; ++struct mbuf; + + void udp_init _P((void)); + void udp_input _P((register struct mbuf *, int)); +--- qemu-0.7.0/slirp/slirp_config.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/slirp_config.h 2005-05-17 08:00:23.000000000 +0200 +@@ -85,9 +85,6 @@ + /* Define if you have sys/bitypes.h */ + #undef HAVE_SYS_BITYPES_H + +-/* Define if the machine is big endian */ +-//#undef WORDS_BIGENDIAN +- + /* Define if your sprintf returns char * instead of int */ + #undef BAD_SPRINTF + +@@ -139,19 +136,6 @@ + /* Define if you don't have u_int32_t etc. typedef'd */ + #undef NEED_TYPEDEFS + +-/* Define to sizeof(char) */ +-#define SIZEOF_CHAR 1 +- +-/* Define to sizeof(short) */ +-#define SIZEOF_SHORT 2 +- +-/* Define to sizeof(int) */ +-#define SIZEOF_INT 4 +- +-/* Define to sizeof(char *) */ +-/* XXX: patch it */ +-#define SIZEOF_CHAR_P 4 +- + /* Define if you have random() */ + #undef HAVE_RANDOM + +--- qemu-0.7.0/configure.slirp-64bit-fixes 2005-05-17 07:05:18.000000000 +0200 ++++ qemu-0.7.0/configure 2005-05-17 08:04:55.000000000 +0200 +@@ -614,6 +614,36 @@ if [ "$bsd" = "yes" ] ; then + echo "#define _BSD 1" >> $config_h + fi + ++# detect type sizes for slirp ++for type in char short int char_p; do ++ case $type in ++ *_p) c_type="`echo $type | sed -e 's/_p//'` *";; ++ *) c_type=$type;; ++ esac ++ d_type="SIZEOF_`echo $type | tr '[:lower:]' '[:upper:]'`" ++ d_size= ++ for size in 1 2 4 8 16; do ++ cat >$TMPC << EOF ++int main(void) ++{ ++ static int test_array[1 - 2 * !(((long)(sizeof($c_type))) == $size)]; ++ test_array[0] = 0; ++ return 0; ++} ++EOF ++ if $cc -o $TMPO -c $TMPC 2>/dev/null; then ++ d_size=$size ++ break; ++ fi ++ done ++ rm -f $TMPC $TMPO $TMPE ++ if test -n "$d_size"; then ++ echo "#define $d_type $d_size" >> $config_h ++ else ++ echo "#error \"undefined $d_type\"" >> $config_h ++ fi ++done ++ + for target in $target_list; do + + target_dir="$target" + + +_______________________________________________ +Qemu-devel mailing list +Qemu-devel@nongnu.org +http://lists.nongnu.org/mailman/listinfo/qemu-devel + + + diff --git a/emulators/qemu-devel/pkg-descr b/emulators/qemu-devel/pkg-descr index 8b0cc55ed6e9..40c482e1bc33 100644 --- a/emulators/qemu-devel/pkg-descr +++ b/emulators/qemu-devel/pkg-descr @@ -12,5 +12,9 @@ launch the Wine Windows API emulator or to ease cross-compilation and cross-debugging. As QEMU requires no host kernel patches to run, it is very safe and easy to use. +(but kqemu is now also supported for the i386 on i386 case) + +See also the preconfigured system images on http://www.freeoszoo.org/ +Many live cd isos also work. WWW: http://fabrice.bellard.free.fr/qemu/ diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile index 5bec3cc93a84..100f1bc26700 100644 --- a/emulators/qemu/Makefile +++ b/emulators/qemu/Makefile @@ -6,12 +6,12 @@ # PORTNAME= qemu -PORTVERSION= 0.7.0s.20050502 +PORTVERSION= 0.7.0s.20050528 CATEGORIES= emulators MASTER_SITES= http://www.qemu.org/ \ http://people.fruitsalad.org/nox/qemu/ \ http://dad-answers.com/qemu/ -DISTNAME= ${PORTNAME}-snapshot-2005-05-02_23 +DISTNAME= ${PORTNAME}-snapshot-2005-05-28_23 EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= nox@jelal.kn-bremen.de diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo index 5d4b1c2ede35..a6120983bc64 100644 --- a/emulators/qemu/distinfo +++ b/emulators/qemu/distinfo @@ -1,4 +1,4 @@ -MD5 (qemu-snapshot-2005-05-02_23.tar.bz2) = b7d4115a68bf93a9ad2c0c64a0c59137 -SIZE (qemu-snapshot-2005-05-02_23.tar.bz2) = 1020482 +MD5 (qemu-snapshot-2005-05-28_23.tar.bz2) = f232843519396178b921676475d49615 +SIZE (qemu-snapshot-2005-05-28_23.tar.bz2) = 1020104 MD5 (kqemu-0.6.2-1.tar.gz) = c6bb3b40fb3d526d731eb0f1f9dee7ee SIZE (kqemu-0.6.2-1.tar.gz) = 21002 diff --git a/emulators/qemu/files/kqemu-patch b/emulators/qemu/files/kqemu-patch index ba82ba368808..ae0064ba3be7 100644 --- a/emulators/qemu/files/kqemu-patch +++ b/emulators/qemu/files/kqemu-patch @@ -1,10 +1,11 @@ Index: qemu/kqemu/Makefile -@@ -1,62 +1,5 @@ +@@ -1,62 +1,6 @@ -ifeq ($(PATCHLEVEL),) -# compile in kqemu directory +KMOD= kqemu +SRCS= kmod_bsd.c +OBJS= kqemu-mod-i386.o ++WERROR= --include ../config-host.mak - diff --git a/emulators/qemu/files/patch-slirp b/emulators/qemu/files/patch-slirp new file mode 100644 index 000000000000..6bf955431495 --- /dev/null +++ b/emulators/qemu/files/patch-slirp @@ -0,0 +1,198 @@ +From: gbeauchesne@mandriva.com (Gwenole Beauchesne) +Subject: [Qemu-devel] [PATCH] slirp 64-bit fixes +Date: Tue, 17 May 2005 23:46:40 +0000 (UTC) + +Hi, + +Here are some 64-bit fixes to slirp. Tested on x86_64 as -user-net with a +single FTP transaction. You may not need all hunks though. + +2005-05-15 Gwenole Beauchesne <gbeauchesne@mandriva.com> + + * Merge slirp 64-bit fixes from Basilisk II tree. + +--- qemu-0.7.0/slirp/bootp.c.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/bootp.c 2005-05-17 07:29:29.000000000 +0200 +@@ -238,7 +238,7 @@ static void bootp_reply(struct bootp_t * + + void bootp_input(struct mbuf *m) + { +- struct bootp_t *bp = (struct bootp_t *)m->m_data; ++ struct bootp_t *bp = mtod(m, struct bootp_t *); + + if (bp->bp_op == BOOTP_REQUEST) { + bootp_reply(bp); +--- qemu-0.7.0/slirp/bootp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/bootp.h 2005-05-17 07:29:29.000000000 +0200 +@@ -97,9 +97,9 @@ struct bootp_t { + uint8_t bp_htype; + uint8_t bp_hlen; + uint8_t bp_hops; +- unsigned long bp_xid; +- unsigned short bp_secs; +- unsigned short unused; ++ uint32_t bp_xid; ++ uint16_t bp_secs; ++ uint16_t unused; + struct in_addr bp_ciaddr; + struct in_addr bp_yiaddr; + struct in_addr bp_siaddr; +--- qemu-0.7.0/slirp/ip_icmp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/ip_icmp.h 2005-05-17 07:29:29.000000000 +0200 +@@ -83,8 +83,8 @@ struct icmp { + struct ip idi_ip; + /* options and then 64 bits of data */ + } id_ip; +- u_long id_mask; +- char id_data[1]; ++ uint32_t id_mask; ++ char id_data[1]; + } icmp_dun; + #define icmp_otime icmp_dun.id_ts.its_otime + #define icmp_rtime icmp_dun.id_ts.its_rtime +--- qemu-0.7.0/slirp/libslirp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/libslirp.h 2005-05-17 07:29:29.000000000 +0200 +@@ -9,6 +9,10 @@ int inet_aton(const char *cp, struct in_ + #include <arpa/inet.h> + #endif + ++#ifdef __cplusplus ++extern "C" { ++#endif ++ + void slirp_init(void); + + void slirp_select_fill(int *pnfds, +@@ -29,4 +33,8 @@ int slirp_add_exec(int do_pty, const cha + + extern const char *tftp_prefix; + ++#ifdef __cplusplus ++} ++#endif ++ + #endif +--- qemu-0.7.0/slirp/udp.c.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/udp.c 2005-05-17 07:29:29.000000000 +0200 +@@ -420,10 +420,16 @@ struct talk_request { + #endif + + struct cu_header { +- char dest[8]; +- short family; +- u_short port; +- u_long addr; ++ uint16_t d_family; // destination family ++ uint16_t d_port; // destination port ++ uint32_t d_addr; // destination address ++ uint16_t s_family; // source family ++ uint16_t s_port; // source port ++ uint32_t s_addr; // source address ++ uint32_t seqn; // sequence number ++ uint16_t message; // message ++ uint16_t data_type; // data type ++ uint16_t pkt_len; // packet length + } *cu_head; + + switch(so->so_emu) { +@@ -610,8 +616,8 @@ struct cu_header { + if (getsockname(so->s, (struct sockaddr *)&addr, &addrlen) < 0) + return; + cu_head = mtod(m, struct cu_header *); +- cu_head->port = addr.sin_port; +- cu_head->addr = (u_long) our_addr.s_addr; ++ cu_head->s_port = addr.sin_port; ++ cu_head->s_addr = our_addr.s_addr; + } + + return; +--- qemu-0.7.0/slirp/udp.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/udp.h 2005-05-17 07:29:29.000000000 +0200 +@@ -94,6 +94,7 @@ struct udpstat { + + extern struct udpstat udpstat; + extern struct socket udb; ++struct mbuf; + + void udp_init _P((void)); + void udp_input _P((register struct mbuf *, int)); +--- qemu-0.7.0/slirp/slirp_config.h.slirp-64bit-fixes 2005-04-27 22:52:05.000000000 +0200 ++++ qemu-0.7.0/slirp/slirp_config.h 2005-05-17 08:00:23.000000000 +0200 +@@ -85,9 +85,6 @@ + /* Define if you have sys/bitypes.h */ + #undef HAVE_SYS_BITYPES_H + +-/* Define if the machine is big endian */ +-//#undef WORDS_BIGENDIAN +- + /* Define if your sprintf returns char * instead of int */ + #undef BAD_SPRINTF + +@@ -139,19 +136,6 @@ + /* Define if you don't have u_int32_t etc. typedef'd */ + #undef NEED_TYPEDEFS + +-/* Define to sizeof(char) */ +-#define SIZEOF_CHAR 1 +- +-/* Define to sizeof(short) */ +-#define SIZEOF_SHORT 2 +- +-/* Define to sizeof(int) */ +-#define SIZEOF_INT 4 +- +-/* Define to sizeof(char *) */ +-/* XXX: patch it */ +-#define SIZEOF_CHAR_P 4 +- + /* Define if you have random() */ + #undef HAVE_RANDOM + +--- qemu-0.7.0/configure.slirp-64bit-fixes 2005-05-17 07:05:18.000000000 +0200 ++++ qemu-0.7.0/configure 2005-05-17 08:04:55.000000000 +0200 +@@ -614,6 +614,36 @@ if [ "$bsd" = "yes" ] ; then + echo "#define _BSD 1" >> $config_h + fi + ++# detect type sizes for slirp ++for type in char short int char_p; do ++ case $type in ++ *_p) c_type="`echo $type | sed -e 's/_p//'` *";; ++ *) c_type=$type;; ++ esac ++ d_type="SIZEOF_`echo $type | tr '[:lower:]' '[:upper:]'`" ++ d_size= ++ for size in 1 2 4 8 16; do ++ cat >$TMPC << EOF ++int main(void) ++{ ++ static int test_array[1 - 2 * !(((long)(sizeof($c_type))) == $size)]; ++ test_array[0] = 0; ++ return 0; ++} ++EOF ++ if $cc -o $TMPO -c $TMPC 2>/dev/null; then ++ d_size=$size ++ break; ++ fi ++ done ++ rm -f $TMPC $TMPO $TMPE ++ if test -n "$d_size"; then ++ echo "#define $d_type $d_size" >> $config_h ++ else ++ echo "#error \"undefined $d_type\"" >> $config_h ++ fi ++done ++ + for target in $target_list; do + + target_dir="$target" + + +_______________________________________________ +Qemu-devel mailing list +Qemu-devel@nongnu.org +http://lists.nongnu.org/mailman/listinfo/qemu-devel + + + diff --git a/emulators/qemu/pkg-descr b/emulators/qemu/pkg-descr index 8b0cc55ed6e9..40c482e1bc33 100644 --- a/emulators/qemu/pkg-descr +++ b/emulators/qemu/pkg-descr @@ -12,5 +12,9 @@ launch the Wine Windows API emulator or to ease cross-compilation and cross-debugging. As QEMU requires no host kernel patches to run, it is very safe and easy to use. +(but kqemu is now also supported for the i386 on i386 case) + +See also the preconfigured system images on http://www.freeoszoo.org/ +Many live cd isos also work. WWW: http://fabrice.bellard.free.fr/qemu/ |