Skip to content

Instantly share code, notes, and snippets.

@zeszyt
Created March 29, 2016 23:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zeszyt/71ca01a576c10806491bca8bd72a9606 to your computer and use it in GitHub Desktop.
Save zeszyt/71ca01a576c10806491bca8bd72a9606 to your computer and use it in GitHub Desktop.
diff -qur -x m etc58/daily etc59/daily
--- etc58/daily Sun Aug 16 10:25:09 2015
+++ etc59/daily Fri Feb 26 09:14:28 2016
@@ -1,5 +1,5 @@
#
-# $OpenBSD: daily,v 1.83 2015/04/29 00:10:44 halex Exp $
+# $OpenBSD: daily,v 1.85 2016/01/28 15:45:34 schwarze Exp $
# From: @(#)daily 8.2 (Berkeley) 1/25/94
#
# For local additions, create the file /etc/daily.local.
@@ -49,10 +49,10 @@
cd /tmp && {
find -x . \
\( -path './ssh-*' -o -path ./.X11-unix -o -path ./.ICE-unix \
- -o -path ./portslocks -o -path './tmux-*' \) \
+ -o -path './tmux-*' \) \
-prune -o -type f -atime +7 -execdir rm -f -- {} \; 2>/dev/null
find -x . -type d -mtime +1 ! -path ./vi.recover ! -path ./.X11-unix \
- ! -path ./.ICE-unix ! -path ./portslocks ! -name . \
+ ! -path ./.ICE-unix ! -name . \
-execdir rmdir -- {} \; >/dev/null 2>&1; }
fi
@@ -125,6 +125,9 @@
fsck -y /dev/r$rootbak
break
done
+
+next_part "Services that should run but don't:"
+rcctl ls faulty
next_part "Checking subsystem status:"
if [ "X$VERBOSESTATUS" != X0 ]; then
diff -qur -x m etc58/disktab etc59/disktab
--- etc58/disktab Sun Aug 16 10:25:09 2015
+++ etc59/disktab Fri Feb 26 09:14:28 2016
@@ -1,35 +1,35 @@
-# $OpenBSD: disktab,v 1.23 2015/07/27 19:17:10 krw Exp $
+# $OpenBSD: disktab,v 1.25 2015/08/14 23:45:55 krw Exp $
mini34|gzip bsd.rd disk image 3.40625MB:\
- :ty=SCSI:se#512:nt#1:ns#64:nc#109:\
+ :dt=rdroot:se#512:nt#1:ns#64:nc#109:\
:pa#6912:oa#64:ba#8192:fa#1024:ta=4.2BSD: \
:pc#6976:oc#0:
install240|install.fs disk image 240MB:\
- :ty=SCSI:se#512:nt#1:ns#64:nc#7680:\
+ :dt=rdroot:se#512:nt#1:ns#64:nc#7680:\
:pa#491456:oa#64:ba#8192:fa#1024:ta=4.2BSD: \
:pc#491520:oc#0:
floppy288|3in|3.5in High Density Floppy, 2.88MB:\
- :dt=floppy:ty=floppy:se#512:nt#2:rm#300:ns#36:nc#80:\
+ :dt=floppy:se#512:nt#2:ns#36:nc#80:\
:pa#5760:oa#0:ba#4096:fa#512:ta=4.2BSD: \
:pb#5760:ob#0:\
:pc#5760:oc#0:
floppy|floppy3|3in|3.5in High Density Floppy:\
- :dt=floppy:ty=floppy:se#512:nt#2:rm#300:ns#18:nc#80:\
+ :dt=floppy:se#512:nt#2:ns#18:nc#80:\
:pa#2880:oa#0:ba#4096:fa#512:ta=4.2BSD: \
:pb#2880:ob#0:\
:pc#2880:oc#0:
floppy5|5in|5.25in High Density Floppy:\
- :dt=floppy:ty=floppy:se#512:nt#2:rm#300:ns#15:nc#80:\
+ :dt=floppy:se#512:nt#2:ns#15:nc#80:\
:pa#2400:oa#0:ba#4096:fa#512:ta=4.2BSD: \
:pb#2400:ob#0:bb#4096:fb#512:\
:pc#2400:oc#0:bc#4096:fc#512:
rdroot|ramdiskroot|RAM-disk root FS image:\
- :ty=ramdisk:se#512:nt#2:ns#121:nc#16:\
+ :dt=rdroot:se#512:nt#2:ns#121:nc#16:\
:pa#3872:oa#0:ta=4.2BSD:ba#4096:fa#512:\
:pb#0:ob#0:tb=swap:\
:pc#3872:oc#0:
diff -qur -x m etc58/examples/bgpd.conf etc59/examples/bgpd.conf
--- etc58/examples/bgpd.conf Sun Aug 16 10:25:09 2015
+++ etc59/examples/bgpd.conf Fri Feb 26 09:14:28 2016
@@ -1,4 +1,4 @@
-# $OpenBSD: bgpd.conf,v 1.1 2014/07/11 17:10:30 henning Exp $
+# $OpenBSD: bgpd.conf,v 1.3 2015/09/11 18:59:00 sthen Exp $
# sample bgpd configuration file
# see bgpd.conf(5)
@@ -86,6 +86,12 @@
# accept a default route (since the previous rule blocks this)
#allow from any prefix 0.0.0.0/0
#allow from any prefix ::/0
+
+# https://www.arin.net/announcements/2014/20140130.html
+# This block will be subject to a minimum size allocation of /28 and a
+# maximum size allocation of /24. ARIN should use sparse allocation when
+# possible within that /10 block.
+allow from any prefix 23.128.0.0/10 prefixlen 24 - 28 # ARIN IPv6 transition
# filter bogus networks according to RFC5735
deny from any prefix 0.0.0.0/8 prefixlen >= 8 # 'this' network [RFC1122]
Only in etc59/examples: eigrpd.conf
Only in etc58/examples: ftpchroot
Only in etc58/examples: hosts.lpd
Only in etc59/examples: pkg.conf
Only in etc59/examples: vm.conf
diff -qur -x m etc58/magic etc59/magic
--- etc58/magic Sun Aug 16 10:26:27 2015
+++ etc59/magic Fri Feb 26 09:15:45 2016
@@ -592,7 +592,7 @@
# From: Alex Beregszaszi <alex@fsn.hu>
0 string LZX LZX compressed archive (Amiga)
-# $OpenBSD: animation,v 1.5 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: animation,v 1.6 2016/01/02 13:25:33 sthen Exp $
#------------------------------------------------------------------------------
# animation: file(1) magic for animation/movie formats
@@ -624,57 +624,182 @@
#!:mime image/x-quicktime
4 string pckg Apple QuickTime compressed archive
!:mime application/x-quicktime-player
-4 string/B jP JPEG 2000 image
+4 string/W jP JPEG 2000 image
!:mime image/jp2
+# http://www.ftyps.com/ with local additions
4 string ftyp ISO Media
->8 string isom \b, MPEG v4 system, version 1
+>8 string 3g2 \b, MPEG v4 system, 3GPP2
+!:mime video/3gpp2
+>>11 byte 4 \b v4 (H.263/AMR GSM 6.10)
+>>11 byte 5 \b v5 (H.263/AMR GSM 6.10)
+>>11 byte 6 \b v6 (ITU H.264/AMR GSM 6.10)
+>>11 byte a \b C.S0050-0 V1.0
+>>11 byte b \b C.S0050-0-A V1.0.0
+>>11 byte c \b C.S0050-0-B V1.0
+>8 string 3ge \b, MPEG v4 system, 3GPP
+!:mime video/3gpp
+>>11 byte 6 \b, Release 6 MBMS Extended Presentations
+>>11 byte 7 \b, Release 7 MBMS Extended Presentations
+>8 string 3gg \b, MPEG v4 system, 3GPP
+>11 byte 6 \b, Release 6 General Profile
+!:mime video/3gpp
+>8 string 3gp \b, MPEG v4 system, 3GPP
+>11 byte 1 \b, Release %d (non existent)
+>11 byte 2 \b, Release %d (non existent)
+>11 byte 3 \b, Release %d (non existent)
+>11 byte 4 \b, Release %d
+>11 byte 5 \b, Release %d
+>11 byte 6 \b, Release %d
+>11 byte 7 \b, Release %d Streaming Servers
+!:mime video/3gpp
+>8 string 3gs \b, MPEG v4 system, 3GPP
+>11 byte 7 \b, Release %d Streaming Servers
+!:mime video/3gpp
+>8 string avc1 \b, MPEG v4 system, 3GPP JVT AVC [ISO 14496-12:2005]
!:mime video/mp4
->8 string iso2 \b, MPEG v4 system, part 12 revision
->8 string mp41 \b, MPEG v4 system, version 1
+>8 string/W qt \b, Apple QuickTime movie
+!:mime video/quicktime
+>8 string CAEP \b, Canon Digital Camera
+>8 string caqv \b, Casio Digital Camera
+>8 string CDes \b, Convergent Design
+>8 string da0a \b, DMB MAF w/ MPEG Layer II aud, MOT slides, DLS, JPG/PNG/MNG
+>8 string da0b \b, DMB MAF, ext DA0A, with 3GPP timed text, DID, TVA, REL, IPMP
+>8 string da1a \b, DMB MAF audio with ER-BSAC audio, JPG/PNG/MNG images
+>8 string da1b \b, DMB MAF, ext da1a, with 3GPP timed text, DID, TVA, REL, IPMP
+>8 string da2a \b, DMB MAF aud w/ HE-AAC v2 aud, MOT slides, DLS, JPG/PNG/MNG
+>8 string da2b \b, DMB MAF, ext da2a, with 3GPP timed text, DID, TVA, REL, IPMP
+>8 string da3a \b, DMB MAF aud with HE-AAC aud, JPG/PNG/MNG images
+>8 string da3b \b, DMB MAF, ext da3a w/ BIFS, 3GPP, DID, TVA, REL, IPMP
+>8 string dmb1 \b, DMB MAF supporting all the components defined in the spec
+>8 string dmpf \b, Digital Media Project
+>8 string drc1 \b, Dirac (wavelet compression), encap in ISO base media (MP4)
+>8 string dv1a \b, DMB MAF vid w/ AVC vid, ER-BSAC aud, BIFS, JPG/PNG/MNG, TS
+>8 string dv1b \b, DMB MAF, ext dv1a, with 3GPP timed text, DID, TVA, REL, IPMP
+>8 string dv2a \b, DMB MAF vid w/ AVC vid, HE-AAC v2 aud, BIFS, JPG/PNG/MNG, TS
+>8 string dv2b \b, DMB MAF, ext dv2a, with 3GPP timed text, DID, TVA, REL, IPMP
+>8 string dv3a \b, DMB MAF vid w/ AVC vid, HE-AAC aud, BIFS, JPG/PNG/MNG, TS
+>8 string dv3b \b, DMB MAF, ext dv3a, with 3GPP timed text, DID, TVA, REL, IPMP
+>8 string dvr1 \b, DVB (.DVB) over RTP
+!:mime video/vnd.dvb.file
+>8 string dvt1 \b, DVB (.DVB) over MPEG-2 Transport Stream
+!:mime video/vnd.dvb.file
+>8 string F4V \b, Video for Adobe Flash Player 9+ (.F4V)
!:mime video/mp4
->8 string mp42 \b, MPEG v4 system, version 2
+>8 string F4P \b, Protected Video for Adobe Flash Player 9+ (.F4P)
!:mime video/mp4
+>8 string F4A \b, Audio for Adobe Flash Player 9+ (.F4A)
+!:mime audio/mp4
+>8 string F4B \b, Audio Book for Adobe Flash Player 9+ (.F4B)
+!:mime audio/mp4
+>8 string isc2 \b, ISMACryp 2.0 Encrypted File
+# ?/enc-isoff-generic
+>8 string iso2 \b, MP4 Base Media v2 [ISO 14496-12:2005]
+!:mime video/mp4
+>8 string isom \b, MP4 Base Media v1 [IS0 14496-12:2003]
+!:mime video/mp4
+>8 string/W jp2 \b, JPEG 2000
+!:mime image/jp2
+>8 string JP2 \b, JPEG 2000 Image (.JP2) [ISO 15444-1 ?]
+!:mime image/jp2
+>8 string JP20 \b, Unknown, from GPAC samples (prob non-existent)
+>8 string jpm \b, JPEG 2000 Compound Image (.JPM) [ISO 15444-6]
+!:mime image/jpm
+>8 string jpx \b, JPEG 2000 w/ extensions (.JPX) [ISO 15444-2]
+!:mime image/jpx
+>8 string KDDI \b, 3GPP2 EZmovie for KDDI 3G cellphones
+!:mime video/3gpp2
+>8 string M4A \b, Apple iTunes ALAC/AAC-LC (.M4A) Audio
+!:mime audio/x-m4a
+>8 string M4B \b, Apple iTunes ALAC/AAC-LC (.M4B) Audio Book
+!:mime audio/mp4
+>8 string M4P \b, Apple iTunes ALAC/AAC-LC (.M4P) AES Protected Audio
+!:mime video/mp4
+>8 string M4V \b, Apple iTunes Video (.M4V) Video
+!:mime video/x-m4v
+>8 string M4VH \b, Apple TV (.M4V)
+!:mime video/x-m4v
+>8 string M4VP \b, Apple iPhone (.M4V)
+!:mime video/x-m4v
+>8 string mj2s \b, Motion JPEG 2000 [ISO 15444-3] Simple Profile
+!:mime video/mj2
+>8 string mjp2 \b, Motion JPEG 2000 [ISO 15444-3] General Profile
+!:mime video/mj2
+>8 string mmp4 \b, MPEG-4/3GPP Mobile Profile (.MP4 / .3GP) (for NTT)
+!:mime video/mp4
+>8 string mobi \b, MPEG-4, MOBI format
+!:mime video/mp4
+>8 string mp21 \b, MPEG-21 [ISO/IEC 21000-9]
+>8 string mp41 \b, MP4 v1 [ISO 14496-1:ch13]
+!:mime video/mp4
+>8 string mp42 \b, MP4 v2 [ISO 14496-14]
+!:mime video/mp4
+>8 string mp71 \b, MP4 w/ MPEG-7 Metadata [per ISO 14496-12]
>8 string mp7t \b, MPEG v4 system, MPEG v7 XML
>8 string mp7b \b, MPEG v4 system, MPEG v7 binary XML
->8 string/B jp2 \b, JPEG 2000
-!:mime image/jp2
->8 string 3gp \b, MPEG v4 system, 3GPP
-!:mime video/3gpp
->>11 byte 4 \b v4 (H.263/AMR GSM 6.10)
->>11 byte 5 \b v5 (H.263/AMR GSM 6.10)
->>11 byte 6 \b v6 (ITU H.264/AMR GSM 6.10)
>8 string mmp4 \b, MPEG v4 system, 3GPP Mobile
!:mime video/mp4
->8 string avc1 \b, MPEG v4 system, 3GPP JVT AVC
-!:mime video/3gpp
->8 string/B M4A \b, MPEG v4 system, iTunes AAC-LC
+>8 string MPPI \b, Photo Player, MAF [ISO/IEC 23000-3]
+>8 string mqt \b, Sony / Mobile QuickTime (.MQV) US Pat 7,477,830
+!:mime video/quicktime
+>8 string MSNV \b, MPEG-4 (.MP4) for SonyPSP
!:mime audio/mp4
->8 string/B M4V \b, MPEG v4 system, iTunes AVC-LC
+>8 string NDAS \b, MP4 v2 [ISO 14496-14] Nero Digital AAC Audio
+!:mime audio/mp4
+>8 string NDSC \b, MPEG-4 (.MP4) Nero Cinema Profile
!:mime video/mp4
->8 string/B M4P \b, MPEG v4 system, iTunes AES encrypted
->8 string/B M4B \b, MPEG v4 system, iTunes bookmarked
->8 string/B qt \b, Apple QuickTime movie
+>8 string NDSH \b, MPEG-4 (.MP4) Nero HDTV Profile
+!:mime video/mp4
+>8 string NDSM \b, MPEG-4 (.MP4) Nero Mobile Profile
+!:mime video/mp4
+>8 string NDSP \b, MPEG-4 (.MP4) Nero Portable Profile
+!:mime video/mp4
+>8 string NDSS \b, MPEG-4 (.MP4) Nero Standard Profile
+!:mime video/mp4
+>8 string NDXC \b, H.264/MPEG-4 AVC (.MP4) Nero Cinema Profile
+!:mime video/mp4
+>8 string NDXH \b, H.264/MPEG-4 AVC (.MP4) Nero HDTV Profile
+!:mime video/mp4
+>8 string NDXM \b, H.264/MPEG-4 AVC (.MP4) Nero Mobile Profile
+!:mime video/mp4
+>8 string NDXP \b, H.264/MPEG-4 AVC (.MP4) Nero Portable Profile
+!:mime video/mp4
+>8 string NDXS \b, H.264/MPEG-4 AVC (.MP4) Nero Standard Profile
+!:mime video/mp4
+>8 string odcf \b, OMA DCF DRM Format 2.0 (OMA-TS-DRM-DCF-V2_0-20060303-A)
+>8 string opf2 \b, OMA PDCF DRM Format 2.1 (OMA-TS-DRM-DCF-V2_1-20070724-C)
+>8 string opx2 \b, OMA PDCF DRM + XBS ext (OMA-TS-DRM_XBS-V1_0-20070529-C)
+>8 string pana \b, Panasonic Digital Camera
+>8 string qt \b, Apple QuickTime (.MOV/QT)
!:mime video/quicktime
+>8 string ROSS \b, Ross Video
+>8 string sdv \b, SD Memory Card Video
+>8 string ssc1 \b, Samsung stereo, single stream (patent pending)
+>8 string ssc2 \b, Samsung stereo, dual stream (patent pending)
# MPEG sequences
# Scans for all common MPEG header start codes
-0 belong 0x00000001 JVT NAL sequence
->4 byte&0x1F 0x07 \b, H.264 video
+0 belong 0x00000001
+>4 byte&0x1F 0x07 JVT NAL sequence, H.264 video
>>5 byte 66 \b, baseline
>>5 byte 77 \b, main
>>5 byte 88 \b, extended
>>7 byte x \b @ L %u
-0 string \000\000\001 MPEG sequence
->3 byte 0xBA
+0 belong&0xFFFFFF00 0x00000100
+>3 byte 0xBA MPEG sequence
+!:mime video/mpeg
>>4 byte &0x40 \b, v2, program multiplex
>>4 byte ^0x40 \b, v1, system multiplex
->3 byte 0xBB \b, v1/2, multiplex (missing pack header)
->3 byte&0x1F 0x07 \b, H.264 video
+>3 byte 0xBB MPEG sequence, v1/2, multiplex (missing pack header)
+>3 byte&0x1F 0x07 MPEG sequence, H.264 video
>>4 byte 66 \b, baseline
>>4 byte 77 \b, main
>>4 byte 88 \b, extended
>>6 byte x \b @ L %u
->3 byte 0xB0 \b, v4
+# GRR too general as it catches also FoxPro Memo example NG.FPT
+>3 byte 0xB0 MPEG sequence, v4
+# TODO: maybe this extra line exclude FoxPro Memo example NG.FPT starting with 000001b0 00000100 00000000
+#>>4 byte !0 MPEG sequence, v4
+!:mime video/mpeg4-generic
>>5 belong 0x000001B5
>>>9 byte &0x80
>>>>10 byte&0xF0 16 \b, video
@@ -743,7 +868,8 @@
>>4 byte 251 \b, FGS @ L3
>>4 byte 252 \b, FGS @ L4
>>4 byte 253 \b, FGS @ L5
->3 byte 0xB5 \b, v4
+>3 byte 0xB5 MPEG sequence, v4
+!:mime video/mpeg4-generic
>>4 byte &0x80
>>>5 byte&0xF0 16 \b, video (missing profile header)
>>>5 byte&0xF0 32 \b, still texture (missing profile header)
@@ -753,7 +879,8 @@
>>4 byte&0xF8 16 \b, still texture (missing profile header)
>>4 byte&0xF8 24 \b, mesh (missing profile header)
>>4 byte&0xF8 32 \b, face (missing profile header)
->3 byte 0xB3
+>3 byte 0xB3 MPEG sequence
+!:mime video/mpeg
>>12 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
>>12 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
>>12 belong 0x000001B5 \b, v2,
@@ -871,7 +998,7 @@
# modified by Joerg Jenderek
# GRR the original test are too common for many DOS files
# so don't accept as MP3 until we've tested the rate
-0 beshort&0xFFFE
+0 beshort&0xFFFE 0xFFFA
# rates
>2 byte&0xF0 0x10 MPEG ADTS, layer III, v1, 32 kbps
!:mime audio/mpeg
@@ -920,6 +1047,7 @@
# MP2, M1A
0 beshort&0xFFFE 0xFFFC MPEG ADTS, layer II, v1
+!:mime audio/mpeg
# rates
>2 byte&0xF0 0x10 \b, 32 kbps
>2 byte&0xF0 0x20 \b, 48 kbps
@@ -956,6 +1084,7 @@
# updated by Joerg Jenderek
# GRR the original test are too common for many DOS files, so test 32 <= kbits <= 448
# GRR this test is still too general as it catches a BOM of UTF-16 files (0xFFFE)
+# FIXME: Almost all little endian UTF-16 text with BOM are clobbered by these entries
#0 beshort&0xFFFE 0xFFFE
#>2 ubyte&0xF0 >0x0F
#>>2 ubyte&0xF0 <0xE1 MPEG ADTS, layer I, v1
@@ -993,6 +1122,7 @@
# MP3, M2A
0 beshort&0xFFFE 0xFFF2 MPEG ADTS, layer III, v2
+!:mime audio/mpeg
# rate
>2 byte&0xF0 0x10 \b, 8 kbps
>2 byte&0xF0 0x20 \b, 16 kbps
@@ -1027,6 +1157,7 @@
# MP2, M2A
0 beshort&0xFFFE 0xFFF4 MPEG ADTS, layer II, v2
+!:mime audio/mpeg
# rate
>2 byte&0xF0 0x10 \b, 8 kbps
>2 byte&0xF0 0x20 \b, 16 kbps
@@ -1061,6 +1192,7 @@
# MPA, M2A
0 beshort&0xFFFE 0xFFF6 MPEG ADTS, layer I, v2
+!:mime audio/mpeg
# rate
>2 byte&0xF0 0x10 \b, 32 kbps
>2 byte&0xF0 0x20 \b, 48 kbps
@@ -1095,6 +1227,7 @@
# MP3, M25A
0 beshort&0xFFFE 0xFFE2 MPEG ADTS, layer III, v2.5
+!:mime audio/mpeg
# rate
>2 byte&0xF0 0x10 \b, 8 kbps
>2 byte&0xF0 0x20 \b, 16 kbps
@@ -1194,7 +1327,7 @@
# Live MPEG-4 audio streams (instead of RTP FlexMux)
0 beshort&0xFFE0 0x56E0 MPEG-4 LOAS
!:mime audio/x-mp4a-latm
-#>1 beshort&0x1FFF x \b, %u byte packet
+#>1 beshort&0x1FFF x \b, %hu byte packet
>3 byte&0xE0 0x40
>>4 byte&0x3C 0x04 \b, single stream
>>4 byte&0x3C 0x08 \b, 2 streams
@@ -1211,22 +1344,30 @@
#0 beshort 0x4DE1 MPEG-4 LO-EP audio stream
#!:mime audio/x-mp4a-latm
-# FLI animation format
-4 leshort 0xAF11 FLI file
+# Summary: FLI animation format
+# Created by: Daniel Quinlan <quinlan@yggdrasil.com>
+# Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
+4 leshort 0xAF11
+# standard FLI always has 320x200 resolution and 8 bit color
+>8 leshort 320
+>>10 leshort 200
+>>>12 leshort 8 FLI animation, 320x200x8
!:mime video/x-fli
->6 leshort x - %d frames,
->8 leshort x width=%d pixels,
->10 leshort x height=%d pixels,
->12 leshort x depth=%d,
->16 leshort x ticks/frame=%d
-# FLC animation format
-4 leshort 0xAF12 FLC file
+>>>>6 leshort x \b, %d frames
+# frame speed is multiple of 1/70s
+>>>>16 leshort x \b, %d/70s per frame
+
+# Summary: FLC animation format
+# Created by: Daniel Quinlan <quinlan@yggdrasil.com>
+# Modified by (1): Abel Cheung <abelcheung@gmail.com> (avoid over-generic detection)
+4 leshort 0xAF12
+# standard FLC always use 8 bit color
+>12 leshort 8 FLC animation
!:mime video/x-flc
->6 leshort x - %d frames
->8 leshort x width=%d pixels,
->10 leshort x height=%d pixels,
->12 leshort x depth=%d,
->16 leshort x ticks/frame=%d
+>>8 leshort x \b, %d
+>>10 leshort x \bx%dx8
+>>6 uleshort x \b, %d frames
+>>16 uleshort x \b, %dms per frame
# DL animation format
# XXX - collision with most `mips' magic
@@ -1257,10 +1398,6 @@
# iso 13818 transport stream
#
# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
-# (the following is a little bit restrictive and works fine for a stream
-# that starts with PAT properly. it won't work for stream data, that is
-# cut from an input device data right in the middle, but this shouldn't
-# disturb)
# syncbyte 8 bit 0x47
# error_ind 1 bit -
# payload_start 1 bit 1
@@ -1268,9 +1405,9 @@
# PID 13 bit 0x0000
# scrambling 2 bit -
# adaptfld_ctrl 2 bit 1 or 3
-# conti_count 4 bit 0
-0 belong&0xFF5FFF1F 0x47400010 MPEG transport stream data
->188 byte !0x47 CORRUPTED
+# conti_count 4 bit -
+0 belong&0xFF5FFF10 0x47400010
+>188 byte 0x47 MPEG transport stream data
# DIF digital video file format <mpruett@sgi.com>
0 belong&0xffffff00 0x1f070000 DIF
@@ -1281,32 +1418,40 @@
# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
0 belong 0x3026b275 Microsoft ASF
+!:mime video/x-ms-asf
# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
0 string \x8aMNG MNG video data,
!:mime video/x-mng
>4 belong !0x0d0a1a0a CORRUPTED,
>4 belong 0x0d0a1a0a
->>16 belong x %ld x
->>20 belong x %ld
+>>16 belong x %d x
+>>20 belong x %d
# JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
0 string \x8bJNG JNG video data,
!:mime video/x-jng
>4 belong !0x0d0a1a0a CORRUPTED,
>4 belong 0x0d0a1a0a
->>16 belong x %ld x
->>20 belong x %ld
+>>16 belong x %d x
+>>20 belong x %d
# Vivo video (Wolfram Kleff)
3 string \x0D\x0AVersion:Vivo Vivo video data
# VRML (Virtual Reality Modelling Language)
-0 string/b #VRML\ V1.0\ ascii VRML 1 file
+0 string/w #VRML\ V1.0\ ascii VRML 1 file
!:mime model/vrml
-0 string/b #VRML\ V2.0\ utf8 ISO/IEC 14772 VRML 97 file
+0 string/w #VRML\ V2.0\ utf8 ISO/IEC 14772 VRML 97 file
!:mime model/vrml
+# X3D (Extensible 3D) [http://www.web3d.org/specifications/x3d-3.0.dtd]
+# From Michel Briand <michelbriand@free.fr>
+0 string/t \<?xml\ version="
+!:strength +1
+>20 search/1000/cw \<!DOCTYPE\ X3D X3D (Extensible 3D) model xml text
+!:mime model/x3d
+
#---------------------------------------------------------------------------
# HVQM4: compressed movie format designed by Hudson for Nintendo GameCube
# From Mark Sheppard <msheppard@climax.co.uk>, 2002-10-03
@@ -1316,7 +1461,7 @@
>0 byte x GameCube movie,
>0x34 ubeshort x %d x
>0x36 ubeshort x %d,
->0x26 ubeshort x %dµs,
+>0x26 ubeshort x %dus,
>0x42 ubeshort 0 no audio
>0x42 ubeshort >0 %dHz audio
@@ -1350,25 +1495,111 @@
# MPEG file
# MPEG sequences
-# FIXME: This section is from the old magic.mime file and needs integrating with the rest
-0 belong 0x000001BA
->4 byte &0x40
-!:mime video/mp2p
->4 byte ^0x40
-!:mime video/mpeg
-0 belong 0x000001BB
-!:mime video/mpeg
-0 belong 0x000001B0
-!:mime video/mp4v-es
-0 belong 0x000001B5
-!:mime video/mp4v-es
-0 belong 0x000001B3
-!:mime video/mpv
-0 belong&0xFF5FFF1F 0x47400010
-!:mime video/mp2t
-0 belong 0x00000001
->4 byte&0x1F 0x07
-!:mime video/h264
+# FIXME: This section is from the old magic.mime file and needs
+# integrating with the rest
+#0 belong 0x000001BA
+#>4 byte &0x40
+#!:mime video/mp2p
+#>4 byte ^0x40
+#!:mime video/mpeg
+#0 belong 0x000001BB
+#!:mime video/mpeg
+#0 belong 0x000001B0
+#!:mime video/mp4v-es
+#0 belong 0x000001B5
+#!:mime video/mp4v-es
+#0 belong 0x000001B3
+#!:mime video/mpv
+#0 belong&0xFF5FFF10 0x47400010
+#!:mime video/mp2t
+#0 belong 0x00000001
+#>4 byte&0x1F 0x07
+#!:mime video/h264
+
+# Type: Bink Video
+# Extension: .bik
+# URL: http://wiki.multimedia.cx/index.php?title=Bink_Container
+# From: <hoehle@users.sourceforge.net> 2008-07-18
+0 string BIK Bink Video
+>3 regex =[a-z] rev.%s
+#>4 ulelong x size %d
+>20 ulelong x \b, %d
+>24 ulelong x \bx%d
+>8 ulelong x \b, %d frames
+>32 ulelong x at rate %d/
+>28 ulelong >1 \b%d
+>40 ulelong =0 \b, no audio
+>40 ulelong !0 \b, %d audio track
+>>40 ulelong !1 \bs
+# follow properties of the first audio track only
+>>48 uleshort x %dHz
+>>51 byte&0x20 0 mono
+>>51 byte&0x20 !0 stereo
+#>>51 byte&0x10 0 FFT
+#>>51 byte&0x10 !0 DCT
+
+# Type: NUT Container
+# URL: http://wiki.multimedia.cx/index.php?title=NUT
+# From: Adam Buchbinder <adam.buchbinder@gmail.com>
+0 string nut/multimedia\ container\0 NUT multimedia container
+
+# Type: Nullsoft Video (NSV)
+# URL: http://wiki.multimedia.cx/index.php?title=Nullsoft_Video
+# From: Mike Melanson <mike@multimedia.cx>
+0 string NSVf Nullsoft Video
+
+# Type: REDCode Video
+# URL: http://www.red.com/ ; http://wiki.multimedia.cx/index.php?title=REDCode
+# From: Mike Melanson <mike@multimedia.cx>
+4 string RED1 REDCode Video
+
+# Type: MTV Multimedia File
+# URL: http://wiki.multimedia.cx/index.php?title=MTV
+# From: Mike Melanson <mike@multimedia.cx>
+0 string AMVS MTV Multimedia File
+
+# Type: ARMovie
+# URL: http://wiki.multimedia.cx/index.php?title=ARMovie
+# From: Mike Melanson <mike@multimedia.cx>
+0 string ARMovie\012 ARMovie
+
+# Type: Interplay MVE Movie
+# URL: http://wiki.multimedia.cx/index.php?title=Interplay_MVE
+# From: Mike Melanson <mike@multimedia.cx>
+0 string Interplay\040MVE\040File\032 Interplay MVE Movie
+
+# Type: Windows Television DVR File
+# URL: http://wiki.multimedia.cx/index.php?title=WTV
+# From: Mike Melanson <mike@mutlimedia.cx>
+# This takes the form of a Windows-style GUID
+0 bequad 0xB7D800203749DA11
+>8 bequad 0xA64E0007E95EAD8D Windows Television DVR Media
+
+# Type: Sega FILM/CPK Multimedia
+# URL: http://wiki.multimedia.cx/index.php?title=Sega_FILM
+# From: Mike Melanson <mike@multimedia.cx>
+0 string FILM Sega FILM/CPK Multimedia,
+>32 belong x %d x
+>28 belong x %d
+
+# Type: Nintendo THP Multimedia
+# URL: http://wiki.multimedia.cx/index.php?title=THP
+# From: Mike Melanson <mike@multimedia.cx>
+0 string THP\0 Nintendo THP Multimedia
+
+# Type: BBC Dirac Video
+# URL: http://wiki.multimedia.cx/index.php?title=Dirac
+# From: Mike Melanson <mike@multimedia.cx>
+0 string BBCD BBC Dirac Video
+
+# Type: RAD Game Tools Smacker Multimedia
+# URL: http://wiki.multimedia.cx/index.php?title=Smacker
+# From: Mike Melanson <mike@multimedia.cx>
+0 string SMK RAD Game Tools Smacker Multimedia
+>3 byte x version %c,
+>4 lelong x %d x
+>8 lelong x %d,
+>12 lelong x %d frames
# $OpenBSD: apl,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
@@ -2465,7 +2696,7 @@
>29 byte 0x32 Spreadsheet
>29 byte 0x38 Macro
-# $OpenBSD: att3b,v 1.2 2004/06/03 03:14:19 tedu Exp $
+# $OpenBSD: att3b,v 1.3 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# att3b: file(1) magic for AT&T 3B machines
@@ -2478,10 +2709,10 @@
# The 3B20 conflicts with SCCS.
#0 beshort 0550 3b20 COFF executable
#>12 belong >0 not stripped
-#>22 beshort >0 - version %ld
+#>22 beshort >0 - version %d
#0 beshort 0551 3b20 COFF executable (TV)
#>12 belong >0 not stripped
-#>22 beshort >0 - version %ld
+#>22 beshort >0 - version %d
#
# WE32K
#
@@ -2496,12 +2727,12 @@
>20 beshort 0410 (pure)
>20 beshort 0413 (demand paged)
>20 beshort 0443 (target shared library)
->22 beshort >0 - version %ld
+>22 beshort >0 - version %d
0 beshort 0561 WE32000 COFF executable (TV)
>12 belong >0 not stripped
#>18 beshort &00020000 - 32100 required
#>18 beshort &00040000 and MAU hardware required
-#>22 beshort >0 - version %ld
+#>22 beshort >0 - version %d
#
# core file for 3b2
0 string \000\004\036\212\200 3b2 core file
@@ -3161,7 +3392,7 @@
>7 string \006 mkeyed file
>>13 short 0 (sort)
>>8 string \000 (mkey)
-# $OpenBSD: bflt,v 1.2 2008/05/14 20:45:35 chl Exp $
+# $OpenBSD: bflt,v 1.3 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# bFLT: file(1) magic for BFLT uclinux binary files
@@ -3169,13 +3400,13 @@
# From Philippe De Muyter <phdm@macqel.be>
#
0 string bFLT BFLT executable
->4 belong x - version %ld
+>4 belong x - version %d
>4 belong 4
>>36 belong&0x1 0x1 ram
>>36 belong&0x2 0x2 gotpic
>>36 belong&0x4 0x4 gzip
>>36 belong&0x8 0x8 gzdata
-# $OpenBSD: blender,v 1.2 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: blender,v 1.3 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# blender: file(1) magic for Blender 3D related files
@@ -3212,7 +3443,7 @@
>>>0x44 string =GLOB \b.
>>>>0x60 beshort x \b%.4d
-# Scripts that run in the embeded Python interpreter
+# Scripts that run in the embedded Python interpreter
0 string #!BPY Blender3D BPython script
# $OpenBSD: blit,v 1.2 2004/06/03 03:14:19 tedu Exp $
@@ -3234,9 +3465,9 @@
# Need more values for WE32 DMD executables.
# Note that 0520 is the same as COFF
#0 short 0520 tty630 layers executable
-# $OpenBSD: bout,v 1.3 2008/05/08 01:40:57 chl Exp $
+# $OpenBSD: bout,v 1.4 2015/10/05 22:48:26 nicm Exp $
-#
+#------------------------------------------------------------------------------
# i80960 b.out objects and archives
#
0 long 0x10d i960 b.out relocatable object
@@ -3470,7 +3701,7 @@
>>>4 belong <20 Mach-O fat file with %ld architectures
>2 beshort 0xd00d JAR compressed with pack200
!:mime application/x-java-pack200
-# $OpenBSD: cddb,v 1.2 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: cddb,v 1.3 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# CDDB: file(1) magic for CDDB(tm) format CD text data files
@@ -3481,7 +3712,7 @@
# CDDB-enabled CD player applications.
#
-0 search/1/b #\040xmcd CDDB(tm) format CD text data
+0 search/1/w #\040xmcd CDDB(tm) format CD text data
# $OpenBSD: chord,v 1.1 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
@@ -3512,7 +3743,7 @@
0 string RuneCT Citrus locale declaration for LC_CTYPE
-# $OpenBSD: clarion,v 1.2 2009/04/26 14:17:45 chl Exp $
+# $OpenBSD: clarion,v 1.3 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# clarion: file(1) magic for # Clarion Personal/Professional Developer
@@ -3529,7 +3760,7 @@
>2 leshort &0x0010 \b, compressed
>2 leshort &0x0040 \b, read only
# number of records
->5 lelong x \b, %ld records
+>5 lelong x \b, %d records
# Memo files
0 leshort 0x334d Clarion Developer (v2 and above) memo data
@@ -3586,7 +3817,7 @@
#./windows/claris/clworks.lbl: data
#./windows/claris/clworks.prf: data
#./windows/claris/userd.spl: data
-# $OpenBSD: clipper,v 1.2 2004/06/03 03:14:19 tedu Exp $
+# $OpenBSD: clipper,v 1.3 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# clipper: file(1) magic for Intergraph (formerly Fairchild) Clipper.
@@ -3623,7 +3854,7 @@
>20 short 0413 (demand paged)
>20 short 0443 (target shared library)
>12 long >0 not stripped
->22 short >0 - version %ld
+>22 short >0 - version %d
0 short 0577 CLIPPER COFF executable
>18 short&074000 000000 C1 R1
>18 short&074000 004000 C2 R1
@@ -3635,7 +3866,7 @@
>20 short 0413 (paged)
>20 short 0443 (target shared library)
>12 long >0 not stripped
->22 short >0 - version %ld
+>22 short >0 - version %d
>48 long&01 01 alignment trap enabled
>52 byte 1 -Ctnc
>52 byte 2 -Ctsw
@@ -3752,7 +3983,7 @@
0 string mscdocument Message Sequence Chart (document)
0 string msc Message Sequence Chart (chart)
0 string submsc Message Sequence Chart (subchart)
-# $OpenBSD: compress,v 1.6 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: compress,v 1.7 2015/10/05 22:36:23 nicm Exp $
#------------------------------------------------------------------------------
# compress: file(1) magic for pure-compression formats (no archives)
@@ -3764,8 +3995,9 @@
# because it tries to uncompress it to figure out what's inside.
# standard unix compress
-#0 string \037\235 compress'd data
-#!:mime application/x-compress
+0 string \037\235 compress'd data
+!:mime application/x-compress
+!:apple LZIVZIVU
>2 byte&0x80 >0 block compressed
>2 byte&0x1f x %d bits
@@ -3773,9 +4005,10 @@
# Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
# * Original filename is only at offset 10 if "extra field" absent
# * Produce shorter output - notably, only report compression methods
-# other than 8 ("deflate", the only method defined in RFC 1952).
+# other than 8 ("deflate", the only method defined in RFC 1952).
0 string \037\213 gzip compressed data
!:mime application/x-gzip
+!:strength * 2
>2 byte <8 \b, reserved method
>2 byte >8 \b, unknown method
>3 byte &0x01 \b, ASCII
@@ -3784,6 +4017,10 @@
>3 byte&0xC =0x08
>>10 string x \b, was "%s"
>3 byte &0x10 \b, has comment
+>3 byte &0x20 \b, encrypted
+>4 ledate >0 \b, last modified: %s
+>8 byte 2 \b, max compression
+>8 byte 4 \b, max speed
>9 byte =0x00 \b, from FAT filesystem (MS-DOS, OS/2, NT)
>9 byte =0x01 \b, from Amiga
>9 byte =0x02 \b, from VMS
@@ -3798,11 +4035,6 @@
>9 byte =0x0B \b, from NTFS filesystem (NT)
>9 byte =0x0C \b, from QDOS
>9 byte =0x0D \b, from Acorn RISCOS
->3 byte &0x10 \b, comment
->3 byte &0x20 \b, encrypted
->4 ledate >0 \b, last modified: %s
->8 byte 2 \b, max compression
->8 byte 4 \b, max speed
# packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
0 string \037\036 packed data
@@ -3831,6 +4063,11 @@
!:mime application/x-bzip2
>3 byte >47 \b, block size = %c00k
+# lzip
+0 string LZIP lzip compressed data
+!:mime application/x-lzip
+>4 byte x \b, version: %d
+
# squeeze and crunch
# Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
0 beshort 0x76FF squeezed data,
@@ -3931,19 +4168,43 @@
>4 belong 0x090A0C0D best compression
# 7-zip archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
-# http://www.7-zip.org or DOC/7zFormat.txt
+# http://www.7-zip.org or DOC/7zFormat.txt
#
0 string 7z\274\257\047\034 7-zip archive data,
>6 byte x version %d
>7 byte x \b.%d
+!:mime application/x-7z-compressed
# Type: LZMA
-# URL: http://www.7-zip.org/sdk.html
-# From: Robert Millan <rmh@aybabtu.com> and Reuben Thomas <rrt@sc3d.org>
-# Commented out because apparently not reliable (according to Debian
-# bug #364260)
-#0 string ]\000\000\200\000 LZMA compressed data
+0 lelong&0xffffff =0x5d
+>12 leshort 0xff LZMA compressed data,
+!:mime application/x-lzma
+>>5 lequad =0xffffffffffffffff streamed
+>>5 lequad !0xffffffffffffffff non-streamed, size %lld
+>12 leshort 0 LZMA compressed data,
+>>5 lequad =0xffffffffffffffff streamed
+>>5 lequad !0xffffffffffffffff non-streamed, size %lld
+# http://tukaani.org/xz/xz-file-format.txt
+0 ustring \xFD7zXZ\x00 XZ compressed data
+!:strength * 2
+!:mime application/x-xz
+
+# https://github.com/ckolivas/lrzip/blob/master/doc/magic.header.txt
+0 string LRZI LRZIP compressed data
+>4 byte x - version %d
+>5 byte x \b.%d
+!:mime application/x-lrzip
+
+# http://fastcompression.blogspot.fi/2013/04/lz4-streaming-format-final.html
+0 lelong 0x184d2204 LZ4 compressed data (v1.4+)
+!:mime application/x-lz4
+# Added by osm0sis@xda-developers.com
+0 lelong 0x184c2103 LZ4 compressed data (v1.0-v1.3)
+!:mime application/x-lz4
+0 lelong 0x184c2102 LZ4 compressed data (v0.1-v0.9)
+!:mime application/x-lz4
+
# AFX compressed files (Wolfram Kleff)
2 string -afx- AFX compressed file data
@@ -3957,6 +4218,37 @@
>4 byte x - version %d
>5 byte x \b.%d
>6 belong x (%d bytes)
+
+0 string ArC\x01 FreeArc archive <http://freearc.org>
+
+# Type: DACT compressed files
+0 long 0x444354C3 DACT compressed data
+>4 byte >-1 (version %i.
+>5 byte >-1 %i.
+>6 byte >-1 %i)
+>7 long >0 , original size: %i bytes
+>15 long >30 , block size: %i bytes
+
+# Valve Pack (VPK) files
+0 lelong 0x55aa1234 Valve Pak file
+>0x4 lelong x \b, version %u
+>0x8 lelong x \b, %u entries
+
+# Snappy framing format
+# http://code.google.com/p/snappy/source/browse/trunk/framing_format.txt
+0 string \377\006\0\0sNaPpY snappy framed data
+!:mime application/x-snappy-framed
+
+# qpress, http://www.quicklz.com/
+0 string qpress10 qpress compressed data
+!:mime application/x-qpress
+
+# Zlib https://www.ietf.org/rfc/rfc6713.txt
+0 string/b x
+>0 beshort%31 =0
+>>0 byte&0xf =8
+>>>0 byte&0x80 =0 zlib compressed data
+!:mime application/zlib
# $OpenBSD: console,v 1.3 2009/04/24 18:54:34 chl Exp $
#------------------------------------------------------------------------------
@@ -4848,7 +5140,7 @@
# by Sven Wegener <swegener@gentoo.org>
0 string b0VIM\ Vim swap file
>&0 string >\0 \b, version %s
-# $OpenBSD: efi,v 1.2 2009/04/26 14:17:45 chl Exp $
+# $OpenBSD: efi,v 1.3 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# efi: file(1) magic for Universal EFI binaries
@@ -4862,7 +5154,7 @@
>>&0 lelong 0x01000007 \b, x86_64
>>&20 lelong 7 \b, i386
>>&20 lelong 0x01000007 \b, x86_64
->4 lelong >2 Universal EFI binary with %ld architectures
+>4 lelong >2 Universal EFI binary with %d architectures
# $OpenBSD: elf,v 1.17 2009/04/24 18:54:34 chl Exp $
#------------------------------------------------------------------------------
@@ -5118,7 +5410,7 @@
>>20 belong 0 invalid version
>>20 belong 1 version 1
>>36 belong 1 MathCoPro/FPU/MAU Required
-# $OpenBSD: encore,v 1.2 2004/06/03 03:14:20 tedu Exp $
+# $OpenBSD: encore,v 1.3 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# encore: file(1) magic for Encore machines
@@ -5132,12 +5424,12 @@
>20 short 0x10b demand-paged executable
>20 short 0x10f unsupported executable
>12 long >0 not stripped
->22 short >0 - version %ld
+>22 short >0 - version %d
>22 short 0 -
#>4 date x stamp %s
0 short 0x155 Encore unsupported executable
>12 long >0 not stripped
->22 short >0 - version %ld
+>22 short >0 - version %d
>22 short 0 -
#>4 date x stamp %s
# $OpenBSD: epoc,v 1.1 2004/06/03 03:14:20 tedu Exp $
@@ -7683,7 +7975,7 @@
#>8 string >\0 (version %s)
#>4 string LZX R executable
#2 string #HUPAIR Human68k hupair R executable
-# $OpenBSD: ibm370,v 1.4 2004/06/03 03:14:20 tedu Exp $
+# $OpenBSD: ibm370,v 1.5 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# ibm370: file(1) magic for IBM 370 and compatibles.
@@ -7721,16 +8013,16 @@
>12 belong >0 not stripped
0 beshort 0531 SVR2 executable (Amdahl-UTS)
>12 belong >0 not stripped
->24 belong >0 - version %ld
+>24 belong >0 - version %d
0 beshort 0534 SVR2 pure executable (Amdahl-UTS)
>12 belong >0 not stripped
->24 belong >0 - version %ld
+>24 belong >0 - version %d
0 beshort 0530 SVR2 pure executable (USS/370)
>12 belong >0 not stripped
->24 belong >0 - version %ld
+>24 belong >0 - version %d
0 beshort 0535 SVR2 executable (USS/370)
>12 belong >0 not stripped
->24 belong >0 - version %ld
+>24 belong >0 - version %d
# $OpenBSD: ibm6000,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
@@ -8407,7 +8699,7 @@
0 string \xed\xfe\xda\xbe Cytovision FLEX file
0 string \xed\xab\xed\xfe Cytovision FLEX file
0 string \xad\xfd\xea\xad Cytovision RATS file
-# $OpenBSD: inform,v 1.3 2015/04/24 16:24:42 nicm Exp $
+# $OpenBSD: inform,v 1.4 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# inform: file(1) magic for Inform interactive fiction language
@@ -8415,7 +8707,7 @@
# URL: http://www.inform-fiction.org/
# From: Reuben Thomas <rrt@sc3d.org>
-0 search/100/cB constant\ story Inform source text
+0 search/100/cW constant\ story Inform source text
# $OpenBSD: intel,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
@@ -8734,7 +9026,7 @@
# From: Mathieu Malaterre <mathieu.malaterre@gmail.com>
0 belong 0xff4fff51 JPEG 2000 codestream
45 beshort 0xff52
-# $OpenBSD: karma,v 1.4 2004/06/03 03:14:20 tedu Exp $
+# $OpenBSD: karma,v 1.5 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# karma: file(1) magic for Karma data files
@@ -8742,7 +9034,7 @@
# From <rgooch@atnf.csiro.au>
0 string KarmaRHD Version Karma Data Structure Version
->16 belong x %lu
+>16 belong x %u
# $OpenBSD: kde,v 1.2 2009/04/26 14:17:45 chl Exp $
#------------------------------------------------------------------------------
@@ -9791,7 +10083,7 @@
>126 short 0x4d49 (little endian)
>>124 leshort x version 0x%04x
-# $OpenBSD: matroska,v 1.2 2008/05/14 20:45:35 chl Exp $
+# $OpenBSD: matroska,v 1.3 2015/10/31 18:55:31 nicm Exp $
#------------------------------------------------------------------------------
# matroska: file(1) magic for Matroska files
@@ -9802,10 +10094,12 @@
# EBML id:
0 belong 0x1a45dfa3
# DocType id:
->5 beshort 0x4282
+>4 search/4096 \x42\x82
# DocType contents:
->>8 string matroska Matroska data
-
+>>&1 string webm WebM
+!:mime video/webm
+>>&1 string matroska Matroska data
+!:mime video/x-matroska
# $OpenBSD: mcrypt,v 1.1 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
@@ -10208,7 +10502,7 @@
# From: Josh Triplett <josh@freedesktop.org>
0 string XPCOM\nMozFASL\r\n\x1A Mozilla XUL fastload data
-# $OpenBSD: msdos,v 1.5 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: msdos,v 1.6 2016/01/29 11:50:40 tb Exp $
#------------------------------------------------------------------------------
# msdos: file(1) magic for MS-DOS files
@@ -10860,7 +11154,7 @@
#>0 string x , Magic: %s
# There are currently 2 Versions: "1" and "2"
-# I do not use Version 2 and therefor branch here
+# I do not use Version 2 and therefore branch here
# but can assure: it works (tested on both versions)
# Also my Qemu 0.9.0 which uses this Version 2 refuses
# to start in its bios
@@ -11005,13 +11299,13 @@
>>>7 string x \b, need V%.4s
>>8 string .
>>>7 string x \b, need V%.3s
-# $OpenBSD: natinst,v 1.1 2004/06/03 03:14:20 tedu Exp $
+# $OpenBSD: natinst,v 1.2 2015/10/05 22:48:26 nicm Exp $
#-----------------------------------------------------------------------------
# natinst: file(1) magic for National Instruments Code Files
#
-# From <egamez@fcfm.buap.mx> Enrique G?ez-Flores
+# From <egamez@fcfm.buap.mx> Enrique Gamez-Flores
# version 1
# Many formats still missing, we use, for the moment LabVIEW
# We guess VXI format file. VISA, LabWindowsCVI, BridgeVIEW, etc, are missing
@@ -11019,7 +11313,7 @@
0 string RSRC National Instruments,
# Check if it's a LabVIEW File
>8 string LV LabVIEW File,
-# Check wich kind of file is
+# Check which kind of file it is
>>10 string SB Code Resource File, data
>>10 string IN Virtual Instrument Program, data
>>10 string AR VI Library, data
@@ -11384,11 +11678,11 @@
>18 belong x Bytes1: %u
>22 belong x Flows: %u
>26 belong x Pkts: %u
-# $OpenBSD: ocaml,v 1.1 2004/06/03 03:14:20 tedu Exp $
+# $OpenBSD: ocaml,v 1.2 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------------
# ocaml: file(1) magic for Objective Caml files.
-0 string Caml1999 Objective caml
+0 string Caml1999 OCaml
>8 string X exec file
>8 string I interface file (.cmi)
>8 string O object file (.cmo)
@@ -11397,7 +11691,7 @@
>8 string Z native library file (.cmxa)
>8 string M abstract syntax tree implementation file
>8 string N abstract syntax tree interface file
->9 string >\0 (Version %3.3s).
+>9 string >\0 (Version %3.3s)
# $OpenBSD: octave,v 1.1 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
@@ -11603,9 +11897,9 @@
>&213 byte 0x34 \b, at least V3R1 to open
>&213 byte 0x31 \b, at least V3R0M5 to open
>&213 byte 0x30 \b, at least V2R3 to open
-# $OpenBSD: os9,v 1.5 2011/10/15 14:23:29 schwarze Exp $
+# $OpenBSD: os9,v 1.6 2015/10/05 22:48:26 nicm Exp $
-# $NetBSD: os9,v 1.1 1996/05/06 18:24:01 is Exp $
+#------------------------------------------------------------------------------
#
# Copyright (c) 1996 Ignatios Souvatzis. All rights reserved.
#
@@ -11683,8 +11977,9 @@
>0x12 byte 13 file manager
>0x12 byte 14 device driver
>0x12 byte 15 device descriptor
-# $OpenBSD: osf1,v 1.2 2001/01/29 01:57:57 niklas Exp $
+# $OpenBSD: osf1,v 1.3 2015/10/05 22:48:26 nicm Exp $
+#------------------------------------------------------------------------------
#
# Mach magic number info
#
@@ -11784,18 +12079,6 @@
# Mobipocket (www.mobipocket.com), donated by Carl Witty
60 string BOOKMOBI Mobipocket E-book
>0 string >\0 "%s"
-# $OpenBSD: palmpilot,v 1.3 2001/01/29 01:57:57 niklas Exp $
-
-# start kpilot.magic
-# This must go at the end of $(kde_mimedir)/magic
-# PalmPilot Files
->0x20 beshort&0xffe7 0 palmpilot/database
->0x20 beshort&0xffe7 1
->>0x3c string appl palmpilot/application
->>0x3c string HACK palmpilot/hack
->>0x3c string libr palmpilot/library
->>0x3c string >\0 palmpilot/database
-# stop kpilot.magic
# $OpenBSD: parix,v 1.1 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
@@ -11817,7 +12100,7 @@
# XXX - byte order?
#
0 short 0x2a17 "compact bitmap" format (Poskanzer)
-# $OpenBSD: pdf,v 1.4 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: pdf,v 1.5 2015/10/06 09:29:13 nicm Exp $
#------------------------------------------------------------------------------
# pdf: file(1) magic for Portable Document Format
@@ -11828,9 +12111,15 @@
>5 byte x \b, version %c
>7 byte x \b.%c
+0 string \012%PDF- PDF document
+!:mime application/pdf
+>6 byte x \b, version %c
+>8 byte x \b.%c
+
# From: Nick Schmalenberger <nick@schmalenberger.us>
# Forms Data Format
0 string %FDF- FDF document
+!:mime application/vnd.fdf
>5 byte x \b, version %c
>7 byte x \b.%c
# $OpenBSD: pdp,v 1.2 2004/06/03 03:14:20 tedu Exp $
@@ -12476,20 +12765,20 @@
>8 string NIFF \b, Notation Interchange File Format
# SoundFont 2 <mpruett@sgi.com>
>8 string sfbk SoundFont/Bank
-# $OpenBSD: rpm,v 1.6 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: rpm,v 1.7 2015/10/06 08:12:30 nicm Exp $
#------------------------------------------------------------------------------
#
# RPM: file(1) magic for Red Hat Packages Erik Troan (ewt@redhat.com)
#
-0 beshort 0xedab
->2 beshort 0xeedb RPM
+0 belong 0xedabeedb RPM
!:mime application/x-rpm
->>4 byte x v%d
->>6 beshort 0 bin
->>6 beshort 1 src
->>8 beshort 1 i386
->>8 beshort 2 Alpha
+>4 byte x v%d
+>5 byte x \b.%d
+>6 beshort 1 src
+>6 beshort 0 bin
+>>8 beshort 1 i386/x86_64
+>>8 beshort 2 Alpha/Sparc64
>>8 beshort 3 Sparc
>>8 beshort 4 MIPS
>>8 beshort 5 PowerPC
@@ -12500,6 +12789,26 @@
>>8 beshort 10 Sparc64
>>8 beshort 11 MIPSel
>>8 beshort 12 ARM
+>>8 beshort 13 MiNT
+>>8 beshort 14 S/390
+>>8 beshort 15 S/390x
+>>8 beshort 16 PowerPC64
+>>8 beshort 17 SuperH
+>>8 beshort 18 Xtensa
+>>8 beshort 255 noarch
+
+#delta RPM Daniel Novotny (dnovotny@redhat.com)
+0 string drpm Delta RPM
+!:mime application/x-rpm
+>12 string x %s
+>>8 beshort 11 MIPSel
+>>8 beshort 12 ARM
+>>8 beshort 13 MiNT
+>>8 beshort 14 S/390
+>>8 beshort 15 S/390x
+>>8 beshort 16 PowerPC64
+>>8 beshort 17 SuperH
+>>8 beshort 18 Xtensa
>>10 string x %s
# $OpenBSD: rtf,v 1.4 2009/04/24 18:54:34 chl Exp $
@@ -12619,8 +12928,9 @@
0 string \060\000\040\000\110\000\105\000\101\000\104\000 GEDCOM data
0 string \376\377\000\060\000\040\000\110\000\105\000\101\000\104 GEDCOM data
0 string \377\376\060\000\040\000\110\000\105\000\101\000\104\000 GEDCOM data
-# $OpenBSD: securitycerts,v 1.2 2009/04/26 14:17:45 chl Exp $
+# $OpenBSD: securitycerts,v 1.3 2015/10/05 22:48:26 nicm Exp $
+#------------------------------------------------------------------------------
0 search/1 -----BEGIN\ CERTIFICATE------ RFC1421 Security Certificate text
0 search/1 -----BEGIN\ NEW\ CERTIFICATE RFC1421 Security Certificate Signing Request text
0 belong 0xedfeedfe Sun 'jks' Java Keystore File data
@@ -12800,7 +13110,7 @@
0 search/1 #\ HTTP\ Cookie\ File Web browser cookie text
0 search/1 #\ Netscape\ HTTP\ Cookie\ File Netscape cookie text
0 search/1 #\ KDE\ Cookie\ File Konqueror cookie text
-# $OpenBSD: sharc,v 1.3 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: sharc,v 1.4 2015/10/05 22:48:26 nicm Exp $
#------------------------------------------------------------------------
# file(1) magic for sharc files
@@ -12821,7 +13131,7 @@
0 string .system SHARC architecture file
0 leshort 0x521C SHARC COFF binary
->2 leshort >1 , %hd sections
+>2 leshort >1 , %d sections
>>12 lelong >0 , not stripped
# $OpenBSD: sinclair,v 1.2 2008/05/08 01:40:57 chl Exp $
@@ -12874,7 +13184,7 @@
# Sketch Drawings: http://sketch.sourceforge.net/
# From: Edwin Mons <e@ik.nu>
0 search/1 ##Sketch Sketch document text
-# $OpenBSD: smalltalk,v 1.1 2004/06/03 03:14:20 tedu Exp $
+# $OpenBSD: smalltalk,v 1.2 2015/10/05 22:48:26 nicm Exp $
#-----------------------------------------------
# GNU Smalltalk image, starting at version 1.6.2
@@ -12898,7 +13208,6 @@
#>>16 belong x , table: %ld
#>>20 belong x , memory: %ld
-
# $OpenBSD: sniffer,v 1.5 2008/05/08 01:40:57 chl Exp $
#------------------------------------------------------------------------------
@@ -13351,6 +13660,31 @@
>60 string _MTN Monotone source repository
>60 belong !0 SQLite 3.x database, user version %u
>60 belong 0 SQLite 3.x database
+# $OpenBSD: ssh,v 1.1 2015/10/06 08:13:03 nicm Exp $
+
+# Type: OpenSSH key files
+# From: Nicolas Collignon <tsointsoin@gmail.com>
+
+0 string SSH\ PRIVATE\ KEY OpenSSH RSA1 private key,
+>28 string >\0 version %s
+0 string -----BEGIN\ OPENSSH\ PRIVATE\ KEY----- OpenSSH private key
+
+0 string ssh-dss\ OpenSSH DSA public key
+0 string ssh-rsa\ OpenSSH RSA public key
+0 string ecdsa-sha2-nistp256 OpenSSH ECDSA public key
+0 string ecdsa-sha2-nistp384 OpenSSH ECDSA public key
+0 string ecdsa-sha2-nistp521 OpenSSH ECDSA public key
+0 string ssh-ed25519 OpenSSH ED25519 public key
+# $OpenBSD: ssl,v 1.1 2015/10/06 08:13:03 nicm Exp $
+
+# Type: OpenSSL certificates/key files
+# From: Nicolas Collignon <tsointsoin@gmail.com>
+
+0 string -----BEGIN\ CERTIFICATE----- PEM certificate
+0 string -----BEGIN\ CERTIFICATE\ REQ PEM certificate request
+0 string -----BEGIN\ RSA\ PRIVATE PEM RSA private key
+0 string -----BEGIN\ DSA\ PRIVATE PEM DSA private key
+0 string -----BEGIN\ EC\ PRIVATE PEM EC private key
# $OpenBSD: sun,v 1.4 2008/05/08 01:40:57 chl Exp $
#------------------------------------------------------------------------------
@@ -13920,9 +14254,9 @@
0 string %TGIF\ x Tgif file version %s
-# $OpenBSD: ti-8x,v 1.1 2004/06/03 03:14:20 tedu Exp $
+# $OpenBSD: ti-8x,v 1.2 2015/10/05 22:48:26 nicm Exp $
-# ------------------------------------------------------------------------
+#------------------------------------------------------------------------------
# ti-8x: file(1) magic for the TI-8x and TI-9x Graphing Calculators.
#
# From: Ryan McGuire (rmcguire@freenet.columbus.oh.us).
@@ -14144,7 +14478,7 @@
>49 byte 0x24 type: application,
>49 byte 0x25 type: certificate,
>49 byte 0x3e type: license,
->74 lelong >0 size: %ld bytes
+>74 lelong >0 size: %d bytes
# VTi & TiEmu skins (TI Graphing Calculators).
# From: Romain Lievin (roms@lpg.ticalc.org).
@@ -14159,7 +14493,7 @@
>>7 byte >0 \b %c
>>9 byte x \b.%c
>>10 byte x \b%c
-# $OpenBSD: timezone,v 1.4 2004/06/03 03:14:20 tedu Exp $
+# $OpenBSD: timezone,v 1.5 2015/10/05 23:21:52 nicm Exp $
#------------------------------------------------------------------------------
# timezone: file(1) magic for timezone data
@@ -14168,6 +14502,23 @@
# this should work on Linux, SunOS, and maybe others
# Added new official magic number for recent versions of the Olson code
0 string TZif timezone data
+>4 byte 0 \b, old version
+>4 byte >0 \b, version %c
+>20 belong 0 \b, no gmt time flags
+>20 belong 1 \b, 1 gmt time flag
+>20 belong >1 \b, %d gmt time flags
+>24 belong 0 \b, no std time flags
+>20 belong 1 \b, 1 std time flag
+>24 belong >1 \b, %d std time flags
+>28 belong 0 \b, no leap seconds
+>28 belong 1 \b, 1 leap second
+>28 belong >1 \b, %d leap seconds
+>32 belong 0 \b, no transition times
+>32 belong 1 \b, 1 transition time
+>32 belong >1 \b, %d transition times
+>36 belong 0 \b, no abbreviation chars
+>36 belong 1 \b, 1 abbreviation char
+>36 belong >1 \b, %d abbreviation chars
0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0 old timezone data
0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0 old timezone data
0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0 old timezone data
@@ -14208,9 +14559,8 @@
# output data formats
0 string \100\357 very old (C/A/T) troff output data
-# $OpenBSD: tuxedo,v 1.2 2008/05/08 01:40:57 chl Exp $
+# $OpenBSD: tuxedo,v 1.3 2015/10/05 22:48:26 nicm Exp $
-#
#------------------------------------------------------------------------------
# tuxedo: file(1) magic for BEA TUXEDO data files
#
@@ -14225,9 +14575,9 @@
0 string Interpress/Xerox Xerox InterPress data
>16 string / (version
>>17 string >\0 %s)
-# $OpenBSD: unicode,v 1.3 2009/04/24 18:54:34 chl Exp $
+# $OpenBSD: unicode,v 1.4 2015/10/05 22:45:26 nicm Exp $
-#---------------------------------------------------------------------------
+#------------------------------------------------------------------------------
# Unicode: BOM prefixed text files - Adrian Havill <havill@turbolinux.co.jp>
# GRR: These types should be recognised in file_ascmagic so these
# encodings can be treated by text patterns.
@@ -14238,7 +14588,7 @@
0 string +/v+ Unicode text, UTF-7
0 string +/v/ Unicode text, UTF-7
0 string \335\163\146\163 Unicode text, UTF-8-EBCDIC
-0 string \376\377\000\000 Unicode text, UTF-32, big-endian
+0 string \000\000\376\377 Unicode text, UTF-32, big-endian
0 string \377\376\000\000 Unicode text, UTF-32, little-endian
0 string \016\376\377 Unicode text, SCSU (Standard Compression Scheme for Unicode)
# $OpenBSD: unknown,v 1.3 2004/06/03 03:14:20 tedu Exp $
@@ -14494,9 +14844,9 @@
#
0 belong 0x03000000 VMS Alpha executable
>75264 string PK\003\004 \b, Info-ZIP SFX archive v5.12 w/decryption
-# $OpenBSD: vmware,v 1.2 2008/05/08 01:40:57 chl Exp $
+# $OpenBSD: vmware,v 1.3 2015/10/05 22:48:26 nicm Exp $
-# -----------------------------------------------------------
+#------------------------------------------------------------------------------
# VMware specific files (deducted from version 1.1 and log file entries)
# Anthon van der Neut (anthon@mnt.org)
0 belong 0x4d52564e VMware nvram
@@ -14931,7 +15281,7 @@
>6 leshort&0x0003 =0x0001 alignment 2
>6 leshort&0x0003 =0x0002 alignment 4
>6 leshort&0x0003 =0x0003 alignment 256
-# $OpenBSD: xwindows,v 1.3 2008/05/14 20:45:35 chl Exp $
+# $OpenBSD: xwindows,v 1.4 2015/10/06 08:51:00 nicm Exp $
#------------------------------------------------------------------------------
# xwindows: file(1) magic for various X/Window system file formats.
@@ -14943,7 +15293,7 @@
>0 byte =0 obsolete
0 string xkm Compiled XKB Keymap: msb,
>3 byte >0 version %d
->0 byte =0 obsolete
+>3 byte =0 obsolete
# xfsdump archive
0 string xFSdump0 xfsdump archive
@@ -14951,12 +15301,21 @@
# Jaleo XFS files
0 long 395726 Jaleo XFS file
->4 long x - version %ld
->8 long x - [%ld -
->20 long x %ldx
->24 long x %ldx
->28 long 1008 YUV422]
->28 long 1000 RGB24]
+>4 long x - version %d
+>8 long x - [%d -
+>20 long x \b%dx
+>24 long x \b%dx
+>28 long 1008 \bYUV422]
+>28 long 1000 \bRGB24]
+
+# Xcursor data
+# X11 mouse cursor format defined in libXcursor, see
+# http://www.x.org/archive/X11R6.8.1/doc/Xcursor.3.html
+# http://cgit.freedesktop.org/xorg/lib/libXcursor/tree/include/X11/Xcursor/Xcursor.h
+0 string Xcur Xcursor data
+!:mime image/x-xcursor
+>10 leshort x version %d
+>>8 leshort x \b.%d
# $OpenBSD: zilog,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
diff -qur -x m etc58/mtree/4.4BSD.dist etc59/mtree/4.4BSD.dist
--- etc58/mtree/4.4BSD.dist Sun Aug 16 10:25:10 2015
+++ etc59/mtree/4.4BSD.dist Fri Feb 26 09:14:30 2016
@@ -1,4 +1,4 @@
-# $OpenBSD: 4.4BSD.dist,v 1.272 2015/07/21 04:06:04 yasuoka Exp $
+# $OpenBSD: 4.4BSD.dist,v 1.278 2016/01/06 23:28:47 deraadt Exp $
/set type=dir uname=root gname=wheel mode=0755
@@ -185,8 +185,6 @@
..
radiusd type=dir uname=root gname=wheel mode=0755
..
- smtpd type=dir uname=root gname=wheel mode=0755
- ..
..
# ./usr/local
@@ -503,8 +501,6 @@
..
armv7
..
- aviion
- ..
hppa
..
i386
@@ -571,8 +567,6 @@
..
armv7
..
- aviion
- ..
hppa
..
hppa64
@@ -613,8 +607,6 @@
..
mk
..
- nls
- ..
# ./usr/share/snmp
snmp
@@ -622,20 +614,10 @@
..
..
- # ./usr/share/sysmerge
- sysmerge
- ..
-
# ./usr/share/tabset
tabset
..
- # ./usr/share/vi
- vi
- catalog
- ..
- ..
-
# ./usr/share/zoneinfo
zoneinfo gname=bin uname=root mode=0555
Australia gname=bin uname=root mode=0555
@@ -753,6 +735,10 @@
run
..
+ # ./var/sysmerge
+ sysmerge uname=root gname=wheel mode=0700
+ ..
+
# ./var/spool
spool
@@ -779,7 +765,7 @@
..
incoming type=dir uname=_smtpq gname=wheel mode=0700
..
- offline type=dir uname=root gname=wheel mode=1777
+ offline type=dir uname=root gname=_smtpq mode=0770
..
purge type=dir uname=_smtpq gname=wheel mode=0700
..
diff -qur -x m etc58/mtree/BSD.x11.dist etc59/mtree/BSD.x11.dist
--- etc58/mtree/BSD.x11.dist Sun Aug 16 10:25:10 2015
+++ etc59/mtree/BSD.x11.dist Fri Feb 26 09:14:30 2016
@@ -1,4 +1,4 @@
-# $OpenBSD: BSD.x11.dist,v 1.38 2015/04/15 07:41:53 jsg Exp $
+# $OpenBSD: BSD.x11.dist,v 1.41 2015/10/19 07:55:31 dcoppa Exp $
/set type=dir uname=root gname=wheel mode=0755
.
@@ -27,12 +27,12 @@
bin
..
include
+ EGL
+ ..
GL
internal
..
..
- EGL
- ..
GLES
..
GLES2
@@ -74,9 +74,13 @@
fontconfig
..
freetype2
- config
+ freetype
+ config
+ ..
..
..
+ libdrm
+ ..
pixman-1
..
xcb
@@ -407,6 +411,8 @@
..
mk
..
+ util-macros
+ ..
xcb
..
..
@@ -417,10 +423,6 @@
..
..
..
- share
- sysmerge
- ..
- ..
..
var
cache
@@ -432,6 +434,8 @@
..
..
log
+ ..
+ sysmerge uname=root gname=wheel mode=0700
..
..
..
diff -qur -x m etc58/mtree/special etc59/mtree/special
--- etc58/mtree/special Sun Aug 16 10:25:10 2015
+++ etc59/mtree/special Fri Feb 26 09:14:30 2016
@@ -1,4 +1,4 @@
-# $OpenBSD: special,v 1.115 2015/08/03 04:19:25 yasuoka Exp $
+# $OpenBSD: special,v 1.116 2015/12/05 09:12:15 tedu Exp $
#
# Hand-crafted mtree specification for the dangerous files.
#
@@ -22,7 +22,6 @@
daily type=file mode=0644 uname=root gname=wheel
daily.local type=file mode=0644 uname=root gname=wheel optional
dhcpd.conf type=file mode=0644 uname=root gname=wheel optional
-doas.conf type=file mode=0640 uname=root gname=wheel optional
dvmrpd.conf type=file mode=0600 uname=root gname=wheel optional
exports type=file mode=0644 uname=root gname=wheel optional
fbtab type=file mode=0644 uname=root gname=wheel
diff -qur -x m etc58/netstart etc59/netstart
--- etc58/netstart Sun Aug 16 10:25:09 2015
+++ etc59/netstart Fri Feb 26 09:14:28 2016
@@ -1,21 +1,25 @@
#!/bin/sh -
#
-# $OpenBSD: netstart,v 1.153 2015/07/20 06:59:39 rpe Exp $
+# $OpenBSD: netstart,v 1.167 2015/12/29 19:37:31 rpe Exp $
# Turn off Strict Bourne shell mode.
set +o sh
-# Strip comments (and leading/trailing whitespace if IFS is set) from a file
-# and spew to stdout.
+# Strip comment lines from a file.
+# Strip leading and trailing whitespace if IFS is set.
+# Usage: stripcom /path/to/file
stripcom() {
- local _l
- [[ -f $1 ]] || return
- while read _l; do
- [[ -n ${_l%%#*} ]] && echo $_l
- done<$1
+ local _file=$1 _line
+
+ [[ -f $_file ]] || return
+
+ while read _line; do
+ [[ -n ${_line%%#*} ]] && print -r -- "$_line"
+ done <$_file
}
-# Start the $1 interface.
+# Start a single interface.
+# Usage: ifstart if1
ifstart() {
if=$1
# Interface names must be alphanumeric only. We check to avoid
@@ -28,7 +32,7 @@
return
fi
# Not using stat(1), we can't rely on having /usr yet.
- set -A stat -- `ls -nL $file`
+ set -A stat -- $(ls -nL $file)
if [ "${stat[0]#???????} ${stat[2]} ${stat[3]}" != "--- 0 0" ]; then
echo "WARNING: $file is insecure, fixing permissions"
chmod -LR o-rwx $file
@@ -126,57 +130,59 @@
done </etc/hostname.$if
}
-# Start multiple:
-# Usage: ifmstart "if1 if2" "if3 if4"
+# Start multiple interfaces by driver name.
+# Usage: ifmstart "em iwm" "trunk vlan"
# Start "$1" interfaces in order or all interfaces if empty.
-# Don't start "$2" interfaces.
+# Don't start "$2" interfaces. "$2" is optional.
ifmstart() {
- for sif in ${1:-ALL}; do
- for hn in /etc/hostname.*; do
- # Strip off /etc/hostname. prefix.
- if=${hn#/etc/hostname.}
- [ "$if" = "*" ] && continue
+ local _sifs=$1 _xifs=$2 _hn _if _sif _xif
+ for _sif in ${_sifs:-ALL}; do
+ for _hn in /etc/hostname.*; do
+ _if=${_hn#/etc/hostname.}
+ [[ $_if == '*' ]] && continue
+
# Skip unwanted ifs.
- s=""
- for xf in $2; do
- [ "$xf" = "${if%%[0-9]*}" ] && s="1" && break
+ for _xif in $_xifs; do
+ [[ $_xif == ${_if%%[0-9]*} ]] && continue 2
done
- [ "$s" = "1" ] && continue
# Start wanted ifs.
- [ "$sif" = "ALL" -o "$sif" = "${if%%[0-9]*}" ] &&
- ifstart $if
+ [[ $_sif == @(ALL|${_if%%[0-9]*}) ]] && ifstart $_if
done
done
}
+# IPv6 autoconf the interfaces in the $rtsolif list.
+# Usage: ifv6autoconf
+ifv6autoconf() {
+ local _if
+
+ # $ip6kernel will not have been set if we were invoked with a
+ # list of interface names
+ ifconfig lo0 inet6 >/dev/null 2>&1 || return 0
+
+ for _if in $rtsolif; do
+ ifconfig $_if inet6 autoconf
+ done
+}
+
# Get network related vars from rc.conf using the parsing routine from rc.subr.
FUNCS_ONLY=1 . /etc/rc.d/rc.subr
_rc_parse_conf
# If we were invoked with a list of interface names, just reconfigure these
# interfaces (or bridges) and return.
-if [[ $1 == autoboot ]]; then
- shift
-fi
-if [ $# -gt 0 ]; then
- while [ $# -gt 0 ]; do
- ifstart $1
- shift
- done
+if (($# > 0)); then
+ for _if; do ifstart $_if; done
+ ifv6autoconf
return
fi
# Otherwise, process with the complete network initialization.
# /etc/myname contains my symbolic name.
-if [ -f /etc/myname ]; then
- hostname=`stripcom /etc/myname`
- hostname $hostname
-else
- hostname=`hostname`
-fi
+[[ -f /etc/myname ]] && hostname "$(stripcom /etc/myname)"
# Set the address for the loopback interface. Bringing the interface up,
# automatically invokes the IPv6 address ::1.
@@ -239,17 +245,15 @@
# Configure all the non-loopback interfaces which we know about, but
# do not start interfaces which must be delayed. Refer to hostname.if(5)
-ifmstart "" "trunk svlan vlan carp gif gre pfsync pppoe tun bridge pflow"
+ifmstart "" "trunk svlan vlan carp gif gre pfsync pppoe tun tap bridge pflow"
# The trunk interfaces need to come up first in this list.
# The (s)vlan interfaces need to come up after trunk.
# Configure all the carp interfaces which we know about before default route.
ifmstart "trunk svlan vlan carp"
-if [ "$ip6kernel" = "YES" -a "x$rtsolif" != "x" ]; then
- echo "IPv6 autoconf:$rtsolif"
- ifconfig $rtsolif inet6 autoconf
-fi
+# Now that $rtsolif has been populated, IPv6 autoconf those interfaces
+ifv6autoconf
# Look for default routes in /etc/mygate.
[[ -z $dhcpif ]] && stripcom /etc/mygate | while read gw; do
@@ -264,58 +268,23 @@
done
# Multicast routing.
-#
-# The routing to the 224.0.0.0/4 net is setup according to these rules:
-# multicast_host multicast_router route comment
-# NO NO -reject no multicast
-# NO YES none installed daemon will run
-# YES/interface NO -interface YES=def. iface
-# Any other combination -reject config error
route -qn delete 224.0.0.0/4 >/dev/null 2>&1
-case "$multicast_host:$multicast_router" in
-NO:NO)
+[[ $multicast != YES ]] &&
route -qn add -net 224.0.0.0/4 -interface 127.0.0.1 -reject >/dev/null
- ;;
-NO:YES)
- ;;
-*:NO)
- maddr=`if [ "$multicast_host" = "YES" ]; then
- ed -s '!route -qn show -inet' <<EOF
-/^default/p
-EOF
- else
- ed -s "!ifconfig $multicast_host" <<EOF
-/^ inet /p
-EOF
- fi 2>/dev/null`
- if [ "X${maddr}" != "X" ]; then
- set $maddr
- route -qn add -net 224.0.0.0/4 -interface $2 >/dev/null
- else
- route -qn add -net 224.0.0.0/4 -interface \
- 127.0.0.1 -reject >/dev/null
- fi
- ;;
-*:*)
- echo 'config error, multicasting disabled until rc.conf is fixed'
- route -qn add -net 224.0.0.0/4 -interface 127.0.0.1 -reject >/dev/null
- ;;
-esac
-
# Configure PPPoE, GIF, GRE, TUN and PFLOW interfaces, delayed because they
# require routes to be set. TUN might depend on PPPoE, and GIF or GRE may
# depend on either of them. PFLOW might bind to ip addresses configured
# on either of them.
-ifmstart "pppoe tun gif gre bridge pflow"
+ifmstart "pppoe tun tap gif gre bridge pflow"
# Reject 127/8 other than 127.0.0.1.
route -qn add -net 127 127.0.0.1 -reject >/dev/null
-if [ "$ip6kernel" = "YES" ]; then
+if [[ $ip6kernel == YES ]]; then
# This is to make sure DAD is completed before going further.
count=0
- while [ $((count++)) -lt 10 -a "x"`sysctl -n net.inet6.ip6.dad_pending` != "x0" ]; do
+ while ((count++ < 10 && $(sysctl -n net.inet6.ip6.dad_pending) != 0)); do
sleep 1
done
fi
diff -qur -x m etc58/rc etc59/rc
--- etc58/rc Sun Aug 16 10:25:09 2015
+++ etc59/rc Fri Feb 26 09:14:28 2016
@@ -1,4 +1,4 @@
-# $OpenBSD: rc,v 1.455 2015/08/03 04:19:25 yasuoka Exp $
+# $OpenBSD: rc,v 1.474 2015/12/29 19:41:24 rpe Exp $
# System startup script run by init on autoboot or after single-user.
# Output and error are redirected to console by init, and the console is the
@@ -10,96 +10,74 @@
# Subroutines (have to come first).
-# Strip comments (and leading/trailing whitespace if IFS is set) from a file
-# and spew to stdout.
+# Strip in- and whole-line comments from a file.
+# Strip leading and trailing whitespace if IFS is set.
+# Usage: stripcom /path/to/file
stripcom() {
- local _file="$1"
- local _line
+ local _file=$1 _line
- {
- while read _line ; do
- _line=${_line%%#*} # strip comments
- [ -z "$_line" ] && continue
- echo $_line
- done
- } <$_file
+ [[ -s $_file ]] || return
+
+ while read _line ; do
+ _line=${_line%%#*}
+ [[ -n $_line ]] && print -r -- "$_line"
+ done <$_file
}
-# Update resource limits when sysctl changes.
-# Usage: update_limit -X loginconf_name
+# Update resource limits based on login.conf settings.
+# Usage: update_limit -flag capability
update_limit() {
- local _fl="$1" # ulimit flag
- local _lc="$2" # login.conf name
- local _new _suf
+ local _flag=$1 # ulimit flag
+ local _cap=$2 _val # login.conf capability and its value
+ local _suffix
- for _suf in "" -cur -max; do
- _new=`getcap -f /etc/login.conf -s ${_lc}${_suf} daemon 2>/dev/null`
- if [ X"$_new" != X"" ]; then
- if [ X"$_new" = X"infinity" ]; then
- _new=unlimited
- fi
- case "$_suf" in
- -cur)
- ulimit -S $_fl $_new
- ;;
- -max)
- ulimit -H $_fl $_new
- ;;
- *)
- ulimit $_fl $_new
- return
- ;;
- esac
- fi
+ for _suffix in {,-cur,-max}; do
+ _val=$(getcap -f /etc/login.conf -s ${_cap}${_suffix} daemon 2>/dev/null)
+ [[ -n $_val ]] || continue
+ [[ $_val == infinity ]] && _val=unlimited
+
+ case $_suffix in
+ -cur) ulimit -S $_flag $_val
+ ;;
+ -max) ulimit -H $_flag $_val
+ ;;
+ *) ulimit $_flag $_val
+ return
+ ;;
+ esac
done
}
-# Apply sysctl(8) settings.
+# Apply sysctl.conf(5) settings.
sysctl_conf() {
- [ -s /etc/sysctl.conf ] || return
+ stripcom /etc/sysctl.conf |
+ while read _line; do
+ sysctl "$_line"
- # delete comments and blank lines
- set -- `stripcom /etc/sysctl.conf`
- while [ $# -ge 1 ] ; do
- sysctl $1
- # update limits if needed
- case $1 in
+ case $_line in
kern.maxproc=*)
- update_limit -p maxproc
- ;;
+ update_limit -p maxproc;;
kern.maxfiles=*)
- update_limit -n openfiles
- ;;
+ update_limit -n openfiles;;
esac
- shift
done
}
-# Apply mixerctl(1) settings.
+# Apply mixerctl.conf(5) settings.
mixerctl_conf() {
- [ -s /etc/mixerctl.conf ] || return
-
- # delete comments and blank lines
- set -- `stripcom /etc/mixerctl.conf`
- while [ $# -ge 1 ] ; do
- mixerctl -q $1 >/dev/null 2>&1
- shift
+ stripcom /etc/mixerctl.conf |
+ while read _line; do
+ mixerctl -q "$_line" 2>/dev/null
done
}
-# Apply wscons system driver settings using wsconsctl(8).
+# Apply wsconsctl.conf(5) settings.
wsconsctl_conf() {
- local save_IFS="$IFS"
+ [[ -x /sbin/wsconsctl ]] || return
- [ -x /sbin/wsconsctl -a -s /etc/wsconsctl.conf ] || return
- # delete comments and blank lines
- IFS="
-"
- set -- `stripcom /etc/wsconsctl.conf`
- IFS="$save_IFS"
- while [ $# -ge 1 ] ; do
- eval wsconsctl $1
- shift
+ stripcom /etc/wsconsctl.conf |
+ while read _line; do
+ eval "wsconsctl $_line"
done
}
@@ -117,117 +95,92 @@
# Populate net.inet.(tcp|udp).baddynamic with the contents of /etc/services so
# as to avoid randomly allocating source ports that correspond to well-known
# services.
+# Usage: fill_baddynamic tcp|udp
fill_baddynamic() {
local _service=$1
local _sysctl="net.inet.${_service}.baddynamic"
+
stripcom /etc/services |
{
- # Variables are local
+ _ban=
while IFS=" /" read _name _port _srv _junk; do
- [ "x${_srv}" = "x${_service}" ] || continue
- _ban="${_ban:+${_ban},}+${_port}"
+ [[ $_srv == $_service ]] || continue
+
+ _ban="${_ban:+$_ban,}+$_port"
+
# Flush before argv gets too long
- if [ ${#_ban} -gt 1024 ]; then
- sysctl -q ${_sysctl}=${_ban}
- _ban=""
+ if ((${#_ban} > 1024)); then
+ sysctl -q "$_sysctl=$_ban"
+ _ban=
fi
done
- [ "${_ban}" ] && sysctl -q ${_sysctl}=${_ban}
+ [[ -n $_ban ]] && sysctl -q "$_sysctl=$_ban"
}
}
# Start daemon using the rc.d daemon control scripts.
# Usage: start_daemon daemon1 daemon2 daemon3
start_daemon() {
- local _n
- for _n; do
- eval _do=\${${_n}_flags}
- if [ X"${_do}" != X"NO" ]; then
- /etc/rc.d/${_n} start
- fi
+ local _daemon
+
+ for _daemon; do
+ eval "_do=\${${_daemon}_flags}"
+ [[ $_do != NO ]] && /etc/rc.d/${_daemon} start
done
}
-# Generate keys for isakmpd, iked and sshd if the don't exist yet.
+# Generate keys for isakmpd, iked and sshd if they don't exist yet.
make_keys() {
- if [ ! -f /etc/isakmpd/private/local.key ]; then
- echo -n "openssl: generating isakmpd/iked RSA key... "
- if openssl genrsa -out /etc/isakmpd/private/local.key 2048 \
- >/dev/null 2>&1; then
- chmod 600 /etc/isakmpd/private/local.key
- openssl rsa -out /etc/isakmpd/local.pub -in \
- /etc/isakmpd/private/local.key -pubout \
- >/dev/null 2>&1
+ local _isakmpd_key=/etc/isakmpd/private/local.key
+ local _isakmpd_pub=/etc/isakmpd/local.pub
+ local _iked_key=/etc/iked/private/local.key
+ local _iked_pub=/etc/iked/local.pub
+
+ if [[ ! -f $_isakmpd_key ]]; then
+ echo -n "openssl: generating isakmpd/iked RSA keys... "
+ if openssl genrsa -out $_isakmpd_key 2048 >/dev/null 2>&1 &&
+ chmod 600 $_isakmpd_key &&
+ openssl rsa -out $_isakmpd_pub -in $_isakmpd_key \
+ -pubout >/dev/null 2>&1; then
echo done.
else
echo failed.
fi
fi
- if [ ! -f /etc/iked/private/local.key ]; then
+ if [[ ! -f $_iked_key ]]; then
# Just copy the generated isakmpd key
- cp /etc/isakmpd/private/local.key /etc/iked/private/local.key
- chmod 600 /etc/iked/private/local.key
- cp /etc/isakmpd/local.pub /etc/iked/local.pub
+ cp $_isakmpd_key $_iked_key
+ chmod 600 $_iked_key
+ cp $_isakmpd_pub $_iked_pub
fi
ssh-keygen -A
}
-# Create Unix sockets directories for X if needed and make sure they have
-# correct permissions.
-setup_X_sockets() {
- if [ -d /usr/X11R6/lib ]; then
- for d in /tmp/.X11-unix /tmp/.ICE-unix ; do
- if [ -d $d ]; then
- if [ `ls -ld $d | cut -d' ' -f4` \
- != root ]; then
- chown root $d
- fi
- if [ `ls -ld $d | cut -d' ' -f1` \
- != drwxrwxrwt ]; then
- chmod 1777 $d
- fi
- elif [ -e $d ]; then
- echo "Error: $d exists and isn't a directory."
- else
- mkdir -m 1777 $d
- fi
- done
- fi
-}
-
-# Check filesystems, optionally by using a flag for fsck(8) passed as $1.
+# Check filesystems, optionally by using a fsck(8) flag.
+# Usage: do_fsck [-flag]
do_fsck() {
- local _flags=$1
-
- fsck -p $_flags
+ fsck -p "$@"
case $? in
- 0)
+ 0) ;;
+ 2) exit 1
;;
- 2)
- exit 1
- ;;
- 4)
- echo "Rebooting..."
+ 4) echo "Rebooting..."
reboot
echo "Reboot failed; help!"
exit 1
;;
- 8)
- echo "Automatic file system check failed; help!"
+ 8) echo "Automatic file system check failed; help!"
exit 1
;;
- 12)
- echo "Boot interrupted."
+ 12) echo "Boot interrupted."
exit 1
;;
- 130)
- # Interrupt before catcher installed.
+ 130) # Interrupt before catcher installed.
exit 1
;;
- *)
- echo "Unknown error; help!"
+ *) echo "Unknown error; help!"
exit 1
;;
esac
@@ -242,14 +195,13 @@
trap : 2
trap : 3 # Shouldn't be needed.
-HOME=/; export HOME
-INRC=1; export INRC
-PATH=/sbin:/bin:/usr/sbin:/usr/bin
-export PATH
+export HOME=/
+export INRC=1
+export PATH=/sbin:/bin:/usr/sbin:/usr/bin
# Must set the domainname before rc.conf, so YP startup choices can be made.
-if [ -f /etc/defaultdomain ]; then
- domainname `stripcom /etc/defaultdomain`
+if [[ -s /etc/defaultdomain ]]; then
+ domainname "$(stripcom /etc/defaultdomain)"
fi
# Need to get local functions from rc.subr.
@@ -258,7 +210,7 @@
# Load rc.conf into scope.
_rc_parse_conf
-if [ X"$1" = X"shutdown" ]; then
+if [[ $1 == shutdown ]]; then
if echo 2>/dev/null >>/var/db/host.random || \
echo 2>/dev/null >>/etc/random.seed; then
random_seed
@@ -267,38 +219,37 @@
fi
# If we are in secure level 0, assume single user mode.
- if [ `sysctl -n kern.securelevel` -ne 0 ]; then
+ if (($(sysctl -n kern.securelevel) == 0)); then
+ echo 'single user: not running shutdown scripts'
+ else
pkg_scripts=${pkg_scripts%%*( )}
- if [ -n "${pkg_scripts}" ]; then
+ if [[ -n $pkg_scripts ]]; then
echo -n 'stopping package daemons:'
- while [ -n "${pkg_scripts}" ]; do
- _r=${pkg_scripts##* }
- pkg_scripts=${pkg_scripts%%*( )${_r}}
- [ -x /etc/rc.d/${_r} ] && /etc/rc.d/${_r} stop
+ while [[ -n $pkg_scripts ]]; do
+ _d=${pkg_scripts##* }
+ pkg_scripts=${pkg_scripts%%*( )$_d}
+ [[ -x /etc/rc.d/$_d ]] && /etc/rc.d/$_d stop
done
echo '.'
fi
- [ -f /etc/rc.shutdown ] && sh /etc/rc.shutdown
- else
- echo single user: not running shutdown scripts
+ [[ -f /etc/rc.shutdown ]] && sh /etc/rc.shutdown
fi
# Bring carp interfaces down gracefully.
- ifconfig | while read a b; do
- case $a in
- carp+([0-9]):) ifconfig ${a%:} down ;;
- esac
+ ifconfig | while read _if _junk; do
+ [[ $_if == carp+([0-9]): ]] && ifconfig ${_if%:} down
done
exit 0
fi
+# Add swap block-devices.
swapctl -A -t blk
-if [ -e /fastboot ]; then
+if [[ -e /fastboot ]]; then
echo "Fast boot: skipping disk checks."
-elif [ X"$1" = X"autoboot" ]; then
+elif [[ $1 == autoboot ]]; then
echo "Automatic boot in progress: starting file system checks."
do_fsck
fi
@@ -314,13 +265,15 @@
echo 'setting tty flags'
ttyflags -a
-if [ -f /sbin/kbd -a -f /etc/kbdtype ]; then
- kbd `cat /etc/kbdtype`
+# Set keyboard encoding.
+if [[ -x /sbin/kbd && -s /etc/kbdtype ]]; then
+ kbd "$(cat /etc/kbdtype)"
fi
wsconsctl_conf
-if [ X"${pf}" != X"NO" ]; then
+# Set initial temporary pf rule set.
+if [[ $pf != NO ]]; then
RULES="block all"
RULES="$RULES\npass on lo0"
RULES="$RULES\npass in proto tcp from any to any port ssh keep state"
@@ -338,15 +291,13 @@
fi
RULES="$RULES\npass in proto carp keep state (no-sync)"
RULES="$RULES\npass out proto carp !received-on any keep state (no-sync)"
- case `sysctl vfs.mounts.nfs 2>/dev/null` in
- *[1-9]*)
+ if [[ $(sysctl vfs.mounts.nfs 2>/dev/null) == *[1-9]* ]]; then
# Don't kill NFS.
RULES="set reassemble yes no-df\n$RULES"
RULES="$RULES\npass in proto { tcp, udp } from any port { sunrpc, nfsd } to any"
RULES="$RULES\npass out proto { tcp, udp } from any to any port { sunrpc, nfsd } !received-on any"
- ;;
- esac
- echo $RULES | pfctl -f -
+ fi
+ print -- "$RULES" | pfctl -f -
pfctl -e
fi
@@ -356,23 +307,28 @@
sysctl_conf
-# Set hostname, turn on network.
echo 'starting network'
+
+# Set carp interlock by increasing the demotion counter.
+# Prevents carp from preempting until the system is booted.
ifconfig -g carp carpdemote 128
-if [ -f /etc/resolv.conf.save ]; then
+
+# Recover resolv.conf in case dhclient died hard.
+if [[ -f /etc/resolv.conf.save ]]; then
mv -f /etc/resolv.conf.save /etc/resolv.conf
touch /etc/resolv.conf
fi
+
sh /etc/netstart
+
dmesg >/dev/random # Any write triggers a rekey.
# Load pf rules and bring up pfsync interface.
-if [ X"${pf}" != X"NO" ]; then
- if [ -f /etc/pf.conf ]; then
+if [[ $pf != NO ]]; then
+ if [[ -f /etc/pf.conf ]]; then
pfctl -f /etc/pf.conf
fi
- # Bring up pfsync after the working ruleset has been loaded.
- if [ -f /etc/hostname.pfsync0 ]; then
+ if [[ -f /etc/hostname.pfsync0 ]]; then
sh /etc/netstart pfsync0
fi
fi
@@ -387,58 +343,58 @@
(cd /var/run && { rm -rf -- *; install -c -m 664 -g utmp /dev/null utmp; })
(cd /var/authpf && rm -rf -- *)
-# Save a copy of the boot messages.
-dmesg >/var/run/dmesg.boot
+dmesg >/var/run/dmesg.boot # Save a copy of the boot messages.
make_keys
echo -n 'starting early daemons:'
-start_daemon syslogd ldattach pflogd nsd unbound ntpd
+start_daemon syslogd ldattach pflogd nsd rebound unbound ntpd
start_daemon iscsid isakmpd iked sasyncd ldapd npppd
echo '.'
# Load IPsec rules.
-if [ X"${ipsec}" != X"NO" ]; then
- if [ -f /etc/ipsec.conf ]; then
- ipsecctl -f /etc/ipsec.conf
- fi
+if [[ $ipsec != NO && -f /etc/ipsec.conf ]]; then
+ ipsecctl -f /etc/ipsec.conf
fi
echo -n 'starting RPC daemons:'
start_daemon portmap ypldap
-if [ X"`domainname`" != X"" ]; then
- start_daemon ypserv ypbind yppasswdd
+rm -f /var/run/ypbind.lock
+if [[ -n $(domainname) ]]; then
+ start_daemon ypserv ypbind
fi
start_daemon mountd nfsd lockd statd amd
echo '.'
+# Check and mount remaining file systems and enable additional swap.
mount -a
swapctl -A -t noblk
-
-# Check and mount networked filesystems.
do_fsck -N
mount -a -N
# /var/crash should be a directory or a symbolic link to the crash directory
# if core dumps are to be saved.
-if [ -d /var/crash ]; then
- savecore ${savecore_flags} /var/crash
+if [[ -d /var/crash ]]; then
+ savecore $savecore_flags /var/crash
fi
-if [ X"${check_quotas}" = X"YES" ]; then
+if [[ $check_quotas == YES ]]; then
echo -n 'checking quotas:'
quotacheck -a
echo ' done.'
quotaon -a
fi
-kvm_mkdb # build kvm(3) databases
+# Build kvm(3) and /dev databases.
+kvm_mkdb
dev_mkdb
+
+# Set proper permission for the tty device files.
chmod 666 /dev/tty[pqrstuvwxyzPQRST]*
chown root:wheel /dev/tty[pqrstuvwxyzPQRST]*
# Check the password temp/lock file.
-if [ -f /etc/ptmp ]; then
+if [[ -f /etc/ptmp ]]; then
logger -s -p auth.err \
'password file may be incorrect -- /etc/ptmp exists'
fi
@@ -452,19 +408,21 @@
find . -maxdepth 1 ! -name . ! -name lost+found ! -name quota.user \
! -name quota.group ! -name vi.recover -execdir rm -rf -- {} \;)
-setup_X_sockets
+# Create Unix sockets directories for X if needed and make sure they have
+# correct permissions.
+[[ -d /usr/X11R6/lib ]] && mkdir -m 1777 /tmp/.{X11,ICE}-unix
-[ -f /etc/rc.securelevel ] && sh /etc/rc.securelevel
+[[ -f /etc/rc.securelevel ]] && sh /etc/rc.securelevel
+
# rc.securelevel did not specifically set -1 or 2, so select the default: 1.
-if [ `sysctl -n kern.securelevel` -eq 0 ]; then
- sysctl kern.securelevel=1
-fi
+(($(sysctl -n kern.securelevel) == 0)) && sysctl kern.securelevel=1
+
# Patch /etc/motd.
-if [ ! -f /etc/motd ]; then
+if [[ ! -f /etc/motd ]]; then
install -c -o root -g wheel -m 664 /dev/null /etc/motd
fi
-if T=`mktemp /tmp/_motd.XXXXXXXXXX`; then
+if T=$(mktemp /tmp/_motd.XXXXXXXXXX); then
sysctl -n kern.version | sed 1q >$T
echo "" >>$T
sed '1,/^$/d' </etc/motd >>$T
@@ -472,68 +430,63 @@
rm -f $T
fi
-if [ X"${accounting}" = X"YES" ]; then
- if [ ! -f /var/account/acct ]; then
- touch /var/account/acct
- fi
- echo 'turning on accounting'; accton /var/account/acct
+if [[ $accounting == YES ]]; then
+ [[ ! -f /var/account/acct ]] && touch /var/account/acct
+ echo 'turning on accounting'
+ accton /var/account/acct
fi
-if [ -f /sbin/ldconfig ]; then
+if [[ -x /sbin/ldconfig ]]; then
echo 'creating runtime link editor directory cache.'
- if [ -d /usr/local/lib ]; then
- shlib_dirs="/usr/local/lib $shlib_dirs"
- fi
- if [ -d /usr/X11R6/lib ]; then
- shlib_dirs="/usr/X11R6/lib $shlib_dirs"
- fi
+ [[ -d /usr/local/lib ]] && shlib_dirs="/usr/local/lib $shlib_dirs"
+ [[ -d /usr/X11R6/lib ]] && shlib_dirs="/usr/X11R6/lib $shlib_dirs"
ldconfig $shlib_dirs
fi
echo 'preserving editor files.'; /usr/libexec/vi.recover
echo -n 'starting network daemons:'
-start_daemon ldomd sshd snmpd ldpd ripd ospfd ospf6d bgpd ifstated
-start_daemon relayd dhcpd dhcrelay mrouted dvmrpd radiusd
+start_daemon ldomd vmd sshd snmpd ldpd ripd ospfd ospf6d bgpd ifstated
+start_daemon relayd dhcpd dhcrelay mrouted dvmrpd radiusd eigrpd
if ifconfig lo0 inet6 >/dev/null 2>&1; then
- fw=`sysctl -n net.inet6.ip6.forwarding`
- if [ X"${fw}" = X"1" ]; then
+ if (($(sysctl -n net.inet6.ip6.forwarding) == 1)); then
start_daemon route6d rtadvd
fi
fi
start_daemon hostapd lpd smtpd slowcgi httpd ftpd
-start_daemon ftpproxy tftpd tftpproxy identd inetd rarpd bootparamd
+start_daemon ftpproxy ftpproxy6 tftpd tftpproxy identd inetd rarpd bootparamd
start_daemon rbootd mopd spamd spamlogd sndiod
echo '.'
# If rc.firsttime exists, run it just once, and make sure it is deleted.
-if [ -f /etc/rc.firsttime ]; then
+if [[ -f /etc/rc.firsttime ]]; then
mv /etc/rc.firsttime /etc/rc.firsttime.run
. /etc/rc.firsttime.run 2>&1 | tee /dev/tty |
- mail -Es "`hostname` rc.firsttime output" root >/dev/null
+ mail -Es "$(hostname) rc.firsttime output" root >/dev/null
fi
rm -f /etc/rc.firsttime.run
# Run rc.d(8) scripts from packages.
-if [ -n "${pkg_scripts}" ]; then
+if [[ -n $pkg_scripts ]]; then
echo -n 'starting package daemons:'
- for _r in $pkg_scripts; do
- if [ -x /etc/rc.d/${_r} ]; then
- start_daemon ${_r}
+ for _daemon in $pkg_scripts; do
+ if [[ -x /etc/rc.d/$_daemon ]]; then
+ start_daemon $_daemon
else
- echo -n " ${_r}(absent)"
+ echo -n " ${_daemon}(absent)"
fi
done
echo '.'
fi
-[ -f /etc/rc.local ] && sh /etc/rc.local
+[[ -f /etc/rc.local ]] && sh /etc/rc.local
-ifconfig -g carp -carpdemote 128 # disable carp interlock
+ifconfig -g carp -carpdemote 128 # Disable carp interlock.
mixerctl_conf
+
echo -n 'starting local daemons:'
start_daemon apmd sensorsd hotplugd watchdogd cron wsmoused xdm
echo '.'
diff -qur -x m etc58/rc.conf etc59/rc.conf
--- etc58/rc.conf Sun Aug 16 10:25:09 2015
+++ etc59/rc.conf Fri Feb 26 09:14:28 2016
@@ -1,4 +1,4 @@
-# $OpenBSD: rc.conf,v 1.204 2015/08/03 04:19:25 yasuoka Exp $
+# $OpenBSD: rc.conf,v 1.211 2015/12/06 13:51:41 rpe Exp $
# DO NOT EDIT THIS FILE!!
#
@@ -20,8 +20,10 @@
dhcpd_flags=NO
dhcrelay_flags=NO # for normal use: "-i interface [server]"
dvmrpd_flags=NO
+eigrpd_flags=NO
ftpd_flags=NO # set to NO if ftpd is running out of inetd
ftpproxy_flags=NO
+ftpproxy6_flags=NO
hostapd_flags=NO
hotplugd_flags=NO
httpd_flags=NO
@@ -37,7 +39,7 @@
ldpd_flags=NO
lpd_flags=NO # for normal use: "" (or "-l" for debugging)
mopd_flags=NO
-mrouted_flags=NO # be sure to enable multicast_router below
+mrouted_flags=NO # be sure to enable multicast below
npppd_flags=NO
nsd_flags=NO
ntpd_flags=
@@ -48,6 +50,7 @@
rarpd_flags=NO
rbootd_flags=NO
relayd_flags=NO
+rebound_flags=NO
ripd_flags=NO
route6d_flags=NO # be sure to set net.inet6.ip6.forwarding=1
rtadvd_flags=NO # for normal use: list of interfaces
@@ -65,6 +68,7 @@
tftpd_flags=NO
tftpproxy_flags=NO
unbound_flags=NO
+vmd_flags=NO
watchdogd_flags=NO
wsmoused_flags=NO # for enabling console mouse support (i386 alpha amd64)
# for ps/2 or usb mice: "", serial: "-p /dev/cua00"
@@ -80,7 +84,6 @@
statd_flags=NO
ypbind_flags=NO
ypldap_flags=NO
-yppasswdd_flags=NO # "-d /etc/yp" if passwd files are in /etc/yp
ypserv_flags=NO
# set the following to "YES" to turn them on
@@ -91,8 +94,7 @@
# Multicast routing configuration
# Please look at netstart(8) for a detailed description if you change these
-multicast_host=NO # Route all multicast packets to a single interface
-multicast_router=NO # A multicast routing daemon will be run, e.g. mrouted
+multicast=NO # Reject IPv4 multicast packets by default
# miscellaneous other flags
amd_master=/etc/amd/master # AMD 'master' map
diff -qur -x m etc58/rc.d/bgpd etc59/rc.d/bgpd
--- etc58/rc.d/bgpd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/bgpd Fri Feb 26 09:14:29 2016
@@ -1,11 +1,14 @@
#!/bin/sh
#
-# $OpenBSD: bgpd,v 1.1 2011/07/06 18:55:36 robert Exp $
+# $OpenBSD: bgpd,v 1.3 2016/02/07 20:56:48 sthen Exp $
daemon="/usr/sbin/bgpd"
. /etc/rc.d/rc.subr
-pexp="bgpd: parent.*"
+# child will not return a config parsing error to the parent
+rc_pre() {
+ ${daemon} -n ${daemon_flags}
+}
rc_cmd $1
diff -qur -x m etc58/rc.d/dvmrpd etc59/rc.d/dvmrpd
--- etc58/rc.d/dvmrpd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/dvmrpd Fri Feb 26 09:14:29 2016
@@ -1,12 +1,11 @@
#!/bin/sh
#
-# $OpenBSD: dvmrpd,v 1.2 2013/06/04 12:27:29 sthen Exp $
+# $OpenBSD: dvmrpd,v 1.3 2016/02/07 21:00:16 sthen Exp $
daemon="/usr/sbin/dvmrpd"
. /etc/rc.d/rc.subr
-pexp="dvmrpd: parent.*"
rc_reload=NO
rc_cmd $1
Only in etc59/rc.d: eigrpd
Only in etc59/rc.d: ftpproxy6
diff -qur -x m etc58/rc.d/httpd etc59/rc.d/httpd
--- etc58/rc.d/httpd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/httpd Fri Feb 26 09:14:29 2016
@@ -1,11 +1,14 @@
#!/bin/sh
#
-# $OpenBSD: httpd,v 1.3 2014/07/22 17:37:16 reyk Exp $
+# $OpenBSD: httpd,v 1.5 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/httpd"
. /etc/rc.d/rc.subr
-pexp="httpd: parent.*"
+# child will not return a config parsing error to the parent
+rc_pre() {
+ ${daemon} -n ${daemon_flags}
+}
rc_cmd $1
diff -qur -x m etc58/rc.d/iked etc59/rc.d/iked
--- etc58/rc.d/iked Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/iked Fri Feb 26 09:14:29 2016
@@ -1,17 +1,19 @@
#!/bin/sh
#
-# $OpenBSD: iked,v 1.1 2011/07/06 18:55:36 robert Exp $
+# $OpenBSD: iked,v 1.3 2015/12/19 13:45:12 ajacoutot Exp $
daemon="/sbin/iked"
. /etc/rc.d/rc.subr
-pexp="iked:.*parent.*"
+pexp="iked: parent.*"
rc_pre() {
[ X"${sasyncd_flags}" != X"NO" ] && \
daemon_flags="-S ${daemon_flags}"
- return 0
+ #return 0
+ # child will not return a config parsing error to the parent
+ ${daemon} -n ${daemon_flags}
}
rc_cmd $1
diff -qur -x m etc58/rc.d/ldpd etc59/rc.d/ldpd
--- etc58/rc.d/ldpd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/ldpd Fri Feb 26 09:14:29 2016
@@ -1,11 +1,9 @@
#!/bin/sh
#
-# $OpenBSD: ldpd,v 1.1 2011/07/06 18:55:36 robert Exp $
+# $OpenBSD: ldpd,v 1.2 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/ldpd"
. /etc/rc.d/rc.subr
-
-pexp="ldpd: parent.*"
rc_cmd $1
diff -qur -x m etc58/rc.d/mountd etc59/rc.d/mountd
--- etc58/rc.d/mountd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/mountd Fri Feb 26 09:14:29 2016
@@ -1,11 +1,12 @@
#!/bin/sh
#
-# $OpenBSD: mountd,v 1.4 2013/01/26 08:00:11 ajacoutot Exp $
+# $OpenBSD: mountd,v 1.6 2015/12/26 09:55:15 ajacoutot Exp $
daemon="/sbin/mountd"
. /etc/rc.d/rc.subr
+pexp="mountd: \[priv\]"
rc_stop=NO
rc_pre() {
diff -qur -x m etc58/rc.d/npppd etc59/rc.d/npppd
--- etc58/rc.d/npppd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/npppd Fri Feb 26 09:14:29 2016
@@ -1,11 +1,9 @@
#!/bin/sh
#
-# $OpenBSD: npppd,v 1.1 2012/09/20 12:51:43 yasuoka Exp $
+# $OpenBSD: npppd,v 1.2 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/npppd"
. /etc/rc.d/rc.subr
-
-pexp="npppd: main"
rc_cmd $1
diff -qur -x m etc58/rc.d/ntpd etc59/rc.d/ntpd
--- etc58/rc.d/ntpd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/ntpd Fri Feb 26 09:14:29 2016
@@ -1,12 +1,11 @@
#!/bin/sh
#
-# $OpenBSD: ntpd,v 1.2 2011/09/14 02:36:09 william Exp $
+# $OpenBSD: ntpd,v 1.3 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/ntpd"
. /etc/rc.d/rc.subr
-pexp="ntpd: \[priv\]"
rc_reload=NO
rc_cmd $1
diff -qur -x m etc58/rc.d/ospf6d etc59/rc.d/ospf6d
--- etc58/rc.d/ospf6d Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/ospf6d Fri Feb 26 09:14:29 2016
@@ -1,11 +1,9 @@
#!/bin/sh
#
-# $OpenBSD: ospf6d,v 1.1 2011/07/17 00:25:58 david Exp $
+# $OpenBSD: ospf6d,v 1.2 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/ospf6d"
. /etc/rc.d/rc.subr
-
-pexp="ospf6d: parent.*"
rc_cmd $1
diff -qur -x m etc58/rc.d/ospfd etc59/rc.d/ospfd
--- etc58/rc.d/ospfd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/ospfd Fri Feb 26 09:14:29 2016
@@ -1,11 +1,9 @@
#!/bin/sh
#
-# $OpenBSD: ospfd,v 1.1 2011/07/08 22:20:07 deraadt Exp $
+# $OpenBSD: ospfd,v 1.2 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/ospfd"
. /etc/rc.d/rc.subr
-
-pexp="ospfd: parent.*"
rc_cmd $1
diff -qur -x m etc58/rc.d/rc.subr etc59/rc.d/rc.subr
--- etc58/rc.d/rc.subr Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/rc.subr Fri Feb 26 09:14:28 2016
@@ -1,4 +1,4 @@
-# $OpenBSD: rc.subr,v 1.99 2015/07/15 13:48:16 ajacoutot Exp $
+# $OpenBSD: rc.subr,v 1.105 2015/12/21 10:18:05 ajacoutot Exp $
#
# Copyright (c) 2010, 2011, 2014 Antoine Jacoutot <ajacoutot@openbsd.org>
# Copyright (c) 2010, 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -76,16 +76,13 @@
_rc_wait() {
local _i=0
while [ $_i -lt ${daemon_timeout} ]; do
- case "$1" in
- reload|start)
- _rc_do rc_check && return 0
- ;;
- stop)
- _rc_do rc_check || return 0
- ;;
- *)
- break
- ;;
+ case "$1" in
+ reload|start)
+ _rc_do rc_check && return 0 ;;
+ stop)
+ _rc_do rc_check || return 0 ;;
+ *)
+ break ;;
esac
sleep 1
_i=$((_i+1))
@@ -121,10 +118,10 @@
_rc_parse_conf() {
typeset -l _key
- local _l _val
+ local _l _rcfile _val
set -A _allowed_keys -- \
spamd_black pf ipsec check_quotas accounting \
- multicast_host multicast_router amd_master \
+ multicast amd_master \
shlib_dirs pkg_scripts nfs_server
[ $# -gt 0 ] || set -- /etc/rc.conf /etc/rc.conf.local
@@ -205,13 +202,8 @@
if type rc_pre >/dev/null; then
_rc_do rc_pre || break
fi
- # XXX only checks the status of the return code,
- # and _not_ that the daemon is actually running
_rc_do rc_start || break
- if [ -n "${_bg}" ]; then
- sleep 1
- _rc_do _rc_wait start || break
- fi
+ _rc_do _rc_wait start || break
_rc_do _rc_write_runfile
_rc_exit ok
done
Only in etc59/rc.d: rebound
diff -qur -x m etc58/rc.d/relayd etc59/rc.d/relayd
--- etc58/rc.d/relayd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/relayd Fri Feb 26 09:14:29 2016
@@ -1,11 +1,14 @@
#!/bin/sh
#
-# $OpenBSD: relayd,v 1.1 2011/07/06 18:55:36 robert Exp $
+# $OpenBSD: relayd,v 1.3 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/relayd"
. /etc/rc.d/rc.subr
-pexp="relayd: parent.*"
+# child will not return a config parsing error to the parent
+rc_pre() {
+ ${daemon} -n ${daemon_flags}
+}
rc_cmd $1
diff -qur -x m etc58/rc.d/ripd etc59/rc.d/ripd
--- etc58/rc.d/ripd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/ripd Fri Feb 26 09:14:29 2016
@@ -1,11 +1,9 @@
#!/bin/sh
#
-# $OpenBSD: ripd,v 1.1 2011/07/06 18:55:36 robert Exp $
+# $OpenBSD: ripd,v 1.2 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/ripd"
. /etc/rc.d/rc.subr
-
-pexp="ripd: parent.*"
rc_cmd $1
diff -qur -x m etc58/rc.d/smtpd etc59/rc.d/smtpd
--- etc58/rc.d/smtpd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/smtpd Fri Feb 26 09:14:29 2016
@@ -1,12 +1,10 @@
#!/bin/sh
#
-# $OpenBSD: smtpd,v 1.4 2012/10/26 06:51:59 ajacoutot Exp $
+# $OpenBSD: smtpd,v 1.6 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/smtpd"
. /etc/rc.d/rc.subr
-
-pexp="smtpd: \[priv\]"
rc_reload=NO
diff -qur -x m etc58/rc.d/snmpd etc59/rc.d/snmpd
--- etc58/rc.d/snmpd Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/snmpd Fri Feb 26 09:14:29 2016
@@ -1,12 +1,11 @@
#!/bin/sh
#
-# $OpenBSD: snmpd,v 1.2 2014/08/25 12:08:55 halex Exp $
+# $OpenBSD: snmpd,v 1.3 2016/02/02 17:51:11 sthen Exp $
daemon="/usr/sbin/snmpd"
. /etc/rc.d/rc.subr
-pexp="snmpd: parent.*"
rc_reload=NO
rc_cmd $1
Only in etc59/rc.d: vmd
diff -qur -x m etc58/rc.d/ypbind etc59/rc.d/ypbind
--- etc58/rc.d/ypbind Sun Aug 16 10:25:09 2015
+++ etc59/rc.d/ypbind Fri Feb 26 09:14:29 2016
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# $OpenBSD: ypbind,v 1.4 2011/10/07 05:54:48 ajacoutot Exp $
+# $OpenBSD: ypbind,v 1.5 2015/10/18 03:51:11 deraadt Exp $
daemon="/usr/sbin/ypbind"
@@ -11,6 +11,10 @@
rc_pre() {
[ X"`domainname`" != X"" ]
+}
+
+rc_post() {
+ rm -f /var/run/ypbind.lock
}
rc_cmd $1
Only in etc58/rc.d: yppasswdd
Only in etc58/signify: openbsd-55-base.pub
Only in etc58/signify: openbsd-55-fw.pub
Only in etc58/signify: openbsd-55-pkg.pub
Only in etc58/signify: openbsd-56-base.pub
Only in etc58/signify: openbsd-56-fw.pub
Only in etc58/signify: openbsd-56-pkg.pub
Only in etc58/signify: openbsd-57-base.pub
Only in etc58/signify: openbsd-57-fw.pub
Only in etc58/signify: openbsd-57-pkg.pub
Only in etc59/signify: openbsd-60-base.pub
Only in etc59/signify: openbsd-60-fw.pub
Only in etc59/signify: openbsd-60-pkg.pub
Only in etc58/ssl: cert.pem
diff -qur -x m etc58/weekly etc59/weekly
--- etc58/weekly Sun Aug 16 10:25:09 2015
+++ etc59/weekly Fri Feb 26 09:14:28 2016
@@ -1,5 +1,5 @@
#
-# $OpenBSD: weekly,v 1.26 2014/04/18 10:00:48 schwarze Exp $
+# $OpenBSD: weekly,v 1.27 2015/08/14 03:02:07 rzalamena Exp $
#
# For local additions, create the file /etc/weekly.local.
# To get section headers, use the function next_part in weekly.local.
@@ -48,7 +48,7 @@
if TMP=`mktemp /var/db/locate.database.XXXXXXXXXX`; then
trap 'rm -f $TMP; exit 1' 0 1 15
UPDATEDB="/usr/libexec/locate.updatedb"
- echo "${UPDATEDB} --fcodes=- --tmpdir=${TMPDIR:-/var/tmp}" | \
+ echo "${UPDATEDB} --fcodes=- --tmpdir=${TMPDIR:-/tmp}" | \
nice -5 su -m nobody 2>/dev/null 1>$TMP
if [ -s "$TMP" ]; then
chmod 444 $TMP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment