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;
  

Reply via email to