libcgroup: fix compile with newer musl 11714/head
authorRosen Penev <rosenp@gmail.com>
Mon, 30 Mar 2020 00:11:03 +0000 (17:11 -0700)
committerRosen Penev <rosenp@gmail.com>
Mon, 30 Mar 2020 04:38:23 +0000 (21:38 -0700)
The code uses __BEGIN/END_DECLS from glibc's features.h, actually
sys/cdefs.h, which is deprecated. Get rid of it.

Fixed license information.

Fixed musl-fts dependency. It's only valid for musl.

Removed autoreconf as the patch was removed.

Added PKG_INSTALL for consistency between packages.

Added PKG_BUILD_PARALLEL for faster compilation.

Small cleanups for consistency between packages.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
libs/libcgroup/Makefile
libs/libcgroup/patches/0001-musl-fts-configure.patch [deleted file]
libs/libcgroup/patches/010-cdefs.patch [new file with mode: 0644]

index c1fb6de03088b7376e02602a2ee2925ebb235ed3..2545c78cf1dd701ea8dbd4aa033b402bd859ee9e 100644 (file)
@@ -2,17 +2,18 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libcgroup
 PKG_VERSION:=0.41
-PKG_RELEASE:=1
-PKG_LICENSE:=LGPL
-PKG_LICENSE_FILES:=COPYING
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=@SF/libcg
 PKG_HASH:=e4e38bdc7ef70645ce33740ddcca051248d56b53283c0dc6d404e17706f6fb51
+
 PKG_MAINTAINER:=Daniel Danzberger <daniel@dd-wrt.com>
+PKG_LICENSE:=LGPL-2.1-or-later
+PKG_LICENSE_FILES:=COPYING
 
+PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
-PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -20,7 +21,7 @@ define Package/libcgroup
   TITLE:=CGroup config and exec library
   SECTION:=libs
   CATEGORY:=Libraries
-  DEPENDS:=+musl-fts +@KERNEL_CGROUPS
+  DEPENDS:=+USE_MUSL:musl-fts +@KERNEL_CGROUPS
 endef
 
 define Package/cgroup-tools
@@ -33,27 +34,31 @@ define Package/libcgroup/description
   Helpers utils for working with cgroups.
 endef
 
