On 10/7/19 4:28 PM, Petr Štetiar wrote: > In order to make the source code usable and testable separately out of > buildroot. > > Signed-off-by: Petr Štetiar <yn...@true.cz>
Acked-by: Hauke Mehrtens <ha...@hauke-m.de> I Like this especially as this is pretty big. > --- > > tl;dr this is just a first step, having more in the pipeline[0] > > I'm working on a proof-of-concept CI suite[1] based on GitLab (but it could be > used on anything which supports Docker) and which could be hopefully re-used > for CI testing of all OpenWrt C language based projects without much hassle, > currently it boils down to about 3-7 lines of YAML code in .gitlab-ci.yml > file[2]. > > So far I've added two CI compile tests[3], one of them is `ci-sdk-oot-build` > which is building the source code out of the tree[4] with the provided SDK for > a (randomly selected) list of platforms ath79, imx6, malta_be and > mvebu_cortexa53 in order to cover different CPUs, endianess, register widths > etc. This tests works fine with the source code in the buildroot. > > The 2nd test is a "frankenstein" one[5] called `ci-native-checks`, which is > compile testing the source code natively on x86/64 with gcc-{7,8,9},clang-9 > and then with scan-build and cppcheck static analyzers. This doesn't work > currently for me with odhcpd as it depends on libnl-tiny, and in order to > provide libnl-tiny one would need to check out complete OpenWrt tree in order > to get its source code and build it. > > To be clear, getting the source code is a no brainer for me, I could solve it > somehow even with the buildroot (putting aside the waste of resources), but > running the CI test suite on libnl-tiny itself uncovers some issues[6] and I > think, that it would simply make sense to allow running of those test easily > for anyone (clone the repo on GitLab; push; profit) in the future as well. > > 0. https://gitlab.com/ynezz/openwrt-libnl-tiny/commits/wip > 1. https://gitlab.com/ynezz/gitlab-evaluation/blob/wip/gitlab-ci/README.md > 2. https://gitlab.com/ynezz/openwrt-libnl-tiny/blob/wip/.gitlab-ci.yml > 3. > https://gitlab.com/ynezz/gitlab-evaluation/blob/wip/gitlab-ci/gitlab-ci-pipeline.yml > 4. > https://gitlab.com/ynezz/gitlab-evaluation/blob/wip/gitlab-ci/sdk-build.mk#L45 > 5. > https://gitlab.com/ynezz/gitlab-evaluation/blob/wip/gitlab-ci/native-build.mk > 6. > https://ynezz.gitlab.io/-/openwrt-libnl-tiny/-/jobs/313680815/artifacts/build/scan/2019-10-07-122715-143-1/index.html > > package/libs/libnl-tiny/Makefile | 19 +- > package/libs/libnl-tiny/files/libnl-tiny.pc | 10 - > package/libs/libnl-tiny/src/Makefile | 17 - > package/libs/libnl-tiny/src/attr.c | 668 ---------------- > package/libs/libnl-tiny/src/cache.c | 376 --------- > package/libs/libnl-tiny/src/cache_mngt.c | 131 ---- > package/libs/libnl-tiny/src/error.c | 116 --- > package/libs/libnl-tiny/src/genl.c | 268 ------- > package/libs/libnl-tiny/src/genl_ctrl.c | 380 --------- > package/libs/libnl-tiny/src/genl_family.c | 169 ---- > package/libs/libnl-tiny/src/genl_mngt.c | 193 ----- > package/libs/libnl-tiny/src/handlers.c | 162 ---- > .../libnl-tiny/src/include/netlink-generic.h | 20 - > .../libnl-tiny/src/include/netlink-local.h | 160 ---- > .../libnl-tiny/src/include/netlink-types.h | 88 --- > .../libnl-tiny/src/include/netlink/addr.h | 69 -- > .../libnl-tiny/src/include/netlink/attr.h | 726 ------------------ > .../src/include/netlink/cache-api.h | 199 ----- > .../libnl-tiny/src/include/netlink/cache.h | 128 --- > .../libnl-tiny/src/include/netlink/data.h | 41 - > .../libnl-tiny/src/include/netlink/errno.h | 64 -- > .../src/include/netlink/genl/ctrl.h | 40 - > .../src/include/netlink/genl/family.h | 134 ---- > .../src/include/netlink/genl/genl.h | 47 -- > .../src/include/netlink/genl/mngt.h | 87 --- > .../libnl-tiny/src/include/netlink/handlers.h | 231 ------ > .../libnl-tiny/src/include/netlink/list.h | 88 --- > .../libs/libnl-tiny/src/include/netlink/msg.h | 308 -------- > .../src/include/netlink/netlink-compat.h | 50 -- > .../src/include/netlink/netlink-kernel.h | 196 ----- > .../libnl-tiny/src/include/netlink/netlink.h | 82 -- > .../src/include/netlink/object-api.h | 331 -------- > .../libnl-tiny/src/include/netlink/object.h | 164 ---- > .../libnl-tiny/src/include/netlink/socket.h | 231 ------ > .../libnl-tiny/src/include/netlink/types.h | 121 --- > .../libnl-tiny/src/include/netlink/utils.h | 78 -- > .../libnl-tiny/src/include/netlink/version.h | 18 - > package/libs/libnl-tiny/src/include/unl.h | 47 -- > package/libs/libnl-tiny/src/msg.c | 561 -------------- > package/libs/libnl-tiny/src/nl.c | 720 ----------------- > package/libs/libnl-tiny/src/object.c | 147 ---- > package/libs/libnl-tiny/src/socket.c | 406 ---------- > package/libs/libnl-tiny/src/unl.c | 287 ------- > 43 files changed, 12 insertions(+), 8366 deletions(-) > delete mode 100644 package/libs/libnl-tiny/files/libnl-tiny.pc > delete mode 100644 package/libs/libnl-tiny/src/Makefile > delete mode 100644 package/libs/libnl-tiny/src/attr.c > delete mode 100644 package/libs/libnl-tiny/src/cache.c > delete mode 100644 package/libs/libnl-tiny/src/cache_mngt.c > delete mode 100644 package/libs/libnl-tiny/src/error.c > delete mode 100644 package/libs/libnl-tiny/src/genl.c > delete mode 100644 package/libs/libnl-tiny/src/genl_ctrl.c > delete mode 100644 package/libs/libnl-tiny/src/genl_family.c > delete mode 100644 package/libs/libnl-tiny/src/genl_mngt.c > delete mode 100644 package/libs/libnl-tiny/src/handlers.c > delete mode 100644 package/libs/libnl-tiny/src/include/netlink-generic.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink-local.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink-types.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/addr.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/attr.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/cache-api.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/cache.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/data.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/errno.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/genl/ctrl.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/genl/family.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/genl/genl.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/genl/mngt.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/handlers.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/list.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/msg.h > delete mode 100644 > package/libs/libnl-tiny/src/include/netlink/netlink-compat.h > delete mode 100644 > package/libs/libnl-tiny/src/include/netlink/netlink-kernel.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/netlink.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/object-api.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/object.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/socket.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/types.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/utils.h > delete mode 100644 package/libs/libnl-tiny/src/include/netlink/version.h > delete mode 100644 package/libs/libnl-tiny/src/include/unl.h > delete mode 100644 package/libs/libnl-tiny/src/msg.c > delete mode 100644 package/libs/libnl-tiny/src/nl.c > delete mode 100644 package/libs/libnl-tiny/src/object.c > delete mode 100644 package/libs/libnl-tiny/src/socket.c > delete mode 100644 package/libs/libnl-tiny/src/unl.c > > diff --git a/package/libs/libnl-tiny/Makefile > b/package/libs/libnl-tiny/Makefile > index cabbb084218f..0536c6b73ec7 100644 > --- a/package/libs/libnl-tiny/Makefile > +++ b/package/libs/libnl-tiny/Makefile > @@ -8,8 +8,13 @@ > include $(TOPDIR)/rules.mk > > PKG_NAME:=libnl-tiny > -PKG_VERSION:=0.1 > -PKG_RELEASE:=5 > +PKG_RELEASE:=1 > + > +PKG_SOURCE_PROTO:=git > +PKG_SOURCE_URL=$(PROJECT_GIT)/project/libnl-tiny.git > +PKG_SOURCE_DATE:=2017-11-16 > +PKG_SOURCE_VERSION:=8ee5f3a4023f822d1c916bb2b5e845d3597ac674 > +PKG_MIRROR_HASH:=e3dd137d69848b8cf2dbc58d70452586dd4178b55977896ea3a9dedaf62c768c > > PKG_LICENSE:=LGPL-2.1 > PKG_MAINTAINER:=Felix Fietkau <n...@nbd.name> > @@ -29,7 +34,7 @@ endef > TARGET_CFLAGS += $(FPIC) > > define Build/Compile > - $(MAKE) -C $(PKG_BUILD_DIR) \ > + $(MAKE) -C $(PKG_BUILD_DIR)/src \ > $(TARGET_CONFIGURE_OPTS) \ > CFLAGS="$(TARGET_CFLAGS)" \ > all > @@ -37,14 +42,14 @@ endef > > define Build/InstallDev > $(INSTALL_DIR) $(1)/usr/lib/pkgconfig $(1)/usr/include/libnl-tiny > - $(CP) $(PKG_BUILD_DIR)/include/* $(1)/usr/include/libnl-tiny > - $(CP) $(PKG_BUILD_DIR)/libnl-tiny.so $(1)/usr/lib/ > - $(CP) ./files/libnl-tiny.pc $(1)/usr/lib/pkgconfig > + $(CP) $(PKG_BUILD_DIR)/src/include/* $(1)/usr/include/libnl-tiny > + $(CP) $(PKG_BUILD_DIR)/src/libnl-tiny.so $(1)/usr/lib/ > + $(CP) $(PKG_BUILD_DIR)/files/libnl-tiny.pc $(1)/usr/lib/pkgconfig > endef > > define Package/libnl-tiny/install > $(INSTALL_DIR) $(1)/usr/lib > - $(CP) $(PKG_BUILD_DIR)/libnl-tiny.so $(1)/usr/lib/ > + $(CP) $(PKG_BUILD_DIR)/src/libnl-tiny.so $(1)/usr/lib/ > endef >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel