head 1.1; branch 1.1.1; access; symbols netbsd-10-2-RELEASE:1.1.1.1 netbsd-11-0-RELEASE:1.1.1.2 netbsd-11-0-RC7:1.1.1.2 netbsd-11-0-RC6:1.1.1.2 netbsd-11-0-RC5:1.1.1.2 FILE5_48:1.1.1.3 netbsd-11-0-RC4:1.1.1.2 netbsd-11-0-RC3:1.1.1.2 netbsd-11-0-RC2:1.1.1.2 netbsd-11-0-RC1:1.1.1.2 perseant-exfatfs-base-20250801:1.1.1.2 netbsd-11:1.1.1.2.0.4 netbsd-11-base:1.1.1.2 netbsd-10-1-RELEASE:1.1.1.1 perseant-exfatfs-base-20240630:1.1.1.2 perseant-exfatfs:1.1.1.2.0.2 perseant-exfatfs-base:1.1.1.2 netbsd-10-0-RELEASE:1.1.1.1 netbsd-10-0-RC6:1.1.1.1 netbsd-10-0-RC5:1.1.1.1 netbsd-10-0-RC4:1.1.1.1 netbsd-10-0-RC3:1.1.1.1 netbsd-10-0-RC2:1.1.1.1 netbsd-10-0-RC1:1.1.1.1 FILE5_45:1.1.1.2 netbsd-10:1.1.1.1.0.2 netbsd-10-base:1.1.1.1 FILE5_43:1.1.1.1 CHRISTOS:1.1.1; locks; strict; comment @# @; 1.1 date 2022.09.24.20.07.54; author christos; state Exp; branches 1.1.1.1; next ; commitid Nf6F9kcpc0EPC9VD; 1.1.1.1 date 2022.09.24.20.07.54; author christos; state Exp; branches; next 1.1.1.2; commitid Nf6F9kcpc0EPC9VD; 1.1.1.2 date 2023.08.18.18.36.50; author christos; state Exp; branches; next 1.1.1.3; commitid IX26ghc1E2S0AiBE; 1.1.1.3 date 2026.06.10.15.59.14; author christos; state Exp; branches; next ; commitid 3UWc0DrzTz7bHgJG; desc @@ 1.1 log @Initial revision @ text @#------------------------------------------------------------------------------ # $File: gentoo,v 1.2 2022/09/12 13:13:28 christos Exp $ # gentoo: file(1) magic for gentoo specific formats # # Summary: Gentoo ebuild Manifest files (GLEP 74) # Reference: https://www.gentoo.org/glep/glep-0074.html # Submitted by: Michal Gorny # Start by doing a fast check for the most common tags. 0 string AUX >0 use gentoo-manifest 0 string DATA >0 use gentoo-manifest 0 string DIST >0 use gentoo-manifest 0 string EBUILD >0 use gentoo-manifest 0 string MANIFEST >0 use gentoo-manifest # Manifest can be PGP-signed. 0 string -----BEGIN\040PGP\040SIGNED\040MESSAGE----- >34 search/32 \n\n >>&0 string AUX >>>&0 use gentoo-manifest >>&0 string DATA >>>&0 use gentoo-manifest >>&0 string DIST >>>&0 use gentoo-manifest >>&0 string EBUILD >>>&0 use gentoo-manifest >>&0 string MANIFEST >>>&0 use gentoo-manifest # Use a more detailed regex to verify that we were correct. # ... # ('s already been matched prior to calling) 0 name gentoo-manifest >&0 regex [[:space:]]+[[:print:]]+[[:space:]]+[[:digit:]]+[[:space:]]+[[:alnum:]]+[[:space:]]+[[:xdigit:]]{32} Gentoo Manifest (GLEP 74) # Summary: Gentoo ebuild and eclass files # Reference: https://projects.gentoo.org/pms/8/pms.html # Submitted by: Michal Gorny 0 search/512 EAPI= >0 regex .*\n[\040\t]*EAPI=["']? Gentoo ebuild >>&0 regex [[:alnum:]+_.-]+ \b, EAPI %s 0 search/512 @@ECLASS:\040 Gentoo eclass >&0 string x %s # Summary: Gentoo supplementary package and category metadata files # Reference: https://www.gentoo.org/glep/glep-0068.html # Submitted by: Michal Gorny 0 string \0 search/512 \0 search/512 \ # GPKG uses ustar (or ustar-compatible GNU format) that starts with # a /gpkg-1 file 257 string ustar >0 search/100 /gpkg-1\0 >>0 regex [^/]+ Gentoo GLEP 78 (GPKG) binary package for "%s" !:mime application/x-tar !:ext tar # the logic below requires the gpkg-1 file to be empty >>>124 string 00000000000\0 # determine the compression used by looking at the second member name >>>>512 search/100 .tar. >>>>>&0 string gz\0 using gzip compression >>>>>&0 string bz2\0 using bzip2 compression >>>>>&0 string lz\0 using lzip compression >>>>>&0 string lz4\0 using lz4 compression >>>>>&0 string lzo\0 using lzo compression >>>>>&0 string xz\0 using xz compression >>>>>&0 string zst\0 using zstd compression >>>>(636.o+1024) search/611 .sig\0 \b, signed @ 1.1.1.1 log @Import file-5.43+; last was file-5.40 2022-09-20 17:12 Christos Zoulas * fixed various clustefuzz issues 2022-09-19 15:54 Christos Zoulas * Fix error detection for decompression code (Vincent Mihalkovic) 2022-09-15 13:50 Christos Zoulas * Add MAGIC_NO_COMPRESS_FORK and use it to produce a more meaningful error message if we are sandboxing. 2022-09-15 10:45 Christos Zoulas * Add built-in lzip decompression support (Michal Gorny) 2022-09-14 10:35 Christos Zoulas * Add built-in zstd decompression support (Martin Rodriguez Reboredo) 2022-09-13 14:55 Christos Zoulas * release 5.43 2022-09-10 9:17 Christos Zoulas * Add octal indirect magic (Michal Gorny) 2022-08-17 11:43 Christos Zoulas * PR/374: avoid infinite loop in non-wide code (piru) * PR/373: Obey MAGIC_CONTINUE with multiple magic files (vismarli) 2022-07-26 11:10 Christos Zoulas * Fix bug with large flist (Florian Weimer) 2022-07-07 13:21 Christos Zoulas * PR/364: Detect non-nul-terminated core filenames from QEMU (mam-ableton) 2022-07-04 15:45 Christos Zoulas * PR/359: Add support for http://ndjson.org/ (darose) * PR/362: Fix wide printing (ro-ee) * PR/358: Fix width for -f - (jpalus) * PR/356: Fix JSON constant parsing (davewhite) 2022-06-10 9:40 Christos Zoulas * release 5.42 2022-05-31 14:50 Christos Zoulas * PR/348: add missing cases to prevent file from aborting on random magic files. 2022-05-27 21:05 Christos Zoulas * PR/351: octalify filenames when not raw before printing. 2022-04-18 17:51 Christos Zoulas * fix regex cacheing bug (Dirk Mueller) * merge file_regcomp and file_regerror() to simplify the code and reduce memory requirements for storing regexes (Dirk Mueller) 2022-03-19 12:56 Christos Zoulas * cache regex (Dirk Mueller) * detect filesystem full by flushing output (Dirk Mueller) 2021-11-19 12:36 Christos Zoulas * implement running decompressor programs using posix_spawnp(2) instead of vfork(2) 2021-10-24 11:51 Christos Zoulas * Add support for msdos dates and times 2021-10-20 9:55 Christos Zoulas * use the system byte swapping functions if available (Werner Fink) 2021-10-18 11:57 Christos Zoulas * release 5.41 2021-09-23 03:51 Christos Zoulas * Avinash Sonawane: Fix tzname detection 2021-09-03 09:17 Christos Zoulas * Fix relationship tests with "search" magic, don't short circuit logic 2021-07-13 01:06 Christos Zoulas * Fix memory leak in compile mode 2021-07-01 03:51 Christos Zoulas * PR/272: kiefermat: Only set returnval = 1 when we printed something (in all cases print or !print). This simplifies the logic and fixes the issue in the PR with -k and --mime-type there was no continuation printed before the default case. 2021-06-30 13:07 Christos Zoulas * PR/270: Don't translate unprintable characters in %s magic formats when -r * PR/269: Avoid undefined behavior with clang (adding offset to NULL) 2021-05-09 18:38 Christos Zoulas * Add a new flag (f) that requires that the match is a full word, not a partial word match. * Add varint types (unused) 2021-04-19 17:17 Christos Zoulas * PR/256: mutableVoid: If the file is less than 3 bytes, use the file length to determine type * PR/259: aleksandr.v.novichkov: mime printing through indirect magic is not taken into account, use match directly so that it does. 2021-04-04 17:02 Christos Zoulas * count the total bytes found not the total byte positions in order to determine encoding (Anatol Belski) @ text @@ 1.1.1.2 log @Update to file-5.45 (Last was file-5.44) 2023-07-27 15:45 Christos Zoulas * release 5.45 2023-07-17 11:53 Christos Zoulas * PR/465: psrok1: Avoid muslc asctime_r crash 2023-05-21 13:05 Christos Zoulas * add SIMH tape format support 2023-02-09 12:50 Christos Zoulas * bump the max size of the elf section notes to be read to 128K and make it configurable 2023-01-08 1:08 Christos Zoulas * PR/415: Fix decompression with program returning empty 2022-12-26 1:47 Christos Zoulas * PR/408: fix -p with seccomp * PR/412: fix MinGW compilation @ text @d2 1 a2 1 # $File: gentoo,v 1.5 2022/12/26 17:16:55 christos Exp $ a38 1 !:mime application/vnd.gentoo.manifest a45 1 !:mime application/vnd.gentoo.ebuild a48 1 !:mime application/vnd.gentoo.eclass a54 1 !:mime application/vnd.gentoo.catmetadata+xml a55 1 !:mime application/vnd.gentoo.pkgmetadata+xml d67 1 a67 1 !:mime application/vnd.gentoo.gpkg @ 1.1.1.3 log @Import file-5.48 (previous was file-5.45) 2026-05-07 11:32 Christos Zoulas * release 5.48 2026-05-11 15:55 Christos Zoulas * add landlock support (valoq) 2026-04-19 15:55 Christos Zoulas * add BE/LE GUID 2026-04-17 11:05 Christos Zoulas * multiple fixes to prevent integer overflow in 32 bits (kerwin) 2026-04-15 12:40 Christos Zoulas * PR/745: streamout: 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() 2026-03-11 15:14 Christos Zoulas * PR/728: Anton Monroe: Reinstate regex/c 2026-02-26 11:32 Christos Zoulas * release 5.47 2026-02-04 09:54 Christos Zoulas * Better multi-compound document identification by following the order of the directories entries. (Thomas Ledoux) 2026-01-19 14:00 Christos Zoulas * if stat fails, don't attempt to restore times (Steven Grubb) 2025-05-28 15:20 Christos Zoulas * PR/622: Odd_Bloke: Handle negative offsets in file_buffer(), when fd is not available. 2025-05-28 12:50 Christos Zoulas * PR/655: jsummers: Obey str_flags in strings like we do for search and regex * PR/659: Pitzl: Apply MAGIC_CONTINUE to annotations; i.e. print only the first, unless -k is specified. 2024-12-19 14:44 Christos Zoulas * PR/592: allow + in format strings * PR/592: signed operations should be done in signed context 2024-12-05 13:50 Christos Zoulas * PR/578: jsummers: Don't crash on cygwin when tm_mon == -1 * PR/579: net147: Fix stack overrun. 2024-11-27 14:44 Christos Zoulas * release 5.46 * Add OFFPOSITIVE 2024-11-25 13:56 Christos Zoulas * avoid leaking symbols in libmagic 2024-11-10 13:56 Christos Zoulas * PR/562: jsummers: Search/regex offsets are absolute to the beginning of the file, so adjust them by subtracting the offset that the "use" starts so that we don't double-count it. 2024-11-09 19:30 Christos Zoulas * PR/543: matshch: bump nbuf so we can get the flags into the buffer. 2024-11-02 14:34 Christos Zoulas * Add Android elf notes (enh) 2023-12-29 12:55 Christos Zoulas * Add limit for number of magic warnings allowed 2023-07-29 12:55 Christos Zoulas * check regex bounds (found by clusterfuzz) @ text @d2 1 a2 1 # $File: gentoo,v 1.6 2024/02/11 15:39:59 christos Exp $ d9 1 a9 1 0 string AUX\040 d11 1 a11 1 0 string DATA\040 d13 1 a13 1 0 string DIST\040 d15 1 a15 1 0 string EBUILD\040 d17 1 a17 1 0 string MANIFEST\040 d23 1 a23 1 >>&0 string AUX\040 d25 1 a25 1 >>&0 string DATA\040 d27 1 a27 1 >>&0 string DIST\040 d29 1 a29 1 >>&0 string EBUILD\040 d31 1 a31 1 >>&0 string MANIFEST\040 @