Projects
Eulaceura:Mainline
lwip
_service:obs_scm:0147-cleancode-rename-gazelle-...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:0147-cleancode-rename-gazelle-files-in-lwip.patch of Package lwip
From 20064655e4bb1c861da02bb5bdaa9631577fa8d8 Mon Sep 17 00:00:00 2001 From: Lemmy Huang <huangliming5@huawei.com> Date: Wed, 10 Jul 2024 14:08:23 +0800 Subject: [PATCH 1/2] cleancode: rename gazelle files in lwip Signed-off-by: Lemmy Huang <huangliming5@huawei.com> --- src/Makefile | 2 +- src/api/api_msg.c | 4 ++-- src/api/{gazelle_dir.mk => lwipgz_dir.mk} | 2 +- src/api/{posix_api.c => lwipgz_posix_api.c} | 4 ++-- src/api/sockets.c | 4 ++-- src/core/ipv4/icmp.c | 2 +- src/core/ipv4/ip4.c | 2 +- src/core/ipv4/ip4_frag.c | 4 ++-- src/core/ipv6/ip6.c | 2 +- src/core/{gazelle_dir.mk => lwipgz_dir.mk} | 0 src/core/pbuf.c | 4 ++-- src/core/tcp.c | 2 +- src/core/tcp_in.c | 4 ++-- src/core/tcp_out.c | 4 ++-- src/core/udp.c | 6 +++--- src/include/arch/cc.h | 8 ++++---- src/include/arch/sys_arch.h | 6 +++--- src/include/lwip/priv/sockets_priv.h | 4 ++-- src/include/lwip/priv/tcp_priv.h | 2 +- src/include/lwip/tcp.h | 2 +- src/include/{eventpoll.h => lwipgz_event.h} | 8 ++++---- src/include/{reg_sock.h => lwipgz_flow.h} | 6 +++--- src/include/{hlist.h => lwipgz_hlist.h} | 8 ++++---- src/include/{list.h => lwipgz_list.h} | 6 +++--- src/include/{lwiplog.h => lwipgz_log.h} | 6 +++--- src/include/{memp_def.h => lwipgz_memp.h} | 6 +++--- src/include/{dpdk_cksum.h => lwipgz_offload.h} | 6 +++--- src/include/{posix_api.h => lwipgz_posix_api.h} | 6 +++--- src/include/{lwipsock.h => lwipgz_sock.h} | 10 +++++----- src/include/lwipopts.h | 6 +++--- src/netif/ethernet.c | 2 +- src/netif/{gazelle_dir.mk => lwipgz_dir.mk} | 0 32 files changed, 69 insertions(+), 69 deletions(-) rename src/api/{gazelle_dir.mk => lwipgz_dir.mk} (70%) rename src/api/{posix_api.c => lwipgz_posix_api.c} (99%) rename src/core/{gazelle_dir.mk => lwipgz_dir.mk} (100%) rename src/include/{eventpoll.h => lwipgz_event.h} (95%) rename src/include/{reg_sock.h => lwipgz_flow.h} (97%) rename src/include/{hlist.h => lwipgz_hlist.h} (98%) rename src/include/{list.h => lwipgz_list.h} (97%) rename src/include/{lwiplog.h => lwipgz_log.h} (97%) rename src/include/{memp_def.h => lwipgz_memp.h} (96%) rename src/include/{dpdk_cksum.h => lwipgz_offload.h} (97%) rename src/include/{posix_api.h => lwipgz_posix_api.h} (97%) rename src/include/{lwipsock.h => lwipgz_sock.h} (97%) rename src/netif/{gazelle_dir.mk => lwipgz_dir.mk} (100%) diff --git a/src/Makefile b/src/Makefile index 06e64f6..bc716a3 100644 --- a/src/Makefile +++ b/src/Makefile @@ -38,7 +38,7 @@ DIRS = api core netif define register_dir SRCS += $(patsubst %, $(1)/%, $(2)) endef -include $(patsubst %, %/gazelle_dir.mk, $(DIRS)) +include $(patsubst %, %/lwipgz_dir.mk, $(DIRS)) OBJS = $(subst .c,.o,$(SRCS)) diff --git a/src/api/api_msg.c b/src/api/api_msg.c index 60801c4..91608ca 100644 --- a/src/api/api_msg.c +++ b/src/api/api_msg.c @@ -56,8 +56,8 @@ #if GAZELLE_ENABLE #include "lwip/sockets.h" -#include "lwipsock.h" -#include "posix_api.h" +#include "lwipgz_sock.h" +#include "lwipgz_posix_api.h" #endif #include <string.h> diff --git a/src/api/gazelle_dir.mk b/src/api/lwipgz_dir.mk similarity index 70% rename from src/api/gazelle_dir.mk rename to src/api/lwipgz_dir.mk index c069a29..49cc973 100644 --- a/src/api/gazelle_dir.mk +++ b/src/api/lwipgz_dir.mk @@ -1,3 +1,3 @@ -SRC = api_lib.c api_msg.c err.c netbuf.c netdb.c netifapi.c sockets.c tcpip.c posix_api.c sys_arch.c +SRC = api_lib.c api_msg.c err.c netbuf.c netdb.c netifapi.c sockets.c tcpip.c sys_arch.c lwipgz_posix_api.c $(eval $(call register_dir, api, $(SRC))) diff --git a/src/api/posix_api.c b/src/api/lwipgz_posix_api.c similarity index 99% rename from src/api/posix_api.c rename to src/api/lwipgz_posix_api.c index fc5a78a..b916c75 100644 --- a/src/api/posix_api.c +++ b/src/api/lwipgz_posix_api.c @@ -40,8 +40,8 @@ #include <rte_log.h> #include "lwip/err.h" -#include "lwipsock.h" -#include "posix_api.h" +#include "lwipgz_sock.h" +#include "lwipgz_posix_api.h" posix_api_t *posix_api; posix_api_t posix_api_val; diff --git a/src/api/sockets.c b/src/api/sockets.c index 9e6ba90..ae14407 100644 --- a/src/api/sockets.c +++ b/src/api/sockets.c @@ -65,8 +65,8 @@ #if GAZELLE_ENABLE #include <stdarg.h> -#include "lwipsock.h" -#include "posix_api.h" +#include "lwipgz_sock.h" +#include "lwipgz_posix_api.h" #endif #include <string.h> diff --git a/src/core/ipv4/icmp.c b/src/core/ipv4/icmp.c index ff1ecca..fa0795d 100644 --- a/src/core/ipv4/icmp.c +++ b/src/core/ipv4/icmp.c @@ -52,7 +52,7 @@ #include <string.h> #if GAZELLE_ENABLE && CHECKSUM_GEN_IP_HW -#include "dpdk_cksum.h" +#include "lwipgz_offload.h" #endif #ifdef LWIP_HOOK_FILENAME diff --git a/src/core/ipv4/ip4.c b/src/core/ipv4/ip4.c index 9e27023..1d3d954 100644 --- a/src/core/ipv4/ip4.c +++ b/src/core/ipv4/ip4.c @@ -60,7 +60,7 @@ #include <string.h> #if GAZELLE_ENABLE && (CHECKSUM_CHECK_IP_HW || CHECKSUM_GEN_IP_HW) -#include "dpdk_cksum.h" +#include "lwipgz_offload.h" #endif #ifdef LWIP_HOOK_FILENAME diff --git a/src/core/ipv4/ip4_frag.c b/src/core/ipv4/ip4_frag.c index 2ba473b..e209303 100644 --- a/src/core/ipv4/ip4_frag.c +++ b/src/core/ipv4/ip4_frag.c @@ -39,7 +39,7 @@ */ #include "lwip/opt.h" -#include "lwipsock.h" +#include "lwipgz_sock.h" #if LWIP_IPV4 @@ -53,7 +53,7 @@ #include <string.h> #if GAZELLE_ENABLE && CHECKSUM_GEN_IP_HW -#include "dpdk_cksum.h" +#include "lwipgz_offload.h" #endif #if IP_REASSEMBLY diff --git a/src/core/ipv6/ip6.c b/src/core/ipv6/ip6.c index 4ee73f6..f568d85 100644 --- a/src/core/ipv6/ip6.c +++ b/src/core/ipv6/ip6.c @@ -61,7 +61,7 @@ #include "lwip/stats.h" #if GAZELLE_ENABLE && (CHECKSUM_CHECK_IP_HW || CHECKSUM_GEN_IP_HW) -#include "dpdk_cksum.h" +#include "lwipgz_offload.h" #endif #ifdef LWIP_HOOK_FILENAME diff --git a/src/core/gazelle_dir.mk b/src/core/lwipgz_dir.mk similarity index 100% rename from src/core/gazelle_dir.mk rename to src/core/lwipgz_dir.mk diff --git a/src/core/pbuf.c b/src/core/pbuf.c index 914d1f4..586da07 100644 --- a/src/core/pbuf.c +++ b/src/core/pbuf.c @@ -69,7 +69,7 @@ */ #include "lwip/opt.h" -#include "lwipsock.h" +#include "lwipgz_sock.h" #include "lwip/pbuf.h" #include "lwip/stats.h" @@ -86,7 +86,7 @@ #endif #if GAZELLE_ENABLE #include <rte_prefetch.h> -#include "dpdk_cksum.h" +#include "lwipgz_offload.h" #endif #include <string.h> diff --git a/src/core/tcp.c b/src/core/tcp.c index cf6b76d..5c7d317 100644 --- a/src/core/tcp.c +++ b/src/core/tcp.c @@ -116,7 +116,7 @@ #include <string.h> #include <pthread.h> -#include "lwipsock.h" +#include "lwipgz_sock.h" #ifdef LWIP_HOOK_FILENAME #include LWIP_HOOK_FILENAME diff --git a/src/core/tcp_in.c b/src/core/tcp_in.c index 08796b8..1e9b44f 100644 --- a/src/core/tcp_in.c +++ b/src/core/tcp_in.c @@ -42,7 +42,7 @@ */ #include "lwip/opt.h" -#include "lwipsock.h" +#include "lwipgz_sock.h" #if LWIP_TCP /* don't build if not configured for use in lwipopts.h */ @@ -66,7 +66,7 @@ #include <string.h> #if GAZELLE_ENABLE && CHECKSUM_CHECK_TCP_HW -#include <dpdk_cksum.h> +#include <lwipgz_offload.h> #endif /* CHECKSUM_CHECK_TCP_HW */ #ifdef LWIP_HOOK_FILENAME diff --git a/src/core/tcp_out.c b/src/core/tcp_out.c index ed0c791..aaa3872 100644 --- a/src/core/tcp_out.c +++ b/src/core/tcp_out.c @@ -81,10 +81,10 @@ #include <string.h> #if GAZELLE_ENABLE -#include "lwipsock.h" +#include "lwipgz_sock.h" #include <rte_prefetch.h> #if CHECKSUM_GEN_TCP_HW -#include "dpdk_cksum.h" +#include "lwipgz_offload.h" #endif #endif diff --git a/src/core/udp.c b/src/core/udp.c index fd42bc2..0d09e7e 100644 --- a/src/core/udp.c +++ b/src/core/udp.c @@ -68,9 +68,9 @@ #if GAZELLE_UDP_ENABLE #include <pthread.h> #include <rte_prefetch.h> -#include "lwipsock.h" -#include "dpdk_cksum.h" -#include "reg_sock.h" +#include "lwipgz_sock.h" +#include "lwipgz_offload.h" +#include "lwipgz_flow.h" #endif #ifndef UDP_LOCAL_PORT_RANGE_START diff --git a/src/include/arch/cc.h b/src/include/arch/cc.h index 10d667b..9fc6089 100644 --- a/src/include/arch/cc.h +++ b/src/include/arch/cc.h @@ -30,15 +30,15 @@ * */ -#ifndef LWIP_ARCH_CC_H -#define LWIP_ARCH_CC_H +#ifndef _LWIP_ARCH_CC_H_ +#define _LWIP_ARCH_CC_H_ #include <stdint.h> #include <stdlib.h> #include <sys/time.h> #include <sys/types.h> -#include "lwiplog.h" +#include "lwipgz_log.h" #define LWIP_NOASSERT @@ -78,4 +78,4 @@ void alloc_memory_##variable_name(void) \ sys_hugepage_malloc(mpname, LWIP_MEM_ALIGN_BUFFER(size)); \ } -#endif /* LWIP_ARCH_CC_H */ +#endif /* _LWIP_ARCH_CC_H_ */ diff --git a/src/include/arch/sys_arch.h b/src/include/arch/sys_arch.h index bf7e437..0699d76 100644 --- a/src/include/arch/sys_arch.h +++ b/src/include/arch/sys_arch.h @@ -30,8 +30,8 @@ * */ -#ifndef LWIP_ARCH_SYS_ARCH_H -#define LWIP_ARCH_SYS_ARCH_H +#ifndef _LWIP_ARCH_SYS_ARCH_H_ +#define _LWIP_ARCH_SYS_ARCH_H_ #include <rte_cycles.h> #include <rte_debug.h> @@ -141,4 +141,4 @@ __attribute__((always_inline)) inline int update_timeout(int timeout, uint32_t p } } -#endif /* LWIP_ARCH_SYS_ARCH_H */ +#endif /* _LWIP_ARCH_SYS_ARCH_H_ */ diff --git a/src/include/lwip/priv/sockets_priv.h b/src/include/lwip/priv/sockets_priv.h index f438206..432f09b 100644 --- a/src/include/lwip/priv/sockets_priv.h +++ b/src/include/lwip/priv/sockets_priv.h @@ -45,10 +45,10 @@ #include "lwip/sockets.h" #include "lwip/sys.h" -/* move some definitions to the lwipsock.h for libnet to use, and +/* move some definitions to the lwipgz_sock.h for libnet to use, and * at the same time avoid conflict between lwip/sockets.h and sys/socket.h */ -#include "lwipsock.h" +#include "lwipgz_sock.h" #ifdef __cplusplus extern "C" { diff --git a/src/include/lwip/priv/tcp_priv.h b/src/include/lwip/priv/tcp_priv.h index 7ef00fa..3e91442 100644 --- a/src/include/lwip/priv/tcp_priv.h +++ b/src/include/lwip/priv/tcp_priv.h @@ -341,7 +341,7 @@ extern PER_THREAD struct tcp_pcb *tcp_tw_pcbs; /* List of all TCP PCBs in T extern PER_THREAD struct tcp_pcb ** tcp_pcb_lists[NUM_TCP_PCB_LISTS]; #if GAZELLE_ENABLE -#include "reg_sock.h" +#include "lwipgz_flow.h" static inline int vdev_reg_done(enum reg_ring_type reg_type, const struct tcp_pcb *pcb) { LWIP_ASSERT("Invalid parameter", pcb != NULL); diff --git a/src/include/lwip/tcp.h b/src/include/lwip/tcp.h index 5097179..1e77b3b 100644 --- a/src/include/lwip/tcp.h +++ b/src/include/lwip/tcp.h @@ -53,7 +53,7 @@ #if GAZELLE_TCP_PCB_HASH #include "lwip/sys.h" -#include "hlist.h" +#include "lwipgz_hlist.h" #endif #ifdef __cplusplus diff --git a/src/include/eventpoll.h b/src/include/lwipgz_event.h similarity index 95% rename from src/include/eventpoll.h rename to src/include/lwipgz_event.h index 5bc5206..d51b8f5 100644 --- a/src/include/eventpoll.h +++ b/src/include/lwipgz_event.h @@ -30,14 +30,14 @@ * */ -#ifndef __EVENTPOLL_H__ -#define __EVENTPOLL_H__ +#ifndef __LWIPGZ_EVENT_H__ +#define __LWIPGZ_EVENT_H__ #include <sys/epoll.h> #include "arch/sys_arch.h" #include "lwip/api.h" -#include "list.h" +#include "lwipgz_list.h" #define MAX_EPOLLFDS 32 @@ -72,4 +72,4 @@ extern void del_sock_event_nolock(struct lwip_sock *sock, uint32_t event); extern int32_t lstack_epoll_close(int32_t); -#endif /* __EVENTPOLL_H__ */ +#endif /* __LWIPGZ_EVENT_H__ */ diff --git a/src/include/reg_sock.h b/src/include/lwipgz_flow.h similarity index 97% rename from src/include/reg_sock.h rename to src/include/lwipgz_flow.h index 04d1a8f..b7d4b5a 100644 --- a/src/include/reg_sock.h +++ b/src/include/lwipgz_flow.h @@ -30,8 +30,8 @@ * */ -#ifndef __REG_SOCK_H__ -#define __REG_SOCK_H__ +#ifndef __LWIPGZ_FLOW__ +#define __LWIPGZ_FLOW__ #include <stdbool.h> @@ -104,4 +104,4 @@ struct reg_ring_msg { extern int vdev_reg_xmit(enum reg_ring_type type, struct gazelle_quintuple *qtuple); extern bool port_in_stack_queue(gz_addr_t *src_ip, gz_addr_t *dst_ip, uint16_t src_port, uint16_t dst_port); -#endif /* __REG_SOCK_H__ */ +#endif /* __LWIPGZ_FLOW__ */ diff --git a/src/include/hlist.h b/src/include/lwipgz_hlist.h similarity index 98% rename from src/include/hlist.h rename to src/include/lwipgz_hlist.h index 988b017..459ab51 100644 --- a/src/include/hlist.h +++ b/src/include/lwipgz_hlist.h @@ -30,10 +30,10 @@ * */ -#ifndef __HLIST_H__ -#define __HLIST_H__ +#ifndef __LWIPGZ_HLIST_H__ +#define __LWIPGZ_HLIST_H__ -#include "list.h" +#include "lwipgz_list.h" //#if GAZELLE_TCP_PCB_HASH struct hlist_node { @@ -230,4 +230,4 @@ static inline void hlist_ctl_add_after(struct hlist_node *n, struct hlist_node * } //#endif /* GAZELLE_TCP_PCB_HASH */ -#endif /* __HLIST_H__ */ +#endif /* __LWIPGZ_HLIST_H__ */ diff --git a/src/include/list.h b/src/include/lwipgz_list.h similarity index 97% rename from src/include/list.h rename to src/include/lwipgz_list.h index 11f94c2..3ee6650 100644 --- a/src/include/list.h +++ b/src/include/lwipgz_list.h @@ -30,8 +30,8 @@ * */ -#ifndef __LIST_H__ -#define __LIST_H__ +#ifndef __LWIPGZ_LIST_H__ +#define __LWIPGZ_LIST_H__ #ifndef NULL #ifdef __cplusplus @@ -107,4 +107,4 @@ static inline int list_is_empty(const struct list_node *h) (type *)((char *)__mptr - offsetof(type,member));}) #endif /* container_of */ -#endif /* __LIST_H__ */ +#endif /* __LWIPGZ_LIST_H__ */ diff --git a/src/include/lwiplog.h b/src/include/lwipgz_log.h similarity index 97% rename from src/include/lwiplog.h rename to src/include/lwipgz_log.h index 80ed0fc..9e01a5f 100644 --- a/src/include/lwiplog.h +++ b/src/include/lwipgz_log.h @@ -30,8 +30,8 @@ * */ -#ifndef __LWIPLOG_H__ -#define __LWIPLOG_H__ +#ifndef __LWIPGZ_LOG__ +#define __LWIPGZ_LOG__ #include <stdio.h> #include <sys/syscall.h> @@ -78,4 +78,4 @@ do { LWIP_PLATFORM_LOG(LWIP_LOG_FATAL, "Assertion \"%s\" failed at line %d in %s #endif /* GAZELLE_USE_DPDK_LOG */ -#endif /* __LWIPLOG_H__ */ +#endif /* __LWIPGZ_LOG__ */ diff --git a/src/include/memp_def.h b/src/include/lwipgz_memp.h similarity index 96% rename from src/include/memp_def.h rename to src/include/lwipgz_memp.h index 43d2a25..e1a2873 100644 --- a/src/include/memp_def.h +++ b/src/include/lwipgz_memp.h @@ -30,8 +30,8 @@ * */ -#ifndef __MEMP_DEF_H__ -#define __MEMP_DEF_H__ +#ifndef __LWIPGZ_MEMP_H__ +#define __LWIPGZ_MEMP_H__ #include "lwip/opt.h" #include "arch/cc.h" @@ -74,4 +74,4 @@ static inline int hugepage_init(void) return 0; } -#endif /* __MEMP_DEF_H__ */ +#endif /* __LWIPGZ_MEMP_H__ */ diff --git a/src/include/dpdk_cksum.h b/src/include/lwipgz_offload.h similarity index 97% rename from src/include/dpdk_cksum.h rename to src/include/lwipgz_offload.h index 115155d..0b9d8ee 100644 --- a/src/include/dpdk_cksum.h +++ b/src/include/lwipgz_offload.h @@ -30,8 +30,8 @@ * */ -#ifndef __DPDK_CKSUM_H__ -#define __DPDK_CKSUM_H__ +#ifndef __LWIPGZ_OFFLOAD_H__ +#define __LWIPGZ_OFFLOAD_H__ #include "lwipopts.h" @@ -110,4 +110,4 @@ static inline void udph_cksum_set(struct pbuf *p, u16_t len) { #endif /* (CHECKSUM_GEN_TCP_HW || CHECKSUM_GEN_UDP_HW) */ #endif /* GAZELLE_ENABLE */ -#endif /* __DPDK_CKSUM_H__ */ +#endif /* __LWIPGZ_OFFLOAD_H__ */ diff --git a/src/include/posix_api.h b/src/include/lwipgz_posix_api.h similarity index 97% rename from src/include/posix_api.h rename to src/include/lwipgz_posix_api.h index cde37e3..4e827c1 100644 --- a/src/include/posix_api.h +++ b/src/include/lwipgz_posix_api.h @@ -30,8 +30,8 @@ * */ -#ifndef __POSIX_API_H__ -#define __POSIX_API_H__ +#ifndef __LWIPGZ_POSIX_API_H__ +#define __LWIPGZ_POSIX_API_H__ #include <signal.h> #include <sys/poll.h> @@ -89,4 +89,4 @@ int posix_api_init(void); void posix_api_free(void); void posix_api_fork(void); -#endif /* __POSIX_API_H__ */ +#endif /* __LWIPGZ_POSIX_API_H__ */ diff --git a/src/include/lwipsock.h b/src/include/lwipgz_sock.h similarity index 97% rename from src/include/lwipsock.h rename to src/include/lwipgz_sock.h index 7ba685a..01b39e4 100644 --- a/src/include/lwipsock.h +++ b/src/include/lwipgz_sock.h @@ -30,16 +30,16 @@ * */ -#ifndef __LWIPSOCK_H__ -#define __LWIPSOCK_H__ +#ifndef __LWIPGZ_SOCK_H__ +#define __LWIPGZ_SOCK_H__ #include <semaphore.h> #include "lwip/opt.h" #include "lwip/api.h" -#include "eventpoll.h" +#include "lwipgz_event.h" -/* move some definitions to the lwipsock.h for libnet to use, and +/* move some definitions to the lwipgz_sock.h for libnet to use, and * at the same time avoid conflict between lwip/sockets.h and sys/socket.h */ @@ -198,4 +198,4 @@ struct lwip_sock *get_socket_by_fd(int s); void lwip_sock_init(void); void lwip_exit(void); -#endif /* __LWIPSOCK_H__ */ +#endif /* __LWIPGZ_SOCK_H__ */ diff --git a/src/include/lwipopts.h b/src/include/lwipopts.h index 0b18629..e428f2a 100644 --- a/src/include/lwipopts.h +++ b/src/include/lwipopts.h @@ -30,8 +30,8 @@ * */ -#ifndef __LWIPOPTS_H__ -#define __LWIPOPTS_H__ +#ifndef _LWIPOPTS_H_ +#define _LWIPOPTS_H_ /* ------------------------------------- @@ -299,4 +299,4 @@ */ #define LWIP_IPV6_MLD_V2 1 -#endif /* __LWIPOPTS_H__ */ +#endif /* _LWIPOPTS_H_ */ diff --git a/src/netif/ethernet.c b/src/netif/ethernet.c index 5ba6d95..385a50a 100644 --- a/src/netif/ethernet.c +++ b/src/netif/ethernet.c @@ -57,7 +57,7 @@ #endif /* PPPOE_SUPPORT */ #if GAZELLE_ENABLE && (CHECKSUM_GEN_TCP_HW || CHECKSUM_GEN_IP_HW) -#include "dpdk_cksum.h" +#include "lwipgz_offload.h" #endif #ifdef LWIP_HOOK_FILENAME diff --git a/src/netif/gazelle_dir.mk b/src/netif/lwipgz_dir.mk similarity index 100% rename from src/netif/gazelle_dir.mk rename to src/netif/lwipgz_dir.mk -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2