1 #!/bin/sh 2 3 PROGNAME=`basename $0` 4 PROG_VERSION=0.2 5 CREATE_COPYRIGHT=0 6 TYPE_GNOME=1 7 TYPE_TJDS=2 8 TYPE_DESKTOP_OTHER=3 9 TYPE=$TYPE_GNOME 10 AVAILABLE_TYPES="gnome tjds desktop-other" 11 MERGE_BASE_COPYRIGHT=0 12 LANG=C 13 14 export LANG 15 16 init () 17 { 18 while [ $# -gt 0 ] 19 do 20 case "$1" in 21 -c|--create) 22 CREATE_COPYRIGHT=1;; 23 -h|--help) 24 usage 25 exit 0;; 26 -m|--merge) 27 MERGE_BASE_COPYRIGHT=1;; 28 -t|--type) 29 shift 30 case "$1" in 31 desktop-other) 32 TYPE=$TYPE_DESKTOP_OTHER;; 33 gnome|GNOME) 34 TYPE=$TYPE_GNOME;; 35 tjds|TJDS) 36 TYPE=$TYPE_TJDS;; 37 *) 38 echo "Unknown type $1" 1>&2 39 echo "Please use the either type $AVAILABLE_TYPES" 1>&2 40 exit 1;; 41 esac 42 ;; 43 *) 44 echo "$PROGNAME: processing error: $1" 1>&2 45 exit 1;; 46 esac 47 shift 48 done 49 } 50 51 usage () 52 { 53 printf "This script makes L10N copyright files from " 54 printf "/usr/share/locale/LANG/LC_MESSAGES/COPYING.foo .\n" 55 printf "\n" 56 printf "usage: $PROGNAME Version $PROG_VERSION -c|-m [OPTIONS...]\n" 57 printf " -c, --create Create l10n copyright files.\n" 58 printf " -m, --merge Merge l10n copyright files with base ones.\n" 59 printf " This option is used after -c is run.\n" 60 printf " -h, --help Show this message.\n" 61 printf "\n" 62 printf "Options:\n" 63 printf " -t, --type TYPE $AVAILABLE_TYPES is available for TYPE.\n" 64 printf " the default is gnome.\n" 65 printf "\n" 66 printf "NOTE: This overrides the copyright files in $HOME/packages/spec-files/copyright/*.\n" 67 } 68 69 _get_group_copyright () 70 { 71 rm -f $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 72 echo "Creating $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright ..." 73 cat $COPY_ORG_DIR/${COPY_ORG}.copyright \ 74 >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 75 76 for LING in $LING_MESSAGE 77 do 78 echo "" >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 79 echo "-------------------------------------------------------------" \ 80 >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 81 echo "" >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 82 83 COPY_MESSAGES_DIR=/usr/share/locale/$LING/LC_MESSAGES 84 gzcat $COPY_MESSAGES_DIR/$COPY_MESSAGES \ 85 >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 86 done 87 88 rm -f $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 89 echo "Creating $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright ..." 90 cat $COPY_ORG_DIR/${COPY_ORG}.copyright \ 91 >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 92 93 for LING in $LING_DOC 94 do 95 echo "" >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 96 echo "-------------------------------------------------------------" \ 97 >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 98 echo "" >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 99 100 COPY_MESSAGES_DIR=/usr/share/gnome/help/copyright/$LING 101 gzcat $COPY_MESSAGES_DIR/$COPY_MESSAGES \ 102 >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 103 done 104 } 105 106 _get_15lang_copyright () 107 { 108 for LING in cs de es fr hi hu it ja ko pl pt_BR ru sv zh_CN zh_HK zh_TW 109 do 110 TAG=`echo $LING | sed -e "s/_//"` 111 112 rm -f $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 113 echo "Creating $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright ..." 114 cat $COPY_ORG_DIR/${COPY_ORG}.copyright \ 115 >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 116 echo "" >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 117 echo "-------------------------------------------------------------" \ 118 >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 119 echo "" >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 120 COPY_MESSAGES_DIR=/usr/share/locale/$LING/LC_MESSAGES 121 gzcat $COPY_MESSAGES_DIR/$COPY_MESSAGES \ 122 >> $COPY_ORG_DIR/${COPY_ORG}-m-$TAG.copyright 123 124 rm -f $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 125 echo "Creating $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright ..." 126 cat $COPY_ORG_DIR/${COPY_ORG}.copyright \ 127 >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 128 echo "" >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 129 echo "-------------------------------------------------------------" \ 130 >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 131 echo "" >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 132 COPY_MESSAGES_DIR=/usr/share/gnome/help/copyright/$LING 133 gzcat $COPY_MESSAGES_DIR/$COPY_MESSAGES \ 134 >> $COPY_ORG_DIR/${COPY_ORG}-d-$TAG.copyright 135 done 136 } 137 138 create_GNOME_copyright () 139 { 140 COPY_ORG=SUNWgnome-l10nmessages 141 COPY_ORG_DIR=$HOME/packages/spec-files/copyright 142 COPY_MESSAGES=COPYING.gnome.gz 143 _get_15lang_copyright 144 145 TAG=rtl 146 LING_MESSAGE="ar az az_IR fa he ur ur_PK yi" 147 LING_DOC="ar" 148 _get_group_copyright 149 150 TAG=extra 151 LING_MESSAGE="bg ca ca@valencia da el et fi hr is lt lv mk mt nb nl nn no pt pt_PT ro sk sl sq sr sr@Latn sr@ije sr@latin ta te th tr" 152 LING_DOC="bg ca da el fi mk nl ru sr" 153 _get_group_copyright 154 155 TAG=noinst 156 LING_MESSAGE="aa af am ang as be be@latin bn bn_IN br bs byn cy dv dz eo eu fo fur ga gez gl gn gu gv haw hy ia id io iu ka kk kl km kn kok ku kw ky li lo mai mg mi ml mn mr ms my_MM nds@NFE ne nso oc om or pa ps rw sa si sid so sw syr tg ti tig tk tl tt ug uk uz uz@cyrillic ve vi wa wal wo xh yo zu" 157 LING_DOC="eu oc pa uk vi" 158 _get_group_copyright 159 } 160 161 create_desktop_other_copyright () 162 { 163 COPY_ORG=SUNWdesktop-other-l10n 164 COPY_ORG_DIR=$HOME/packages/spec-files-other/copyright 165 COPY_MESSAGES=COPYING.desktop-other.gz 166 _get_15lang_copyright 167 168 TAG=rtl 169 LING_MESSAGE="ar he" 170 LING_DOC="ar" 171 _get_group_copyright 172 173 TAG=extra 174 LING_MESSAGE="bg ca da el et fi hr lt mk nb nl pt ro sk sl sr ta tr wo" 175 LING_DOC="bg ca da el fi mk nl ru sr" 176 _get_group_copyright 177 178 TAG=noinst 179 LING_MESSAGE="af bn bs cy gl gu id ka km lo mr pa uk vi xh zu" 180 LING_DOC="eu oc pa uk vi" 181 _get_group_copyright 182 } 183 184 _merge_base_copyright () 185 { 186 BASE_COPYRIGHTS_WZ_L10N= 187 188 for COPYRIGHT in $BASE_ALL_COPYRIGHTS 189 do 190 SPEC=`basename $COPYRIGHT .copyright`.spec 191 if [ ! -f $SPEC_DIR/$SPEC ] ; then 192 continue; 193 fi 194 HAS_L10N_PKG=`grep "%package l10n" $SPEC_DIR/$SPEC` 195 if [ x"$HAS_L10N_PKG" = x ] ; then 196 continue; 197 fi 198 BASE_COPYRIGHTS_WZ_L10N="$BASE_COPYRIGHTS_WZ_L10N $COPYRIGHT" 199 done 200 201 if [ "$COPY_ORG" = "SUNWtgnome-l10n-ui" ] ; then 202 TAGS="NONE" 203 else 204 TAGS="cs de es fr hi hu it ja ko pl ptBR ru sv zhCN zhHK zhTW rtl extra noinst" 205 fi 206 207 for TAG in $TAGS 208 do 209 if [ "$TAG" = "NONE" ] ; then 210 L10N_COPYRIGHT_FILE_GROUP=`ls $COPY_ORG_DIR/${COPY_ORG}.copyright` 211 else 212 L10N_COPYRIGHT_FILE_GROUP=`ls $COPY_ORG_DIR/${COPY_ORG}*-${TAG}.copyright` 213 fi 214 215 if [ x"$L10N_COPYRIGHT_FILE_GROUP" = x ] ; then 216 continue 217 fi 218 219 for L10N_COPYRIGHT_FILE in $L10N_COPYRIGHT_FILE_GROUP 220 do 221 echo "Merging $L10N_COPYRIGHT_FILE ..." 222 for COPYRIGHT in $BASE_COPYRIGHTS_WZ_L10N 223 do 224 PKG=`basename $COPYRIGHT .copyright` 225 226 echo "" >> $L10N_COPYRIGHT_FILE 227 echo "-------------------------------------------------------------" \ 228 >> $L10N_COPYRIGHT_FILE 229 echo "Copyright for $PKG" >> $L10N_COPYRIGHT_FILE 230 echo "" >> $L10N_COPYRIGHT_FILE 231 cat $COPY_ORG_DIR/$COPYRIGHT >> $L10N_COPYRIGHT_FILE 232 done 233 done 234 done 235 } 236 237 merge_GNOME_base_copyright () 238 { 239 COPY_ORG=SUNWgnome-l10nmessages 240 COPY_ORG_DIR=$HOME/packages/spec-files/copyright 241 SPEC_DIR=`dirname $COPY_ORG_DIR` 242 BASE_ALL_COPYRIGHTS=`(cd $COPY_ORG_DIR; ls *.copyright |\ 243 grep -v "SUNWacroread" |\ 244 grep -v "SUNWfirefox-" |\ 245 grep -v "SUNWmozilla-" |\ 246 grep -v "SUNWmyspell-dictionary" |\ 247 grep -v "SUNWtgnome-" |\ 248 grep -v "SUNWthunderbird-" |\ 249 grep -v "SUNWrealplayer" |\ 250 grep -v "$COPY_ORG" )` 251 252 _merge_base_copyright 253 } 254 255 merge_TJDS_base_copyright () 256 { 257 COPY_ORG=SUNWtgnome-l10n-ui 258 COPY_ORG_DIR=$HOME/packages/spec-files/copyright 259 SPEC_DIR=`dirname $COPY_ORG_DIR` 260 BASE_ALL_COPYRIGHTS=`(cd $COPY_ORG_DIR; ls SUNWtgnome-*.copyright |\ 261 grep -v "$COPY_ORG" )` 262 263 _merge_base_copyright 264 } 265 266 merge_desktop_other_base_copyright () 267 { 268 COPY_ORG=SUNWdesktop-other-l10n 269 COPY_ORG_DIR=$HOME/packages/spec-files-other/copyright 270 SPEC_DIR=$HOME/packages/spec-files-other/core 271 BASE_ALL_COPYRIGHTS=`(cd $COPY_ORG_DIR; ls *.copyright |\ 272 grep -v "$COPY_ORG" )` 273 274 _merge_base_copyright 275 } 276 277 main () 278 { 279 init $@ 280 281 if [ $TYPE -eq $TYPE_DESKTOP_OTHER ] ; then 282 if [ ! -d $HOME/packages/spec-files-other ] ; then 283 echo "spec-files build tree is not dir: $HOME/packages/spec-files-other" 1>&2 284 exit 1 285 fi 286 else 287 if [ ! -d $HOME/packages/spec-files ] ; then 288 echo "spec-files build tree is not dir: $HOME/packages/spec-files" 1>&2 289 exit 1 290 fi 291 fi 292 293 if [ $CREATE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_GNOME ] ; then 294 create_GNOME_copyright 295 elif [ $CREATE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_DESKTOP_OTHER ] ; then 296 IS_X86=`uname -p | grep i386` 297 298 if [ x"$IS_X86" = x ] ; then 299 echo "Please run this script on x86 for desktop-other" 1>&2 300 exit 1 301 fi 302 create_desktop_other_copyright 303 fi 304 if [ $MERGE_BASE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_GNOME ] ; then 305 merge_GNOME_base_copyright 306 elif [ $MERGE_BASE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_TJDS ] ; then 307 merge_TJDS_base_copyright 308 elif [ $MERGE_BASE_COPYRIGHT -ne 0 -a $TYPE -eq $TYPE_DESKTOP_OTHER ] ; then 309 merge_desktop_other_base_copyright 310 fi 311 } 312 313 main $@ 314