-CONFIGURE_ARGS += --enable-tools \
-               --enable-shared \
-               --disable-daemon \
-               --disable-pam
+CONFIGURE_ARGS += \
+       --enable-tools \
+       --enable-shared \
+       --disable-daemon \
+       --disable-pam
+
+TARGET_LDFLAGS += $(if $(CONFIG_USE_MUSL),-lfts)
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib $(1)/usr/lib/pkgconfig
-       $(CP) $(PKG_BUILD_DIR)/include/libcgroup.h $(1)/usr/include
-       $(CP) $(PKG_BUILD_DIR)/include/libcgroup $(1)/usr/include
-       $(CP) $(PKG_BUILD_DIR)/src/.libs/libcgroup.so* $(1)/usr/lib
-       $(CP) $(PKG_BUILD_DIR)/libcgroup.pc $(1)/usr/lib/pkgconfig/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/libcgroup.h $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/libcgroup $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcgroup.so* $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libcgroup.pc $(1)/usr/lib/pkgconfig/
 endef
 
 define Package/libcgroup/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_BUILD_DIR)/src/.libs/libcgroup.so* $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcgroup.so* $(1)/usr/lib
 endef
 
 define Package/cgroup-tools/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/tools/.libs/* $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin
 endef
 
 $(eval $(call BuildPackage,libcgroup))
diff --git a/libs/libcgroup/patches/0001-musl-fts-configure.patch b/libs/libcgroup/patches/0001-musl-fts-configure.patch
deleted file mode 100644 (file)
index f6079a6..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/configure.in b/configure.in
-index 75f4a51..f70b37c 100644
---- a/configure.in
-+++ b/configure.in
-@@ -193,6 +193,19 @@ if test x$with_pam = xtrue; then
-               header files!])])
- fi
-+AC_CHECK_LIB(
-+      [fts],
-+      [fts_open],
-+      [],
-+      [AC_MSG_ERROR([Cannot compile without fts!])]
-+)
-+
-+AC_CHECK_HEADERS(
-+      [fts.h],
-+      [],
-+      [AC_MSG_ERROR([Cannot compile without fts.h])]
-+)
-+
- AC_CONFIG_FILES([Makefile
-       tests/Makefile
-       tests/tools/testenv.sh
diff --git a/libs/libcgroup/patches/010-cdefs.patch b/libs/libcgroup/patches/010-cdefs.patch
new file mode 100644 (file)
index 0000000..c40cbb5
--- /dev/null
@@ -0,0 +1,240 @@
+--- a/include/libcgroup/config.h
++++ b/include/libcgroup/config.h
+@@ -5,12 +5,10 @@
+ #error "Only <libcgroup.h> should be included directly."
+ #endif
+-#ifndef SWIG
+-#include <features.h>
++#ifdef __cplusplus
++extern "C" {
+ #endif
+-__BEGIN_DECLS
+-
+ /**
+  * @defgroup group_config 5. Configuration
+  * @{
+@@ -107,6 +105,8 @@ int cgroup_config_create_template_group(
+  * @}
+  * @}
+  */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /*_LIBCGROUP_CONFIG_H*/
+--- a/include/libcgroup/error.h
++++ b/include/libcgroup/error.h
+@@ -5,12 +5,10 @@
+ #error "Only <libcgroup.h> should be included directly."
+ #endif
+-#ifndef SWIG
+-#include <features.h>
++#ifdef __cplusplus
++extern "C" {
+ #endif
+-__BEGIN_DECLS
+-
+ /**
+  * @defgroup group_errors 6. Error handling
+  * @{
+@@ -99,6 +97,8 @@ int cgroup_get_last_errno(void);
+  * @}
+  * @}
+  */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _LIBCGROUP_INIT_H */
+--- a/include/libcgroup/groups.h
++++ b/include/libcgroup/groups.h
+@@ -6,12 +6,13 @@
+ #endif
+ #ifndef SWIG
+-#include <features.h>
+ #include <sys/types.h>
+ #include <stdbool.h>
+ #endif
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /**
+  * Flags for cgroup_delete_cgroup_ext().
+@@ -577,6 +578,8 @@ char *cgroup_get_cgroup_name(struct cgroup *cgroup);
+  */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _LIBCGROUP_GROUPS_H */
+--- a/include/libcgroup/init.h
++++ b/include/libcgroup/init.h
+@@ -5,12 +5,10 @@
+ #error "Only <libcgroup.h> should be included directly."
+ #endif
+-#ifndef SWIG
+-#include <features.h>
++#ifdef __cplusplus
++extern "C" {
+ #endif
+-__BEGIN_DECLS
+-
+ /**
+  * @defgroup group_init 1. Initialization
+  * @{
+@@ -58,6 +56,8 @@ int cgroup_get_subsys_mount_point(const char *controller, char **mount_point);
+  * @}
+  * @}
+  */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _LIBCGROUP_INIT_H */
+--- a/include/libcgroup/iterators.h
++++ b/include/libcgroup/iterators.h
+@@ -8,10 +8,11 @@
+ #ifndef SWIG
+ #include <sys/types.h>
+ #include <stdio.h>
+-#include <features.h>
+ #endif
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /**
+  * @defgroup group_iterators 3. Iterators
+@@ -423,6 +424,8 @@ int cgroup_get_subsys_mount_point_end(void **handle);
+  * @}
+  */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _LIBCGROUP_ITERATORS_H */
+--- a/include/libcgroup/log.h
++++ b/include/libcgroup/log.h
+@@ -5,13 +5,11 @@
+ #error "Only <libcgroup.h> should be included directly."
+ #endif
+-#ifndef SWIG
+-#include <features.h>
+-#endif
+-
+ #include <stdarg.h>
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /**
+  * @defgroup group_log 7. Logging
+@@ -142,6 +140,8 @@ extern int cgroup_parse_log_level_str(const char *levelstr);
+  * @}
+  * @}
+  */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _LIBCGROUP_LOG_H */
+--- a/include/libcgroup/tasks.h
++++ b/include/libcgroup/tasks.h
+@@ -8,11 +8,12 @@
+ #include <libcgroup/groups.h>
+ #ifndef SWIG
+-#include <features.h>
+ #include <stdbool.h>
+ #endif
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /** Flags for cgroup_change_cgroup_uid_gid(). */
+ enum cgflags {
+@@ -204,6 +205,8 @@ int cgroup_register_unchanged_process(pid_t pid, int flags);
+  * @}
+  * @}
+  */
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _LIBCGROUP_TASKS_H */
+--- a/src/daemon/cgrulesengd.h
++++ b/src/daemon/cgrulesengd.h
+@@ -15,9 +15,9 @@
+ #ifndef _CGRULESENGD_H
+ #define _CGRULESENGD_H
+-#include <features.h>
+-
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ #include "config.h"
+ #include "libcgroup.h"
+@@ -119,7 +119,9 @@ void cgre_flash_templates(int signum);
+  */
+ void cgre_catch_term(int signum);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _CGRULESENGD_H */
+--- a/src/libcgroup-internal.h
++++ b/src/libcgroup-internal.h
+@@ -16,7 +16,9 @@
+ #define __LIBCG_INTERNAL
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ #include "config.h"
+ #include <fts.h>
+@@ -279,6 +281,8 @@ extern void cgroup_dictionary_iterator_end(void **handle);
+  */
+ int cg_chmod_path(const char *path, mode_t mode, int owner_is_umask);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif