Fix misc stuff here and there.
Phil Sutter (9): mk/kernel-build.mk: Drop redundant assignments adk/tools/pkgmaker: Fix memleak in toupperstr() file: Update to version 5.41 lvm: Add a default config to stop writing cache file: Fix magic package gmediaserver: Depend on magic gmediaserver: Fix for newer libmagic, support flac and flv package: samba: Avoid creating sockets in /etc/ package: dropbear: Minor Makefile fix
adk/tools/pkgmaker.c | 58 ++++++++++---- mk/kernel-build.mk | 7 -- package/dropbear/Makefile | 5 +- package/file/Makefile | 11 ++- package/gmediaserver/Makefile | 4 +- .../gmediaserver/patches/patch-src_metadata_c | 78 +++++++++++++++++++ package/lvm/Makefile | 4 +- package/lvm/files/lvm.conf | 4 + package/samba/Makefile | 4 +- package/samba/files/samba.init | 5 +- 10 files changed, 141 insertions(+), 39 deletions(-) create mode 100644 package/gmediaserver/patches/patch-src_metadata_c create mode 100644 package/lvm/files/lvm.conf
If ADK_TARGET_KERNEL_VMLINUX_BOOTP==y, ADK_TARGET_KERNEL=bootpfile hence no need for the clause. Also, KERNEL_TARGET defaults to $(ADK_TARGET_KERNEL) already.
Signed-off-by: Phil Sutter phil@nwl.cc --- mk/kernel-build.mk | 7 ------- 1 file changed, 7 deletions(-)
diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk index 1e19a593cbc56..efbc843da0f0f 100644 --- a/mk/kernel-build.mk +++ b/mk/kernel-build.mk @@ -17,15 +17,9 @@ KERNEL_FILE:=$(ADK_TARGET_KERNEL) KERNEL_TARGET:=$(ADK_TARGET_KERNEL) ifeq ($(ADK_TARGET_KERNEL_LINUXBIN),y) KERNEL_FILE:=vmlinux -KERNEL_TARGET:=$(ADK_TARGET_KERNEL) endif ifeq ($(ADK_TARGET_KERNEL_ZIMAGE),y) KERNEL_FILE:=vmlinux -KERNEL_TARGET:=$(ADK_TARGET_KERNEL) -endif -ifeq ($(ADK_TARGET_KERNEL_VMLINUX_BOOTP),y) -KERNEL_FILE:=bootpfile -KERNEL_TARGET:=bootpfile endif ifeq ($(ADK_TARGET_KERNEL_VMLINUX_EFI),y) KERNEL_FILE:=vmlinux.efi @@ -41,7 +35,6 @@ KERNEL_TARGET:=all endif ifeq ($(ADK_TARGET_KERNEL_IMAGE),y) KERNEL_FILE:=vmlinux -KERNEL_TARGET:=$(ADK_TARGET_KERNEL) endif ifeq ($(ADK_TARGET_KERNEL_SIMPLEIMAGE),y) KERNEL_FILE:=vmlinux.bin
The function allocated a fresh buffer upon every call but callers didn't care to free the returned value.
To solve this in a most simple way, make the function non-reentrant, returning a pointer to a local, statically allocated buffer which is being overwritten upon each consecutive call.
Signed-off-by: Phil Sutter phil@nwl.cc --- adk/tools/pkgmaker.c | 58 ++++++++++++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 16 deletions(-)
diff --git a/adk/tools/pkgmaker.c b/adk/tools/pkgmaker.c index 45130054808e4..7952522f20d05 100644 --- a/adk/tools/pkgmaker.c +++ b/adk/tools/pkgmaker.c @@ -19,6 +19,7 @@
#include <ctype.h> #include <dirent.h> +#include <errno.h> #include <fcntl.h> #include <stdlib.h> #include <stdio.h> @@ -290,22 +291,44 @@ static char *tolowerstr(char *string) {
static char *toupperstr(char *string) {
+ static char *sdup = NULL; + static int sduplen = 0; int i; - char *str; - + + if (!string) { + free(sdup); + sduplen = 0; + return NULL; + } + + if (sduplen <= strlen(string)) { + sduplen = strlen(string) + 1; + sdup = realloc(sdup, sduplen); + if (!sdup) + fatal_error("%s: memory allocation failed: %s\n", + __func__, strerror(errno)); + } + /* transform to uppercase variable name */ - str = strdup(string); - for (i=0; i<(int)strlen(str); i++) { - if (str[i] == '+') - str[i] = 'X'; - if (str[i] == '-') - str[i] = '_'; - /* remove negation here, useful for package host depends */ - if (str[i] == '!') - str[i] = '_'; - str[i] = toupper(str[i]); + for (i = 0; i < strlen(string) + 1; i++) { + switch (string[i]) { + case '+': + sdup[i] = 'X'; + break; + case '-': + sdup[i] = '_'; + break; + case '!': + sdup[i] = '_'; + break; + case '\0': + sdup[i] = '\0'; + break; + default: + sdup[i] = toupper(string[i]); + } } - return(str); + return sdup; }
@@ -463,10 +486,12 @@ int main() { icfg = fopen(runtime, "a"); if (icfg == NULL) continue; - if (strncmp("busybox", sname, 7) == 0) - fprintf(icfg, "config ADK_RUNTIME_START_%s_%s\n", toupperstr(sname), toupperstr(sname2)); - else + if (strncmp("busybox", sname, 7) == 0) { + fprintf(icfg, "config ADK_RUNTIME_START_%s", toupperstr(sname)); + fprintf(icfg, "_%s\n", toupperstr(sname2)); + } else { fprintf(icfg, "config ADK_RUNTIME_START_%s\n", toupperstr(sname)); + } fprintf(icfg, "\tprompt "Start %s on boot"\n", sname2); fprintf(icfg, "\ttristate\n"); if (strncmp("busybox", sname, 7) == 0) @@ -1282,6 +1307,7 @@ int main() { fatal_error("removing file failed."); } } + toupperstr(NULL); closedir(pkglistdir); return(0); }
The previous version did not host-compile for me, this one seems not to require a host-build for cross-compiling.
Signed-off-by: Phil Sutter phil@nwl.cc --- package/file/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/package/file/Makefile b/package/file/Makefile index 8a8007765ce3c..ce0f25d7bee25 100644 --- a/package/file/Makefile +++ b/package/file/Makefile @@ -4,12 +4,11 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= file -PKG_VERSION:= 5.33 +PKG_VERSION:= 5.41 PKG_RELEASE:= 1 -PKG_HASH:= 1c52c8c3d271cd898d5511c36a68059cda94036111ab293f01f83c3525b737c6 +PKG_HASH:= 13e532c7b364f7d57e23dfeea3147103150cb90593a57af86c10e4f6e411603f PKG_DESCR:= file type guesser PKG_SECTION:= sys/utils -PKG_BUILDDEP:= file-host PKG_DEPENDS:= libmagic magic PKG_URL:= http://www.darwinsys.com/file PKG_SITES:= ftp://ftp.astron.com/pub/file/
No point in storing the cache in cfgfs.
Signed-off-by: Phil Sutter phil@nwl.cc --- package/lvm/Makefile | 4 +++- package/lvm/files/lvm.conf | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 package/lvm/files/lvm.conf
diff --git a/package/lvm/Makefile b/package/lvm/Makefile index 89dfeea122ff1..82ff98a3aa66b 100644 --- a/package/lvm/Makefile +++ b/package/lvm/Makefile @@ -5,7 +5,7 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= lvm PKG_VERSION:= 2.02.188 -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_HASH:= 7101e8b0816ad77e4390fed9749a090214ba520061cd083437871e19e50cc9bd PKG_DESCR:= logical volume management PKG_SECTION:= sys/fs @@ -52,6 +52,8 @@ lvm-install: ${INSTALL_DIR} ${IDIR_LVM}/usr/sbin ${INSTALL_BIN} ${WRKINST}/usr/sbin/lvm \ ${IDIR_LVM}/usr/sbin + ${INSTALL_DIR} ${IDIR_LVM}/etc/ + ${INSTALL_DATA} ./files/lvm.conf ${IDIR_LVM}/etc/
libdevmapper-install: ${INSTALL_DIR} ${IDIR_LIBDEVMAPPER}/usr/lib diff --git a/package/lvm/files/lvm.conf b/package/lvm/files/lvm.conf new file mode 100644 index 0000000000000..a2e77c05d0b5b --- /dev/null +++ b/package/lvm/files/lvm.conf @@ -0,0 +1,4 @@ +devices { + # avoid constant cfgfs updates + write_cache_state = 0 +}
If enabled, the database was installed into libmagic fake dir.
Signed-off-by: Phil Sutter phil@nwl.cc --- package/file/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/package/file/Makefile b/package/file/Makefile index ce0f25d7bee25..451bb0bb219ad 100644 --- a/package/file/Makefile +++ b/package/file/Makefile @@ -5,7 +5,7 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= file PKG_VERSION:= 5.41 -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_HASH:= 13e532c7b364f7d57e23dfeea3147103150cb90593a57af86c10e4f6e411603f PKG_DESCR:= file type guesser PKG_SECTION:= sys/utils @@ -46,9 +46,9 @@ file-install: ${INSTALL_BIN} ${WRKINST}/usr/bin/file ${IDIR_FILE}/usr/bin
magic-install: - ${INSTALL_DIR} ${IDIR_LIBMAGIC}/usr/share/misc + ${INSTALL_DIR} ${IDIR_MAGIC}/usr/share/misc ${INSTALL_DATA} ${WRKINST}/usr/share/misc/magic.mgc \ - ${IDIR_LIBMAGIC}/usr/share/misc + ${IDIR_MAGIC}/usr/share/misc
libmagic-install: ${INSTALL_DIR} ${IDIR_LIBMAGIC}/usr/lib
It needs the database to identify file types.
Signed-off-by: Phil Sutter phil@nwl.cc --- package/gmediaserver/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/package/gmediaserver/Makefile b/package/gmediaserver/Makefile index 6b44af9c339be..75dd5f723409f 100644 --- a/package/gmediaserver/Makefile +++ b/package/gmediaserver/Makefile @@ -5,11 +5,11 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gmediaserver PKG_VERSION:= 0.13.0 -PKG_RELEASE:= 2 +PKG_RELEASE:= 3 PKG_HASH:= 357030911bcce4ac9e47c2c9219b72e88705a8465899d4e0553bce540fb0fd12 PKG_DESCR:= media server PKG_SECTION:= mm/video -PKG_DEPENDS:= id3lib libupnp libmagic +PKG_DEPENDS:= id3lib libupnp libmagic magic PKG_BUILDDEP:= id3lib libupnp file PKG_NEEDS:= c++ PKG_URL:= http://www.gnu.org/software/gmediaserver
Signed-off-by: Phil Sutter phil@nwl.cc --- package/gmediaserver/Makefile | 2 +- .../gmediaserver/patches/patch-src_metadata_c | 78 +++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 package/gmediaserver/patches/patch-src_metadata_c
diff --git a/package/gmediaserver/Makefile b/package/gmediaserver/Makefile index 75dd5f723409f..3b5a420dba9a8 100644 --- a/package/gmediaserver/Makefile +++ b/package/gmediaserver/Makefile @@ -5,7 +5,7 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gmediaserver PKG_VERSION:= 0.13.0 -PKG_RELEASE:= 3 +PKG_RELEASE:= 4 PKG_HASH:= 357030911bcce4ac9e47c2c9219b72e88705a8465899d4e0553bce540fb0fd12 PKG_DESCR:= media server PKG_SECTION:= mm/video diff --git a/package/gmediaserver/patches/patch-src_metadata_c b/package/gmediaserver/patches/patch-src_metadata_c new file mode 100644 index 0000000000000..86990d3d09b75 --- /dev/null +++ b/package/gmediaserver/patches/patch-src_metadata_c @@ -0,0 +1,78 @@ + - magic_file() returns strings like 'audio/mpeg; charset=binary', + ignore the last part + - Add flv and flac file type definitions +--- gmediaserver-0.13.0.orig/src/metadata.c 2007-10-20 11:41:32.000000000 +0200 ++++ gmediaserver-0.13.0/src/metadata.c 2022-03-28 07:44:13.332180349 +0200 +@@ -86,6 +86,8 @@ typedef enum { + FILE_JPG, + FILE_PNG, + FILE_TIFF, ++ FILE_FLV, ++ FILE_FLAC, + FILE_UNKNOWN, + FILE_TYPES_COUNT, + } FileType; +@@ -122,6 +124,8 @@ static const char *file_type_dlna_pn[] = + [FILE_JPG] = "JPEG_TN", + [FILE_PNG] = NULL, + [FILE_TIFF] = NULL, ++ [FILE_FLV] = NULL, ++ [FILE_FLAC] = NULL, + [FILE_UNKNOWN] = NULL, + }; + +@@ -134,6 +138,8 @@ static const char *file_type_mime_types[ + [FILE_OGG] = "audio/vorbis", + [FILE_MPG] = "video/mpeg", + [FILE_MP4] = "video/mp4", ++ [FILE_MP4] = "video/x-msvideo", ++ [FILE_MP4] = "video/x-matroska", + [FILE_PLS] = "audio/x-scpls", + [FILE_M3U] = "audio/m3u", + [FILE_EXTM3U] = "audio/m3u", +@@ -142,6 +148,8 @@ static const char *file_type_mime_types[ + [FILE_JPG] = "image/jpeg", + [FILE_PNG] = "image/png", + [FILE_TIFF] = "image/tiff", ++ [FILE_FLV] = "video/x-flv", ++ [FILE_FLAC] = "audio/flac", + [FILE_UNKNOWN] = "application/octet-stream", + }; + +@@ -162,6 +170,8 @@ static const char *file_type_names[] = { + [FILE_JPG] = "jpg", + [FILE_PNG] = "png", + [FILE_TIFF] = "tiff", ++ [FILE_FLV] = "flv", ++ [FILE_FLAC] = "flac", + [FILE_UNKNOWN] = "unknown", + }; + +@@ -183,6 +193,8 @@ static const char *file_type_descs[] = { + [FILE_JPG] = "JPEG image", + [FILE_PNG] = "PNG image", + [FILE_TIFF] = "TIFF image", ++ [FILE_FLV] = "Flash video", ++ [FILE_FLAC] = "FLAC audio", + }; + + static ItemClass file_type_item_classes[] = { +@@ -202,6 +214,8 @@ static ItemClass file_type_item_classes[ + [FILE_JPG] = ITEM_IMAGE, + [FILE_PNG] = ITEM_IMAGE, + [FILE_TIFF] = ITEM_IMAGE, ++ [FILE_FLV] = ITEM_VIDEO, ++ [FILE_FLAC] = ITEM_AUDIO, + }; + + static Entry *scan_entry(const char *fullpath, const char *name, int32_t parent, int indent_size, InodeList *inl); +@@ -325,6 +339,9 @@ check_file_content_type(const char *full + return FILE_UNKNOWN; + } + ++ /* ignore trailing data */ ++ *strchrnul(magic, ';') = '\0'; ++ + if (strcmp(magic, "application/octet-stream") != 0 + && strncmp(magic, "text/plain", 10) != 0) { + struct {
Otherwise cfgfs will complain.
Signed-off-by: Phil Sutter phil@nwl.cc --- package/samba/Makefile | 4 ++-- package/samba/files/samba.init | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/package/samba/Makefile b/package/samba/Makefile index 2a04e10c680ca..cd694447663e6 100644 --- a/package/samba/Makefile +++ b/package/samba/Makefile @@ -5,7 +5,7 @@ include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= samba PKG_VERSION:= 4.13.2 -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_HASH:= 276464396a05d88b775bda01ac2eb1e5a636ccf7010b0fd28efc3d85583af2b4 PKG_DESCR:= file and print server PKG_SECTION:= net/fs @@ -28,7 +28,7 @@ CONFIGURE_ARGS+= --enable-fhs \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ - --with-privatedir=/etc/samba \ + --with-privatedir=/var/lib/samba \ --cross-compile \ --cross-answers=$(WRKSRC)/cache.txt \ --hostcc=gcc \ diff --git a/package/samba/files/samba.init b/package/samba/files/samba.init index 21b9835305399..8b9e7e37569c8 100644 --- a/package/samba/files/samba.init +++ b/package/samba/files/samba.init @@ -11,12 +11,13 @@ autostart) exec sh $0 start ;; start) - [ -d /var/lib/samba ] || mkdir -p /var/lib/samba + [ -d /var/lib/samba/msg.sock ] || mkdir -p /var/lib/samba/msg.sock [ -d /var/run/samba ] || mkdir -p /var/run/samba [ -d /var/log/samba ] || mkdir -p /var/log/samba [ -d /var/cache/samba ] || mkdir -p /var/cache/samba [ -d /var/lock/samba ] || mkdir -p /var/lock/samba - /usr/sbin/nmbd -D + chmod 700 /var/lib/samba/msg.sock + /usr/sbin/nmbd -D /usr/sbin/smbd -D ;; stop)
The file options.h does not exist anymore, instead custom overrides should go into localoptions.h. Both settings are not needed anymore though, so no functional change.
Signed-off-by: Phil Sutter phil@nwl.cc --- package/dropbear/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile index 050729a5c657f..68f7354510c9c 100644 --- a/package/dropbear/Makefile +++ b/package/dropbear/Makefile @@ -5,7 +5,7 @@ include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= dropbear PKG_VERSION:= 2020.81 -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_HASH:= 48235d10b37775dbda59341ac0c4b239b82ad6318c31568b985730c788aac53b PKG_DESCR:= ssh server/client designed for embedded systems PKG_SECTION:= net/security @@ -48,8 +48,7 @@ endif
pre-configure: - $(SED) 's,^/* #define PKG_MULTI.*,#define PKG_MULTI,g' $(WRKBUILD)/options.h - $(SED) 's,^#define DO_HOST_LOOKUP,/* & */,g' $(WRKBUILD)/options.h + echo "#define DO_HOST_LOOKUP 0" >>$(WRKBUILD)/localoptions.h
do-build: cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} \
Hi Phil,
thanks, all applied and pushed.
best regards Waldemar
Phil Sutter wrote,
Fix misc stuff here and there.
Phil Sutter (9): mk/kernel-build.mk: Drop redundant assignments adk/tools/pkgmaker: Fix memleak in toupperstr() file: Update to version 5.41 lvm: Add a default config to stop writing cache file: Fix magic package gmediaserver: Depend on magic gmediaserver: Fix for newer libmagic, support flac and flv package: samba: Avoid creating sockets in /etc/ package: dropbear: Minor Makefile fix
adk/tools/pkgmaker.c | 58 ++++++++++---- mk/kernel-build.mk | 7 -- package/dropbear/Makefile | 5 +- package/file/Makefile | 11 ++- package/gmediaserver/Makefile | 4 +- .../gmediaserver/patches/patch-src_metadata_c | 78 +++++++++++++++++++ package/lvm/Makefile | 4 +- package/lvm/files/lvm.conf | 4 + package/samba/Makefile | 4 +- package/samba/files/samba.init | 5 +- 10 files changed, 141 insertions(+), 39 deletions(-) create mode 100644 package/gmediaserver/patches/patch-src_metadata_c create mode 100644 package/lvm/files/lvm.conf
-- 2.38.1