Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package file for openSUSE:Factory checked in at 2026-06-10 15:47:22 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/file (Old) and /work/SRC/openSUSE:Factory/.file.new.2375 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "file" Wed Jun 10 15:47:22 2026 rev:148 rq:1357998 version:5.48 Changes: -------- --- /work/SRC/openSUSE:Factory/file/file.changes 2026-06-03 20:25:47.893613130 +0200 +++ /work/SRC/openSUSE:Factory/.file.new.2375/file.changes 2026-06-10 15:47:50.783523522 +0200 @@ -1,0 +2,24 @@ +Mon Jun 8 12:25:04 UTC 2026 - Dr. Werner Fink <[email protected]> + +- Update to 5.48: + * add landlock support (valoq) + * add BE/LE GUID + * multiple fixes to prevent integer overflow in 32 bits (kerwin) + * PR/745: bitstreamout: Don't flush when trying to set negative offsets + on pipes, just continue, fixes 'cat file.zip | file -' + * PR/753: vmihalko: Fix race is magic_getpath() + * PR/728: Anton Monroe: Reinstate regex/c +- Port patch file-5.47.dif and rename it to file-5.48.dif +- Port patches + * file-4.21-xcursor.dif + * file-5.19-biorad.dif + * file-5.19-printf.dif + * file-5.22-elf.dif + * file-5.28-btrfs-image.dif + * file-secure_getenv.patch +- Remove patches now upstream + * file-5.47-regression.dif + * file-5.47-s390x.patch + * file-5.47-stanza.patch + +------------------------------------------------------------------- +++ only whitespace diff in changes, re-diffing Old: ---- file-5.47-regression.dif file-5.47-s390x.patch file-5.47-stanza.patch file-5.47.dif file-5.47.tar.gz file-5.47.tar.gz.asc New: ---- file-5.48.dif file-5.48.tar.gz file-5.48.tar.gz.asc ----------(Old B)---------- Old:/work/SRC/openSUSE:Factory/.file.new.2375/file.changes- * file-5.47-regression.dif /work/SRC/openSUSE:Factory/.file.new.2375/file.changes: * file-5.47-s390x.patch /work/SRC/openSUSE:Factory/.file.new.2375/file.changes- * file-5.47-stanza.patch Old:/work/SRC/openSUSE:Factory/.file.new.2375/file.changes- * file-5.47-s390x.patch /work/SRC/openSUSE:Factory/.file.new.2375/file.changes: * file-5.47-stanza.patch /work/SRC/openSUSE:Factory/.file.new.2375/file.changes- ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ file.spec ++++++ --- /var/tmp/diff_new_pack.NvgHRB/_old 2026-06-10 15:47:53.591639889 +0200 +++ /var/tmp/diff_new_pack.NvgHRB/_new 2026-06-10 15:47:53.599640220 +0200 @@ -37,7 +37,7 @@ %endif # # Set Version also in python-magic.spec -Version: 5.47 +Version: 5.48 Release: 0 Summary: A Tool to Determine File Types License: BSD-2-Clause @@ -46,10 +46,9 @@ Source3: file-rpmlintrc Source4: https://www.astron.com/pub/file/file-%{version}.tar.gz.asc Source5: file.keyring -Patch0: file-5.47.dif +Patch0: file-5.48.dif Patch1: file-5.19-misc.dif Patch2: file-5.47-fdf.dif -Patch3: file-5.47-regression.dif Patch4: file-4.24-autoconf.dif Patch7: file-4.20-ssd.dif Patch9: file-5.22-elf.dif @@ -61,9 +60,7 @@ Patch27: file-5.19-zip2.0.dif Patch31: file-5.19-biorad.dif Patch32: file-5.19-clicfs.dif -Patch36: file-5.47-stanza.patch Patch37: file-secure_getenv.patch -Patch38: file-5.47-s390x.patch Patch39: file-5.28-btrfs-image.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc @@ -114,7 +111,6 @@ %if %{with debugmagic} %patch -P 1 -p0 -b .misc %patch -P 2 -p0 -b .fdf -%patch -P 3 -p0 -b .regress %endif %patch -P 4 -p0 -b .conf %if %{with debugmagic} @@ -131,9 +127,7 @@ %patch -P 31 -p0 -b .biorad %patch -P 32 -p0 -b .clicfs %endif -%patch -P 36 -p0 -b .stanza %patch -P 37 -p1 -b .getenv -%patch -P 38 -p0 -b .endianess %if %{with debugmagic} %patch -P 39 -p1 -b .btrfs %endif ++++++ python-magic.spec ++++++ --- /var/tmp/diff_new_pack.NvgHRB/_old 2026-06-10 15:47:53.863651161 +0200 +++ /var/tmp/diff_new_pack.NvgHRB/_new 2026-06-10 15:47:53.879651823 +0200 @@ -20,7 +20,7 @@ %define file_magic_version 0.4.0 %global _miscdir %{_datadir}/misc Name: python-magic -Version: 5.47 +Version: 5.48 Release: 0 Summary: Python module to use libmagic License: BSD-3-Clause AND BSD-4-Clause ++++++ file-4.21-xcursor.dif ++++++ --- /var/tmp/diff_new_pack.NvgHRB/_old 2026-06-10 15:47:54.259667571 +0200 +++ /var/tmp/diff_new_pack.NvgHRB/_new 2026-06-10 15:47:54.295669063 +0200 @@ -4,7 +4,7 @@ --- magic/Magdir/images +++ magic/Magdir/images 2026-03-27 12:41:45.618155685 +0000 -@@ -2739,7 +2739,7 @@ +@@ -2776,7 +2776,7 @@ # Type: X11 cursor # URL: http://webcvs.freedesktop.org/mime/shared-mime-info/freedesktop.org.xml.in?view=markup # From: Mathias Brodala <[email protected]> ++++++ file-5.19-biorad.dif ++++++ --- /var/tmp/diff_new_pack.NvgHRB/_old 2026-06-10 15:47:54.431674698 +0200 +++ /var/tmp/diff_new_pack.NvgHRB/_new 2026-06-10 15:47:54.435674864 +0200 @@ -6,7 +6,7 @@ =================================================================== --- magic/Magdir/images.orig +++ magic/Magdir/images -@@ -2379,6 +2379,8 @@ +@@ -2416,6 +2416,8 @@ # https://web.archive.org/web/20050317223257/www.cs.ubc.ca/spider/ladic/text/biorad.txt # Samples: https://www.loci.wisc.edu/software/sample-data 14 uleshort <2 ++++++ file-5.19-printf.dif ++++++ --- /var/tmp/diff_new_pack.NvgHRB/_old 2026-06-10 15:47:54.459675859 +0200 +++ /var/tmp/diff_new_pack.NvgHRB/_new 2026-06-10 15:47:54.471676357 +0200 @@ -6,7 +6,7 @@ =================================================================== --- src/apprentice.c.orig +++ src/apprentice.c -@@ -2676,7 +2676,7 @@ check_format_type(const char *ptr, int t +@@ -2665,7 +2665,7 @@ check_format_type(const char *ptr, int t } } else h = 0; ++++++ file-5.22-elf.dif ++++++ --- /var/tmp/diff_new_pack.NvgHRB/_old 2026-06-10 15:47:54.659684147 +0200 +++ /var/tmp/diff_new_pack.NvgHRB/_new 2026-06-10 15:47:54.691685474 +0200 @@ -6,7 +6,7 @@ =================================================================== --- src/readelf.c.orig +++ src/readelf.c -@@ -898,7 +898,7 @@ do_core_note(struct magic_set *ms, unsig +@@ -900,7 +900,7 @@ do_core_note(struct magic_set *ms, unsig default: if (type == NT_PRPSINFO && *flags & FLAGS_IS_CORE) { @@ -15,7 +15,7 @@ unsigned char c; /* * Extract the program name. We assume -@@ -910,7 +910,9 @@ do_core_note(struct magic_set *ms, unsig +@@ -912,7 +912,9 @@ do_core_note(struct magic_set *ms, unsig * If the characters aren't all printable, * reject it. */ ++++++ file-5.28-btrfs-image.dif ++++++ --- /var/tmp/diff_new_pack.NvgHRB/_old 2026-06-10 15:47:54.819690778 +0200 +++ /var/tmp/diff_new_pack.NvgHRB/_new 2026-06-10 15:47:54.855692269 +0200 @@ -17,7 +17,7 @@ =================================================================== --- file-5.43.orig/magic/Magdir/filesystems +++ file-5.43/magic/Magdir/filesystems -@@ -2292,20 +2292,29 @@ +@@ -2299,20 +2299,29 @@ >>0x10060 string >\0 lockproto %s) # Russell Coker <[email protected]> ++++++ file-5.47-regression.dif -> file-5.48.dif ++++++ --- /work/SRC/openSUSE:Factory/file/file-5.47-regression.dif 2026-04-02 17:40:42.782225272 +0200 +++ /work/SRC/openSUSE:Factory/.file.new.2375/file-5.48.dif 2026-06-10 15:47:48.807441634 +0200 @@ -1,21 +1,539 @@ -commit 3d9fe77de69d7c2fba4cffac7bb5ee5e53d2f058 -Author: Werner Fink <[email protected]> -Date: Wed Apr 1 11:08:52 2026 +0200 +--- + magic/Magdir/elf | 2 + magic/Magdir/msad | 5 + + magic/Magdir/msdos | 6 - + magic/Makefile.am | 63 +++++++++------- + magic/Makefile.in | 60 +++++++++------ + src/Makefile.am | 2 + src/dcore.c | 207 +++++++++++++++++++++++++++++++++++++++++++++++++++++ + 7 files changed, 293 insertions(+), 52 deletions(-) - Fix regression in buffer handling - - Signed-off-by: Werner Fink <[email protected]> - -diff --git src/softmagic.c src/softmagic.c -index 9aaf8b3e..2e886a4f 100644 ---- src/softmagic.c -+++ src/softmagic.c -@@ -1582,6 +1582,8 @@ normal: - } else { - if (b->fd != -1) - ms->offset = ms->eoffset + offset; -+ else -+ ms->offset = offset; - } - } - if ((ms->flags & MAGIC_DEBUG) != 0) { +--- magic/Magdir/elf ++++ magic/Magdir/elf 2026-02-27 10:51:00.596392215 +0000 +@@ -154,7 +154,7 @@ + >18 leshort 47 Renesas H8/300H, + >18 leshort 48 Renesas H8S, + >18 leshort 49 Renesas H8/500, +->18 leshort 50 IA-64, ++>18 leshort 50 IA-64 (Intel 64 bit architecture), + >18 leshort 51 Stanford MIPS-X, + >18 leshort 52 Motorola Coldfire, + >18 leshort 53 Motorola M68HC12, +--- magic/Magdir/msad ++++ magic/Magdir/msad 2026-02-27 10:51:00.596392215 +0000 +@@ -0,0 +1,5 @@ ++#------------------------------------------------------------------------------ ++# msad: file(1) magic for msad ++# Microsoft visual C ++# This must precede the heuristic for raw G3 data ++4 string Standard\ Jet\ DB Microsoft Access Database +--- magic/Magdir/msdos ++++ magic/Magdir/msdos 2026-02-27 10:51:00.600392145 +0000 +@@ -331,10 +331,10 @@ + # Check for presence of COM Runtime descriptor + >>(0x3c.l+24) leshort 0x010b + >>>(0x3c.l+116) leshort >14 +->>>>(0x3c.l+232) lelong >0 Mono/.Net assembly ++>>>>(0x3c.l+232) lelong >0 \b, Mono/.Net assembly + >>(0x3c.l+24) leshort 0x020b + >>>(0x3c.l+132) leshort >14 +->>>>(0x3c.l+248) lelong >0 Mono/.Net assembly ++>>>>(0x3c.l+248) lelong >0 \b, Mono/.Net assembly + + # hooray, there's a DOS extender using the PE format, with a valid PE + # executable inside (which just prints a message and exits if run in win) +--- magic/Makefile.am ++++ magic/Makefile.am 2026-06-08 12:18:36.995156628 +0000 +@@ -5,7 +5,7 @@ MAGIC_FRAGMENT_BASE = Magdir + MAGIC_DIR = $(top_srcdir)/magic + MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE) + +-pkgdata_DATA = magic.mgc ++pkgdata_DATA = magic.mgc magic + + MAGIC_FRAGMENTS = \ + $(MAGIC_DIR)/Header \ +@@ -26,7 +26,6 @@ $(MAGIC_FRAGMENT_DIR)/animation \ + $(MAGIC_FRAGMENT_DIR)/aout \ + $(MAGIC_FRAGMENT_DIR)/apache \ + $(MAGIC_FRAGMENT_DIR)/apl \ +-$(MAGIC_FRAGMENT_DIR)/apple \ + $(MAGIC_FRAGMENT_DIR)/application \ + $(MAGIC_FRAGMENT_DIR)/applix \ + $(MAGIC_FRAGMENT_DIR)/apt \ +@@ -111,7 +110,6 @@ $(MAGIC_FRAGMENT_DIR)/erlang \ + $(MAGIC_FRAGMENT_DIR)/espressif \ + $(MAGIC_FRAGMENT_DIR)/esri \ + $(MAGIC_FRAGMENT_DIR)/fcs \ +-$(MAGIC_FRAGMENT_DIR)/filesystems \ + $(MAGIC_FRAGMENT_DIR)/finger \ + $(MAGIC_FRAGMENT_DIR)/firmware \ + $(MAGIC_FRAGMENT_DIR)/flash \ +@@ -159,6 +157,8 @@ $(MAGIC_FRAGMENT_DIR)/isz \ + $(MAGIC_FRAGMENT_DIR)/java \ + $(MAGIC_FRAGMENT_DIR)/javascript \ + $(MAGIC_FRAGMENT_DIR)/jpeg \ ++$(MAGIC_FRAGMENT_DIR)/linux \ ++$(MAGIC_FRAGMENT_DIR)/filesystems \ + $(MAGIC_FRAGMENT_DIR)/k9 \ + $(MAGIC_FRAGMENT_DIR)/karma \ + $(MAGIC_FRAGMENT_DIR)/kde \ +@@ -172,7 +172,6 @@ $(MAGIC_FRAGMENT_DIR)/lauterbach \ + $(MAGIC_FRAGMENT_DIR)/lecter \ + $(MAGIC_FRAGMENT_DIR)/lex \ + $(MAGIC_FRAGMENT_DIR)/lif \ +-$(MAGIC_FRAGMENT_DIR)/linux \ + $(MAGIC_FRAGMENT_DIR)/lisp \ + $(MAGIC_FRAGMENT_DIR)/llvm \ + $(MAGIC_FRAGMENT_DIR)/locoscript \ +@@ -180,7 +179,6 @@ $(MAGIC_FRAGMENT_DIR)/lua \ + $(MAGIC_FRAGMENT_DIR)/luks \ + $(MAGIC_FRAGMENT_DIR)/m4 \ + $(MAGIC_FRAGMENT_DIR)/mach \ +-$(MAGIC_FRAGMENT_DIR)/macintosh \ + $(MAGIC_FRAGMENT_DIR)/macos \ + $(MAGIC_FRAGMENT_DIR)/magic \ + $(MAGIC_FRAGMENT_DIR)/mail.news \ +@@ -204,11 +202,11 @@ $(MAGIC_FRAGMENT_DIR)/misctools \ + $(MAGIC_FRAGMENT_DIR)/mkid \ + $(MAGIC_FRAGMENT_DIR)/mlssa \ + $(MAGIC_FRAGMENT_DIR)/mmdf \ +-$(MAGIC_FRAGMENT_DIR)/modem \ + $(MAGIC_FRAGMENT_DIR)/modulefile \ + $(MAGIC_FRAGMENT_DIR)/motorola \ + $(MAGIC_FRAGMENT_DIR)/mozilla \ + $(MAGIC_FRAGMENT_DIR)/msdos \ ++$(MAGIC_FRAGMENT_DIR)/modem \ + $(MAGIC_FRAGMENT_DIR)/msooxml \ + $(MAGIC_FRAGMENT_DIR)/msvc \ + $(MAGIC_FRAGMENT_DIR)/msx \ +@@ -274,6 +272,8 @@ $(MAGIC_FRAGMENT_DIR)/qt \ + $(MAGIC_FRAGMENT_DIR)/r \ + $(MAGIC_FRAGMENT_DIR)/revision \ + $(MAGIC_FRAGMENT_DIR)/riff \ ++$(MAGIC_FRAGMENT_DIR)/apple \ ++$(MAGIC_FRAGMENT_DIR)/macintosh \ + $(MAGIC_FRAGMENT_DIR)/ringdove \ + $(MAGIC_FRAGMENT_DIR)/rpi \ + $(MAGIC_FRAGMENT_DIR)/rpm \ +@@ -371,9 +371,21 @@ EXTRA_DIST = \ + $(MAGIC_DIR)/scripts/create_filemagic_flac \ + $(MAGIC_FRAGMENTS) + +- ++RAW = magic + MAGIC = magic.mgc +-CLEANFILES = ${MAGIC} $(MAGIC_FRAGMENT_DIR)/Localstuff ++CLEANFILES = ${MAGIC} $(MAGIC_FRAGMENT_DIR)/Localstuff ${RAW} ++ ++${RAW}: $(MAGIC_DIR)/Header $(MAGIC_DIR)/Localstuff $(MAGIC_FRAGMENTS) ++ cat /dev/null > $@ ++ for frag in $(MAGIC_FRAGMENTS); do \ ++ if test -f $(srcdir)/$$frag; then \ ++ f=$(srcdir)/$$frag; \ ++ else \ ++ f=$$frag; \ ++ fi; \ ++ cat $$f; \ ++ done >> $@ ++ + + # FIXME: Build file natively as well so that it can be used to compile + # the target's magic file; for now we bail if the local version does not match +@@ -385,19 +397,22 @@ FILE_COMPILE = $(top_builddir)/src/file$ + FILE_COMPILE_DEP = $(FILE_COMPILE) + endif + +-${MAGIC}: $(MAGIC_FRAGMENTS) $(FILE_COMPILE_DEP) +- @rm -fr magic +- @mkdir magic && cp -p $(MAGIC_FRAGMENTS) magic +- @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \ +- echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \ +- else \ +- v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \ +- if [ "$$v" != "${PACKAGE_VERSION}" ]; then \ +- echo "Cannot use the installed version of file ($$v) to"; \ +- echo "cross-compile file ${PACKAGE_VERSION}"; \ +- echo "Please install file ${PACKAGE_VERSION} locally first"; \ +- exit 1; \ +- fi; \ +- fi) +- $(FILE_COMPILE) -C -m magic +- @rm -fr magic ++${MAGIC}: $(MAGIC_FRAGMENTS) $(FILE_COMPILE_DEP) $(RAW) ++ $(FILE_COMPILE) -C -m $(RAW) ++ ++#${MAGIC}: $(MAGIC_FRAGMENTS) $(FILE_COMPILE_DEP) ++# @rm -fr magic ++# @mkdir magic && cp -p $(MAGIC_FRAGMENTS) magic ++# @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \ ++# echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \ ++# else \ ++# v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \ ++# if [ "$$v" != "${PACKAGE_VERSION}" ]; then \ ++# echo "Cannot use the installed version of file ($$v) to"; \ ++# echo "cross-compile file ${PACKAGE_VERSION}"; \ ++# echo "Please install file ${PACKAGE_VERSION} locally first"; \ ++# exit 1; \ ++# fi; \ ++# fi) ++# $(FILE_COMPILE) -C -m magic ++# @rm -fr magic +--- magic/Makefile.in ++++ magic/Makefile.in 2026-02-27 10:51:00.600392145 +0000 +@@ -287,7 +287,7 @@ top_srcdir = @top_srcdir@ + MAGIC_FRAGMENT_BASE = Magdir + MAGIC_DIR = $(top_srcdir)/magic + MAGIC_FRAGMENT_DIR = $(MAGIC_DIR)/$(MAGIC_FRAGMENT_BASE) +-pkgdata_DATA = magic.mgc ++pkgdata_DATA = magic.mgc magic + MAGIC_FRAGMENTS = \ + $(MAGIC_DIR)/Header \ + $(MAGIC_DIR)/Localstuff \ +|@@ -302,7 +302,6 @@ $(MAGIC_FRAGMENT_DIR)/animation \ +| $(MAGIC_FRAGMENT_DIR)/aout \ +| $(MAGIC_FRAGMENT_DIR)/apache \ +| $(MAGIC_FRAGMENT_DIR)/apl \ +|-$(MAGIC_FRAGMENT_DIR)/apple \ +| $(MAGIC_FRAGMENT_DIR)/application \ +| $(MAGIC_FRAGMENT_DIR)/applix \ +| $(MAGIC_FRAGMENT_DIR)/apt \ +|@@ -386,7 +385,6 @@ $(MAGIC_FRAGMENT_DIR)/erlang \ +| $(MAGIC_FRAGMENT_DIR)/espressif \ +| $(MAGIC_FRAGMENT_DIR)/esri \ +| $(MAGIC_FRAGMENT_DIR)/fcs \ +|-$(MAGIC_FRAGMENT_DIR)/filesystems \ +| $(MAGIC_FRAGMENT_DIR)/finger \ +| $(MAGIC_FRAGMENT_DIR)/firmware \ +| $(MAGIC_FRAGMENT_DIR)/flash \ +|@@ -434,6 +432,8 @@ $(MAGIC_FRAGMENT_DIR)/isz \ +| $(MAGIC_FRAGMENT_DIR)/java \ +| $(MAGIC_FRAGMENT_DIR)/javascript \ +| $(MAGIC_FRAGMENT_DIR)/jpeg \ +|+$(MAGIC_FRAGMENT_DIR)/linux \ +|+$(MAGIC_FRAGMENT_DIR)/filesystems \ +| $(MAGIC_FRAGMENT_DIR)/karma \ +| $(MAGIC_FRAGMENT_DIR)/kde \ +| $(MAGIC_FRAGMENT_DIR)/keepass \ +|@@ -446,7 +446,6 @@ $(MAGIC_FRAGMENT_DIR)/lauterbach \ +| $(MAGIC_FRAGMENT_DIR)/lecter \ +| $(MAGIC_FRAGMENT_DIR)/lex \ +| $(MAGIC_FRAGMENT_DIR)/lif \ +|-$(MAGIC_FRAGMENT_DIR)/linux \ +| $(MAGIC_FRAGMENT_DIR)/lisp \ +| $(MAGIC_FRAGMENT_DIR)/llvm \ +| $(MAGIC_FRAGMENT_DIR)/locoscript \ +|@@ -454,7 +453,6 @@ $(MAGIC_FRAGMENT_DIR)/lua \ +| $(MAGIC_FRAGMENT_DIR)/luks \ +| $(MAGIC_FRAGMENT_DIR)/m4 \ +| $(MAGIC_FRAGMENT_DIR)/mach \ +|-$(MAGIC_FRAGMENT_DIR)/macintosh \ +| $(MAGIC_FRAGMENT_DIR)/macos \ +| $(MAGIC_FRAGMENT_DIR)/magic \ +| $(MAGIC_FRAGMENT_DIR)/mail.news \ +|@@ -478,11 +476,11 @@ $(MAGIC_FRAGMENT_DIR)/misctools \ +| $(MAGIC_FRAGMENT_DIR)/mkid \ +| $(MAGIC_FRAGMENT_DIR)/mlssa \ +| $(MAGIC_FRAGMENT_DIR)/mmdf \ +|-$(MAGIC_FRAGMENT_DIR)/modem \ +| $(MAGIC_FRAGMENT_DIR)/modulefile \ +| $(MAGIC_FRAGMENT_DIR)/motorola \ +| $(MAGIC_FRAGMENT_DIR)/mozilla \ +| $(MAGIC_FRAGMENT_DIR)/msdos \ +|+$(MAGIC_FRAGMENT_DIR)/modem \ +| $(MAGIC_FRAGMENT_DIR)/msooxml \ +| $(MAGIC_FRAGMENT_DIR)/msvc \ +| $(MAGIC_FRAGMENT_DIR)/msx \ +|@@ -547,6 +545,8 @@ $(MAGIC_FRAGMENT_DIR)/r \ +| $(MAGIC_FRAGMENT_DIR)/revision \ +| $(MAGIC_FRAGMENT_DIR)/ringdove \ +| $(MAGIC_FRAGMENT_DIR)/riff \ +|+$(MAGIC_FRAGMENT_DIR)/apple \ +|+$(MAGIC_FRAGMENT_DIR)/macintosh \ +| $(MAGIC_FRAGMENT_DIR)/rpi \ +| $(MAGIC_FRAGMENT_DIR)/rpm \ +| $(MAGIC_FRAGMENT_DIR)/rpmsg \ +@@ -643,10 +643,22 @@ EXTRA_DIST = \ + $(MAGIC_DIR)/scripts/create_filemagic_flac \ + $(MAGIC_FRAGMENTS) + ++RAW = magic + MAGIC = magic.mgc +-CLEANFILES = ${MAGIC} $(MAGIC_FRAGMENT_DIR)/Localstuff ++CLEANFILES = ${MAGIC} $(MAGIC_FRAGMENT_DIR)/Localstuff ${RAW} + @IS_CROSS_COMPILE_FALSE@FILE_COMPILE = $(top_builddir)/src/file${EXEEXT} + ++${RAW}: $(MAGIC_DIR)/Header $(MAGIC_DIR)/Localstuff $(MAGIC_FRAGMENTS) ++ cat /dev/null > $@ ++ for frag in $(MAGIC_FRAGMENTS); do \ ++ if test -f $(srcdir)/$$frag; then \ ++ f=$(srcdir)/$$frag; \ ++ else \ ++ f=$$frag; \ ++ fi; \ ++ cat $$f; \ ++ done >> $@ ++ + # FIXME: Build file natively as well so that it can be used to compile + # the target's magic file; for now we bail if the local version does not match + @IS_CROSS_COMPILE_TRUE@FILE_COMPILE = file${EXEEXT} +@@ -870,23 +882,25 @@ uninstall-am: uninstall-pkgdataDATA + + .PRECIOUS: Makefile + ++${MAGIC}: $(MAGIC_FRAGMENTS) $(FILE_COMPILE_DEP) $(RAW) ++ $(FILE_COMPILE) -C -m $(RAW) + +-${MAGIC}: $(MAGIC_FRAGMENTS) $(FILE_COMPILE_DEP) +- @rm -fr magic +- @mkdir magic && cp -p $(MAGIC_FRAGMENTS) magic +- @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \ +- echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \ +- else \ +- v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \ +- if [ "$$v" != "${PACKAGE_VERSION}" ]; then \ +- echo "Cannot use the installed version of file ($$v) to"; \ +- echo "cross-compile file ${PACKAGE_VERSION}"; \ +- echo "Please install file ${PACKAGE_VERSION} locally first"; \ +- exit 1; \ +- fi; \ +- fi) +- $(FILE_COMPILE) -C -m magic +- @rm -fr magic ++#${MAGIC}: $(MAGIC_FRAGMENTS) $(FILE_COMPILE_DEP) ++# @rm -fr magic ++# @mkdir magic && cp -p $(MAGIC_FRAGMENTS) magic ++# @(if expr "${FILE_COMPILE}" : '.*/.*' > /dev/null; then \ ++# echo "Using ${FILE_COMPILE} to generate ${MAGIC}" > /dev/null; \ ++# else \ ++# v=$$(${FILE_COMPILE} --version | sed -e s/file-// -e q); \ ++# if [ "$$v" != "${PACKAGE_VERSION}" ]; then \ ++# echo "Cannot use the installed version of file ($$v) to"; \ ++# echo "cross-compile file ${PACKAGE_VERSION}"; \ ++# echo "Please install file ${PACKAGE_VERSION} locally first"; \ ++# exit 1; \ ++# fi; \ ++# fi) ++# $(FILE_COMPILE) -C -m magic ++# @rm -fr magic + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. +--- src/Makefile.am ++++ src/Makefile.am 2026-02-27 10:51:00.600392145 +0000 +@@ -1,4 +1,4 @@ +-MAGIC = $(pkgdatadir)/magic ++MAGIC = $(sysconfdir)/magic:$(pkgdatadir)/magic + lib_LTLIBRARIES = libmagic.la + nodist_include_HEADERS = magic.h + +--- src/dcore.c ++++ src/dcore.c 2026-02-27 10:51:00.600392145 +0000 +@@ -0,0 +1,207 @@ ++/* ++ * Show goo about ELF core files ++ * Jeremy Fitzhardinge <[email protected]> 1996 ++ */ ++#include <unistd.h> ++#include <fcntl.h> ++#include <stdlib.h> ++#include <stdio.h> ++#include <sys/types.h> ++#include <string.h> ++#if defined __GLIBC__ && __GLIBC__ >= 2 ++#include <elf.h> ++#include <sys/procfs.h> ++# ifndef NT_PRFPREG ++# define NT_PRFPREG 2 ++# endif ++# ifndef NT_TASKSTRUCT ++# define NT_TASKSTRUCT 4 ++# endif ++#else ++#include <linux/elf.h> ++#include <linux/elfcore.h> ++#endif ++ ++static void fperror(const char *str) ++{ ++ perror(str); ++ exit(1); ++} ++ ++static size_t myread(int fd, void *buf, size_t sz) ++{ ++ size_t ret; ++ ++ if ((ret = read(fd, buf, sz)) != sz) ++ fperror("read failed"); ++ return ret; ++} ++ ++static void print_prstatus(const prstatus_t *pr) ++{ ++ unsigned i; ++ static const char *regs[] = { "ebx", "ecx", "edx", "esi", "edi", "ebp", ++ "eax", "ds", "es", "fs", "gs", ++ "orig_eax", "eip", "cs", ++ "efl", "uesp", "ss"}; ++ ++ printf(" pid=%d ppid=%d pgrp=%d sid=%d\n", ++ pr->pr_pid, pr->pr_ppid, pr->pr_pgrp, pr->pr_sid); ++ for(i = 0; i < NGREG; i++) ++ { ++ unsigned long val = pr->pr_reg[i]; ++ printf(" %-2u %-5s=%08lx %lu\n", i, regs[i], val, val); ++ } ++} ++ ++static void print_prpsinfo(const prpsinfo_t *ps) ++{ ++ printf(" uid=%d gid=%d\n", ps->pr_uid, ps->pr_gid); ++ printf(" comm=%s\n", ps->pr_fname); ++ printf(" psargs=%s\n", ps->pr_psargs); ++} ++ ++#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) ++ ++static void do_note(int fd, Elf32_Phdr *phdr) ++{ ++ off_t here = lseek(fd, 0, SEEK_CUR); ++ int size = phdr->p_filesz; ++ char *raw = alloca(size), *end; ++ end = raw+size; ++ ++ lseek(fd, phdr->p_offset, SEEK_SET); ++ myread(fd, raw, size); ++ ++ while(raw < end) ++ { ++ Elf32_Nhdr *note = (Elf32_Nhdr *)raw; ++ const char *str; ++ const char *name, *desc; ++ ++ raw += sizeof(*note); ++ name = raw; ++ raw += roundup(note->n_namesz, sizeof(long)); ++ desc = raw; ++ raw += roundup(note->n_descsz, sizeof(long)); ++ ++ printf(" name=%.*s", (int)note->n_namesz, name); ++ ++ if(strncmp(name, "CORE", note->n_namesz) != 0) ++ { ++ printf("\n"); ++ continue; ++ } ++ ++ switch(note->n_type) ++ { ++#define X(x) case x: str = #x; break; ++ X(NT_PRSTATUS); ++ X(NT_PRFPREG); ++ X(NT_PRPSINFO); ++ X(NT_TASKSTRUCT); ++#undef X ++ default: ++ str = "???"; ++ } ++ printf(" n_type=%s n_descsz=%ld\n", ++ str, note->n_descsz); ++ switch(note->n_type) ++ { ++ case NT_PRSTATUS: ++ print_prstatus((prstatus_t *)desc); ++ break; ++ case NT_PRPSINFO: ++ print_prpsinfo((prpsinfo_t *)desc); ++ break; ++ } ++ } ++ lseek(fd, here, SEEK_SET); ++} ++ ++int main(int argc, char *argv[]) ++{ ++ int fd; ++ Elf32_Ehdr elf; ++ int i; ++ ++ if (argc != 2) ++ { ++ fprintf(stderr, "Usage: %s corefile\n", argv[0]); ++ exit(1); ++ } ++ ++ if ((fd = open(argv[1], O_RDONLY)) == -1) ++ fperror("open of core"); ++ ++ myread(fd, &elf, sizeof(elf)); ++ ++ if (memcmp(ELFMAG, elf.e_ident, SELFMAG) != 0) ++ printf("bad magic\n"); ++ ++ if (elf.e_ident[EI_CLASS] != ELFCLASS32) ++ printf("wrong class\n"); ++ ++ if (elf.e_ident[EI_DATA] != ELFDATA2LSB) ++ printf("wrong endianess\n"); ++ ++ if (elf.e_ident[EI_VERSION] != EV_CURRENT) ++ printf("wrong version\n"); ++ ++ { ++ const char *str; ++ switch(elf.e_type) ++ { ++#define C(x) case ET_##x: str = #x; break; ++ C(NONE); ++ C(REL); ++ C(EXEC); ++ C(DYN); ++ C(CORE); ++#undef C ++ default: str = "???"; break; ++ } ++ printf("elf file type ET_%s\n", str); ++ } ++ ++ if (elf.e_machine != EM_386 && elf.e_machine != EM_486) ++ printf("not i386 or i486\n"); ++ ++ if (elf.e_ehsize != sizeof(elf)) ++ printf("wrong header size\n"); ++ ++ if (elf.e_phentsize != sizeof(Elf32_Phdr)) ++ printf("wrong phdr size\n"); ++ ++ if (lseek(fd, elf.e_phoff, SEEK_SET) != (off_t)elf.e_phoff) ++ fperror("lseek to phdr failed\n"); ++ ++ for(i = 0; i < elf.e_phnum; i++) ++ { ++ Elf32_Phdr phdr; ++ const char *str; ++ ++ myread(fd, &phdr, sizeof(phdr)); ++ switch(phdr.p_type) ++ { ++#define C(x) case PT_##x: str = #x; break; ++ C(NULL); ++ C(LOAD); ++ C(DYNAMIC); ++ C(INTERP); ++ C(NOTE); ++ C(SHLIB); ++ C(PHDR); ++#undef C ++ default: ++ str = "???"; break; ++ } ++ printf("type PT_%s off=%ld vaddr=%lx filesz=%ld flags=%lx\n", ++ str, phdr.p_offset, phdr.p_vaddr, phdr.p_filesz, ++ (unsigned long)phdr.p_flags); ++ if (phdr.p_type == PT_NOTE) ++ do_note(fd, &phdr); ++ } ++ exit(0); ++} ++ ++++++ file-5.47.tar.gz -> file-5.48.tar.gz ++++++ ++++ 7034 lines of diff (skipped) ++++++ file-secure_getenv.patch ++++++ --- /var/tmp/diff_new_pack.NvgHRB/_old 2026-06-10 15:47:55.963738187 +0200 +++ /var/tmp/diff_new_pack.NvgHRB/_new 2026-06-10 15:47:55.967738352 +0200 @@ -6,7 +6,7 @@ --- file-5.42/configure.ac +++ file-5.42/configure.ac 2022-06-13 08:34:50.347521415 +0000 -@@ -138,6 +138,8 @@ if test "$enable_xzlib" != "no"; then +@@ -143,6 +143,8 @@ if test "$enable_xzlib" != "no"; then fi AC_CHECK_TYPE([sig_t],[AC_DEFINE([HAVE_SIG_T],1,[Have sig_t type])],,[#include <signal.h>]) @@ -17,7 +17,7 @@ AC_TYPE_SIZE_T --- file-5.47/src/file.h +++ file-5.47/src/file.h 2026-02-27 10:50:37.160814338 +0000 -@@ -739,6 +739,14 @@ static const char *rcsid(const char *p) +@@ -748,6 +748,14 @@ static const char *rcsid(const char *p) #define __RCSID(a) #endif @@ -34,16 +34,16 @@ --- file-5.42/src/magic.c +++ file-5.42/src/magic.c 2022-06-13 08:36:49.997304349 +0000 -@@ -185,7 +185,7 @@ get_default_magic(void) - free(default_magic); - default_magic = NULL; - } +@@ -181,7 +181,7 @@ get_default_magic(void) + #ifndef WIN32 + struct stat st; + - if ((home = getenv("HOME")) == NULL) + if ((home = secure_getenv("HOME")) == NULL) return MAGIC; if (asprintf(&hmagicpath, "%s/.magic.mgc", home) < 0) -@@ -222,20 +222,20 @@ out: +@@ -221,20 +221,20 @@ out: } /* Before anything else, try to get a magic file from user HOME */ @@ -68,7 +68,7 @@ _w32_append_path(&hmagicpath, "%s%s", home, hmagic); /* Fourth, try to get magic file relative to exe location */ -@@ -256,7 +256,7 @@ magic_getpath(const char *magicfile, int +@@ -257,7 +257,7 @@ magic_getpath(const char *magicfile, int if (magicfile != NULL) return magicfile;
