This file is indexed.

/usr/sbin/upgrade-windowmaker-defaults is in wmaker-common 0.95.7-4.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#! /bin/sh
# (c) 1998 Marcelo Magallon <mmagallo@debian.org>
# this script is distributed under the terms and conditions of the GPL.
#
# TODO:
#
# * Fix that ugly hack with fix*
#   Is there something in the shell like Perl's hashes? It could be nice to
#   do something like "foreach $var (keys %fixes)" to associate fixes with
#   file names so I don't have to track things all over the place
#
# * Fix also the code that iterates over user directories to include system
#   directories in one run  
#
# upgrade-windowmaker-defaults (0.3)
# 
# * Handles upgrade to Window Maker 0.19.0
#   Logo.Clip -> Tile.Clip (crashing)
#
# upgrade-windowmaker-defaults (0.2)
# 
# * Handles keyname changes between 0.16.1 and 0.17.2
#
# Tue Jul 21 08:05:00 CST 1998
#
# upgrade-windowmaker-defaults (0.1)
# 
# * Initial release
# * Handles WindowPlaceOrigin syntax change
# * Handles name change Fiend -> Clip
#
# Sat Jun 13 16:18:36 CST 1998

# Fixes (these are not-optional changes)
# this one changes WindowPlaceOrigin = "..." to WindowPlaceOrigin = (...)
fix1='s/\(.*WindowPlaceOrigin = \)"\(.*\)";/\1(\2);/'
# and this one substitutes Fiend with Clip
fix2='s/\(.*\)Fiend\(.*\)=/\1Clip\2=/'
# this one applies to WMState
fix3='s/\( *\)Fiend\( *\)=/\1Clip\2=/'
fix4='s/\(.*\)Logo\.\(WMFiend\|WMClip\)\(.*\)=/\1Tile.WMClip\3=/'
# this one applies to Window Maker
fix5='s/\(.*\)NoSound\(.*\)=/\1DisableSound\2=/'
fix6='s/\(.*\)NoAutoWarp\(.*\)=/\1DontLinkWorspaces\2=/'
# this one is for WMWindowAttributes

# try to screen system accounts in the /etc/passwd file. If somebody
# has a better method for doing this, I'm open to suggestions. Please
# note that Debian Policy states accounts 0-99 are reserved for the
# Project, and 100 onwards *could* be used by the local sysadmin, but
# the default is 1000 and up
users='^[[:alnum:]]*:[[:alnum:]]*:[[:digit:]]\{4,\}:'

ask_n ()
{
  echo -n $*'? [yN] '
  read yn
  test -n "$yn" || yn=n
  case "$yn" in
    [yY]*)
      return 1
    ;;
    *)
      return 0
    ;;
  esac
}

apply_fix ()
{
  file_to_fix=$1; shift
  if [ -e $file_to_fix ] ; then
    echo -n "Fixing $file_to_fix... "
    while [ $# -gt 0 ] ; do
      sed -e "$1" $file_to_fix > $tempfile
      cat $tempfile > $file_to_fix
      shift
    done
    echo done.
  fi
}

ask_permission ()
{
  cat <<EOF
I can try to fix certain configuration parameters that have changed
between previous versions of Window Maker and this one, namely:

 * WindowPlaceOrigin syntax change from "..." to (...)
 * Name change of Fiend to Clip
 * WMWindowAttributes: Logo.Clip -> Tile.Clip (crashing)

NOT fixing this could prevent Window Maker from starting. Please read
/usr/doc/wmaker/NEWS.gz and /usr/doc/wmaker/changelog.gz

I will fix *both* the system defaults and each user's files.

EOF
  if ! ask_n "Do you want to proceed with the changes" ; then
    return 0
  else
    return 1
  fi
}

set -e

gs_dir=GNUstep
[ $GNUSTEP_USER_ROOT ] && gs_dir=$GNUSTEP_USER_ROOT 
gs_defaults=$gs_dir/Defaults
gs_system_defaults=/etc/GNUstep/Defaults

if [ "$1" = "--non-interactive" ] || ask_permission ; then
  tempfile=`tempfile`

  # fix users' files
  for dir in `cut -d : -f 6 /etc/passwd | sort -u` ; do
    apply_fix $dir/$gs_defaults/WindowMaker "$fix1" "$fix2" "$fix5" "$fix6"
    apply_fix $dir/$gs_defaults/WMState "$fix3"
    apply_fix $dir/$gs_defaults/WMWindowAttributes "$fix4"
  done

  # fix system files
  apply_fix $gs_system_defaults/WindowMaker "$fix1" "$fix2" "$fix5" "$fix6"
  apply_fix $gs_system_defaults/WMState "$fix3"
  apply_fix $gs_system_defaults/WMWindowAttributes "$fix4"

  rm $tempfile

cat <<EOF

Done fixing things. If you want to run this script again you can do so by
typing:

$ $0
EOF

else
cat <<EOF

Ok, leaving things as they are now... you can run this script again using:

$ $0
EOF
fi

cat <<EOF

Press [ENTER] to continue...
EOF

read dummy
exit 0