i.minorperm_i386 revision 7eea693d6b672899726e75993fddc4e95b52647f
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# CDDL HEADER START
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# The contents of this file are subject to the terms of the
8163c8f6e2a9a8e4aba318d874c54a3155d57e21jerenkrantz# Common Development and Distribution License (the "License").
0bd0176ce9f4321eeb506aa372d0bcc84befbf4cstriker# You may not use this file except in compliance with the License.
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe# See the License for the specific language governing permissions
d89c116f82699294ca744125723651c554bc5925wrowe# and limitations under the License.
8721697e2aece27b0e738519329f7976c72b27bfjerenkrantz# When distributing Covered Code, include this CDDL HEADER in each
c25203fdca093d4504c51b4cd974ff60d5aa4fb1wrowe# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz# If applicable, add the following below this CDDL HEADER, with the
91cacb801f6c0215b38322f6d2fc58cbfedfecfbjerenkrantz# fields enclosed by brackets "[]" replaced with your own identifying
df14f0d3a5191cdd7c4bb5b03acd135d43a6f51brbb# information: Portions Copyright [yyyy] [name of copyright owner]
ab71b233b3a36489e44a7b061c48293be0b17788jwoolley# CDDL HEADER END
9180a5933673ffb1af633c255ceee029340f3b1erbb# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
bcb6e1be6041dfeb549c8ea8d37f97ad4e90a0c3rbb# Use is subject to license terms.
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb# NOTE: When a change is made to the source file for
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb# /etc/minor_perm, a corresponding change must be made to
b876b7bcf0ce3d232da723246d709e8dbbfe8762rbb# this class-action script.
35330e0d79ceb8027223bbb8330a381b1f989d6etrawick# - If an existing entry in minor_perm is having its
6f6f4a4bca281779d196acbdd5c017bb90858305trawick# attributes e.g. permissions, ownership changed,
8dd4618c4709236b4ea297d7250d282e463ce2d8rbb# add it to the list produced by make_chattr_list below.
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbb# - If an existing entry must be deleted, add it to
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# the list produced by make_delete_list below.
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# - If a new entry must be added to the file, add it to the
af4c982a7cf4515f124935f99a329744035fc699slive# list produced by make_add_list.
af4c982a7cf4515f124935f99a329744035fc699slive# - If a new entry is being added to minor_perm, but there
af4c982a7cf4515f124935f99a329744035fc699slive# may already be devices of that name on the system (e.g.
af4c982a7cf4515f124935f99a329744035fc699slive# we used the system default permissions in a previous release),
af4c982a7cf4515f124935f99a329744035fc699slive# and those old devices now need to have their attributes changed,
af4c982a7cf4515f124935f99a329744035fc699slive# add it to the make_chattr_list AND the make_add_list lists
363e9e52888cd7d75325b1ab90ac928f32d5af44jwoolley# If an entry in /etc/minor_perm needs to have its attributes
363e9e52888cd7d75325b1ab90ac928f32d5af44jwoolley# changed, identify the entry in the list copied to /etc/chattr.$$
363e9e52888cd7d75325b1ab90ac928f32d5af44jwoolley# by this function. The fields are:
45b0e1c775c1cfed6473c9e5304179ccb9609f53stoddard# <device>:<minor> <old_attrs> <new_attrs> <optional list of logical
dbec4658981e4f9127e8676457c28d42932be7cdtrawick# devices whose attributes
5221a7188270ea10c4f0f8ad0a4367638894f9fbbrianp# will need to be changed>
5221a7188270ea10c4f0f8ad0a4367638894f9fbbrianp# where an <attribute list> := <perm> <user> <group>
d415c14da6d37345738e160f785dbe8458095068jwoolley# NOTE: this list should also contain entries for nodes that previously
d85144f90d2fb3cc27f12640011ef77ca7946dbdjwoolley# were not in /etc/minor_perm (which means the default mode of 600,
56b2562cb4041a21bc313fde3204beabdb758800jwoolleycat > /tmp/chattr.$$ << EOF
d415c14da6d37345738e160f785dbe8458095068jwoolleyvol:volctl 0600 root sys 0666 root sys /dev/volctl
d415c14da6d37345738e160f785dbe8458095068jwoolleyclone:llc1 0600 root sys 0666 root sys /dev/llc1
d415c14da6d37345738e160f785dbe8458095068jwoolleylog:conslog 0620 root sys 0666 root sys /dev/conslog
d415c14da6d37345738e160f785dbe8458095068jwoolleysy:tty 0666 root sys 0666 root tty /dev/tty
d415c14da6d37345738e160f785dbe8458095068jwoolleyicmp:icmp 0600 root sys 0666 root sys /dev/rawip
d415c14da6d37345738e160f785dbe8458095068jwoolleyicmp6:icmp6 0600 root sys 0666 root sys /dev/rawip6
d415c14da6d37345738e160f785dbe8458095068jwoolleyip:ip 0660 root sys 0666 root sys /dev/ip
9fc8bca7967297a4e83f0aff24760e48d7ae8f19brianpip6:ip6 0660 root sys 0666 root sys /dev/ip6
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantzrts:rts 0660 root sys 0666 root sys /dev/rts
d415c14da6d37345738e160f785dbe8458095068jwoolleykeysock:keysock 0600 root sys 0666 root sys /dev/keysock
d415c14da6d37345738e160f785dbe8458095068jwoolleyipsecah:ipsecah 0600 root sys 0666 root sys /dev/ipsecah
d415c14da6d37345738e160f785dbe8458095068jwoolleyipsecesp:ipsecesp 0600 root sys 0666 root sys /dev/ipsecesp
d415c14da6d37345738e160f785dbe8458095068jwoolleyspdsock:spdsock 0600 root sys 0666 root sys /dev/spdsock
d415c14da6d37345738e160f785dbe8458095068jwoolleysad:admin 0600 root sys 0666 root sys /dev/sad/admin
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantzfssnap:ctl 0600 root sys 0666 root sys /dev/fssnapctl
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantzfssnap:* 0600 root sys 0640 root sys /dev/fssnap/*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyclone:dnet 0600 root sys 0666 root sys /dev/dnet
56b2562cb4041a21bc313fde3204beabdb758800jwoolleydnet:* 0600 root sys 0666 root sys /dev/dnet*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyclone:elxl 0600 root sys 0666 root sys /dev/elxl
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyelxl:* 0600 root sys 0666 root sys /dev/elxl*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyclone:iprb 0600 root sys 0666 root sys /dev/iprb
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyiprb:* 0600 root sys 0666 root sys /dev/iprb*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyclone:pcelx 0600 root sys 0666 root sys /dev/pcelx
dee038ed61c64813e50d1ed34334fe2d5ab815fcjerenkrantzpcelx:* 0600 root sys 0666 root sys /dev/pcelx*
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:spwr 0600 root sys 0666 root sys /dev/spwr
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzspwr:* 0600 root sys 0666 root sys /dev/spwr*
f17588e04d2412bf1345783ed1d173322d728d6ftrawickcpc:* 0600 root sys 0666 root sys /devices/pseudo/cpc*
f17588e04d2412bf1345783ed1d173322d728d6ftrawickipf:* 0600 root sys 0666 root sys /dev/ipf
f17588e04d2412bf1345783ed1d173322d728d6ftrawickpfil:* 0600 root sys 0666 root sys /dev/pfil
f17588e04d2412bf1345783ed1d173322d728d6ftrawickscsi_vhci:devctl 0600 root sys 0666 root sys /devices/scsi_vhci:devctl
f17588e04d2412bf1345783ed1d173322d728d6ftrawickfbt:fbt 0600 root sys 0644 root sys /dev/dtrace/provider/fbt
f17588e04d2412bf1345783ed1d173322d728d6ftrawicklockstat:* 0600 root sys 0644 root sys /dev/dtrace/provider/lockstat
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweprofile:profile 0600 root sys 0644 root sys /dev/dtrace/provider/profile
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzsdt:sdt 0600 root sys 0644 root sys /dev/dtrace/provider/sdt
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzsystrace:systrace 0600 root sys 0644 root sys /dev/dtrace/provider/systrace
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:bge 0600 root sys 0666 root sys /dev/bge
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:igb 0600 root sys 0666 root sys /dev/igb
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ixgbe 0600 root sys 0666 root sys /dev/ixgbe
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:rge 0600 root sys 0666 root sys /dev/rge
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:xge 0600 root sys 0666 root sys /dev/xge
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:nge 0600 root sys 0666 root sys /dev/nge
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:chxge 0600 root sys 0666 root sys /dev/chxge
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:pcn 0600 root sys 0666 root sys /dev/pcn
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:rtls 0600 root sys 0666 root sys /dev/rtls
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ath 0600 root sys 0666 root sys /dev/ath
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ipw 0600 root sys 0666 root sys /dev/ipw
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:iwh 0600 root sys 0666 root sys /dev/iwh
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:iwi 0600 root sys 0666 root sys /dev/iwi
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:iwk 0600 root sys 0666 root sys /dev/iwk
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweclone:pcwl 0600 root sys 0666 root sys /dev/pcwl
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:pcan 0600 root sys 0666 root sys /dev/pcan
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ral 0600 root sys 0666 root sys /dev/ral
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:rtw 0600 root sys 0666 root sys /dev/rtw
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzclone:ural 0600 root sys 0666 root sys /dev/ural
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddardclone:wpi 0600 root sys 0666 root sys /dev/wpi
1af5c0e25a649bb298e25ddfa5418fa18bdcb107aaronclone:afe 0600 root sys 0666 root sys /dev/afe
82455c2e3b6991846fbcbf0c9e41f57dbc681217brianpclone:dmfe 0600 root sys 0666 root sys /dev/dmfe
82455c2e3b6991846fbcbf0c9e41f57dbc681217brianpclone:mxfe 0600 root sys 0666 root sys /dev/mxfe
f4cb04eb78da02a38fcdd87489dc7b660107d55fjerenkrantzbge:* 0600 root sys 0666 root sys /dev/bge*
1b3f48fd6b1ccb8745f908e40156c5a85ca3c347jerenkrantzigb:* 0600 root sys 0666 root sys /dev/igb*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpixgbe:* 0600 root sys 0666 root sys /dev/ixgbe*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyrge:* 0600 root sys 0666 root sys /dev/rge*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyxge:* 0600 root sys 0666 root sys /dev/xge*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleynge:* 0600 root sys 0666 root sys /dev/nge*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleye1000g:* 0666 root root 0666 root sys /dev/e1000g*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleychxge:* 0600 root sys 0666 root sys /dev/chxge*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleypcn:* 0600 root sys 0666 root sys /dev/pcn*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyrtls:* 0600 root sys 0666 root sys /dev/rtls*
56b2562cb4041a21bc313fde3204beabdb758800jwoolleyath:* 0600 root sys 0666 root sys /dev/ath*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpipw:* 0600 root sys 0666 root sys /dev/ipw*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpiwh:* 0600 root sys 0666 root sys /dev/iwh*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpiwi:* 0600 root sys 0666 root sys /dev/iwi*
b05930e6008f69bd323abe0c10f81f40ffd27983brianpiwk:* 0600 root sys 0666 root sys /dev/iwk*
b05930e6008f69bd323abe0c10f81f40ffd27983brianppcwl:* 0600 root sys 0666 root sys /dev/pcwl*
15304e476fb32988bf988864ddacc5375b9a6080stoddardpcan:* 0600 root sys 0666 root sys /dev/pcan*
15304e476fb32988bf988864ddacc5375b9a6080stoddardral:* 0600 root sys 0666 root sys /dev/ral*
8c8fbb8546af54582539898be704411a60058d85trawickrtw:* 0600 root sys 0666 root sys /dev/rtw*
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolleyural:* 0600 root sys 0666 root sys /dev/ural*
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolleywpi:* 0600 root sys 0666 root sys /dev/wpi*
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolleyafe:* 0600 root sys 0666 root sys /dev/afe*
4c7dab038d90d7feb67ef8ddbfacc77be8c9dbf0jwoolleydmfe:* 0600 root sys 0666 root sys /dev/dmfe*
bb2a72a6e2327ae4f177c9d26e9d433033cfc27eaaronmxfe:* 0600 root sys 0666 root sys /dev/mxfe*
8c8fbb8546af54582539898be704411a60058d85trawickballoon:* 0600 root sys 0444 root sys /dev/xen/balloon
8c8fbb8546af54582539898be704411a60058d85trawickdomcaps:* 0600 root sys 0444 root sys /dev/xen/domcaps
8c8fbb8546af54582539898be704411a60058d85trawickevtchn:* 0600 root sys 0666 root sys /dev/xen/evtchn
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddardprivcmd:* 0600 root sys 0666 root sys /dev/xen/privcmd
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddardxenbus:* 0600 root sys 0666 root sys /dev/xen/xenbus
f9b8e29cfca92cf0a996e8ab17fa1a1f447cecc7stoddardxpvtap:* 0600 root sys 0666 root sys /devices/xpvd/xpvtap*
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe# If an entry in /etc/minor_perm needs to be deleted, identify
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe# the entry in the list copied to /etc/delete.$$ by this function.
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe# The fields are:
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowe# <device>:<minor> <optional list of logical devices to be deleted>
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowecat > /tmp/delete.$$ << EOF
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewroweconsfb:consfb
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:ipsecah
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:ipsecesp
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:keysock
db2d668e6233d8949b35ee7f9f42f444758f9ce9rbbclone:sbpro
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaronprofile:profile
1ea5221b240a8b41a07c6fb04aab5a73adcddabfaaronasy:[a-z],cu
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# If an entry needs to be added to /etc/minor_perm, add the first
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# field of the entry to the list created by this function. The
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# remainder of the entry will be extracted from the /etc/minor_perm
5d12baef135b5d3cb94745e007a1575398469724jerenkrantz# in the package being installed, so it is not necessary to supply
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzcat > /tmp/add.$$ << EOF
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzdevinfo:devinfo
b865daaa4ef731a7066ee6d97e2aae36c7743939jerenkrantzopeneepr:openprom
364dfd4527e6ce37b828a42e2c0bbdf9ba19a9b8gregamespool:poolctl
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronsysmsg:msglog
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronsysmsg:sysmsg
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronipsecah:ipsecah
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronipsecesp:ipsecesp
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronkeysock:keysock
0bcb1fe39dfaacf9745b6633f5cc9ebc8e2596caaaronspdsock:spdsock
33f5961d34a8b5390cebad0543b3ebe67830e5d7jerenkrantzdevinfo:devinfo,ro
54e1babd5a5a56c576eeeace54110150769cc916coarclone:pcelx
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzcryptoadm:cryptoadm
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzcrypto:crypto
949aa7bba7f804faa8e6b08cad42a98fc0255d85jerenkrantzfasttrap:fasttrap
f126ee03179eb54308118f1ec3de5a7b461685d8aaronclone:e1000g
b84f66c93f820824b1d5455181f55598b766319cwrowesmbios:smbios
48c0c81cd6fabac9d3386406d97633780365b839coarprofile:profile
2fb49a1d25f38421a68d31b4cbb5d9293fdeafbewrowesystrace:systrace
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowelx_ptm:lx_ptmajor
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowelx_systrace:*
1e585ba09ea32272e63c4c39c35491e975d21d98stoddard# Internal routine to create a sed script which can be used to
0bff2f28ef945280c17099c142126178a78e1e54manoj# escape all shell globbing metacharacters in a path.
ff849e4163ed879288f0df15f78b6c9d278ec804fanfcat > /tmp/esc.sed.$$ << EOF
ff849e4163ed879288f0df15f78b6c9d278ec804fanfs/\*/\\\\*/g
447c6ce3ff08073c44f6785d5256271fcb877512wrowes/\?/\\\\?/g
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoars/\[/\\\\[/g
e0427bf8e52a8fb920cb8b6adb5cdb3b6535b7fecoars/\]/\\\\]/g
6758b07b4b79f898b0f56375016cea7da0bfb495wrowe# Internal routine to convert an entry in a /tmp/chwhatever.$$ file to
6758b07b4b79f898b0f56375016cea7da0bfb495wrowe# an appropriately escaped pattern which can be used to grep into minor_perm.
48c0c81cd6fabac9d3386406d97633780365b839coar # the first argument is the 'key' field from the change file.
48c0c81cd6fabac9d3386406d97633780365b839coar # entries can contain shell globbing characters to match
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein # the remaining optional arguments are tokens separated by white-space
93c5cba06b623ebe8e4372e886eece12d9a80c3egstein if [ $# = 0 ] ; then
2f728b2e8555fee1b7cc11e886488692f2575fbddougm if [ ! -f $dest ] ; then
60d567a0c2aae815ee6fc20c0d65032bea52c92cwrowe # Process the list of devices whose attributes are to be
27757f6699a924d4b493a1b6cceb27df27a43287dreid # changed. Find those that actually need to be
27757f6699a924d4b493a1b6cceb27df27a43287dreid # applied to the file. For each change that needs
27757f6699a924d4b493a1b6cceb27df27a43287dreid # to be applied, add an entry for it to the sed
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # script that will eventually be applied to the
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # currently-installed /etc/minor_perm file. Also,
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # add an entry to the /tmp/chdevs.$$ file, which
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # contains the list of logical names of devices
21e01f13f717faeca3e498d7d9c9b4d3af98ae27trawick # whose permissions need to be changed.
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # First determine whether the device entry
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # is already in the file, but with the old
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # permissions. If so, the entry needs to be
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # modified and the devices in the chdevs list
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # need to have their permissions and ownerships
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # Now determine whether the device entry is
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # in the file at all. If not, it is a new
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # entry, but there may already be devices
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # on the system whose permissions need to
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # be changed.
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe if [ $? != 0 ] ; then
28c4fe67d75f8f26504d75b7aa8dc5d868032888wrowe # sort the "change attributes" list
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # Process the list of devices to be deleted.
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # Find those that actually need to be deleted
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # from the file. For each entry to be deleted,
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # add an entry for it to the sed script that will
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # eventually be applied to the currently-installed
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # /etc/minor_perm file. Also, add an entry to the
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # /tmp/deldevs.$$ file, which contains the list of
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # logical names of devices to be deleted.
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # Apply the sed script possibly built above to the
ddd44b06b04507cae083c52451e28f54f0bdb5afstoddard # currently-installed /etc/minor_perm file.
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # For all entries in minor_perm whose attributes had
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # to be corrected, correct the relevant attributes of the
48c0c81cd6fabac9d3386406d97633780365b839coar # already-existing devices that correspond to those
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # entries.
64ad864fa0f4493eebb181e393b40a8a90beccb9coar if [ -s /tmp/chdevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # Note that we take pains -only- to change
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # the permission/ownership of devices that
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # have kept their original permissions.
48c0c81cd6fabac9d3386406d97633780365b839coar # For all entries in minor_perm that were deleted,
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # remove the /dev entries that point to device nodes
64ad864fa0f4493eebb181e393b40a8a90beccb9coar # that correspond to those entries.
64ad864fa0f4493eebb181e393b40a8a90beccb9coar if [ -s /tmp/deldevs.$$ -a "$PKG_INSTALL_ROOT" != "" -a \
64ad864fa0f4493eebb181e393b40a8a90beccb9coar if [ $? != 0 ] ; then