summaryrefslogtreecommitdiffstats
path: root/gis/google-earth/google-earth.SlackBuild
blob: 1ca770d92fdd5c462dd3be97dd5d9d78f4a41093 (plain)
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
#!/bin/sh

# Slackware build script for google-earth

# Copyright 2007-2013  Michiel van Wessem, Manchester, United Kingdom
# Copyright 2016-2018 Willy Sudiarto Raharjo <willysr@slackbuilds.org>
# All rights reserved.
# Maintained 2021 by Lenard Spencer <lenardrspencer@gmail.com>
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# 2013 - A lot of thanks to Willy Sudiarto Raharjo for his input and help
# with converting the script to work with google's .deb packages.

# Thanks to rworkman for the additional code and script cleanups
# and to Daniel de Kok and Alan_Hicks for their comments.

PRGNAM=google-earth
VERSION=${VERSION:-7.3.0.3832}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

if [ -z "$ARCH" ]; then
  case "$( uname -m )" in
    i?86) ARCH=i586 ;;
       *) ARCH=$( uname -m ) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

if [ "$ARCH" = "i586" ]; then
  SRCARCH="i386"
elif [ "$ARCH" = "x86_64" ]; then
  SRCARCH="amd64"
else
  echo "This system is unsupported.  Aborting."
  exit 1
fi

# No flags/configure needed as it is just a binary repackaging.
set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $PKG
ar p $CWD/google-earth-pro-stable_${VERSION}-r0_${SRCARCH}.deb data.tar.xz | tar xJv
cd $PKG
chown -R root:root .

# Fix Google braindeadness (and mine)
find . -type d -exec chmod 0755 {} \;
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

# Sadly (by lack of politer word), Google has some inconsistent permissions
# for normal files; this should deal with them rather nicely.
find -L . \( -name "*.png" -o -name "*.kml" -o -name "*.xml" \) -exec chmod 0644 {} \;

# Install a .desktop launcher:
mv $PKG/opt/google/earth/pro/google-earth-pro.desktop $PKG/usr/share/applications/google-earth.desktop

# Copy icons to /usr/share/icons
for icon in 16 22 24 32 48 64 128 256; do
  install -D $PKG/opt/google/earth/pro/product_logo_${icon}.png \
    $PKG/usr/share/icons/hicolor/${icon}x${icon}/apps/${PRGNAM}-pro.png
done

# Install mimetypes
mkdir -p $PKG/usr/share/mime/packages/
cat $CWD/google-earth-mimetypes.xml > $PKG/usr/share/mime/packages/$PRGNAM-mimetypes.xml

# Let's take care of documentation
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild

# Clean up cruft/unneeded directories.The cron job in /etc is for Debian/Ubuntu only:
rm -rf $PKG/etc
rm -rf $PKG/usr/share/{man,menu,gnome-control-center}

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

# Add ld-lsb.so symlink creation to doinst.sh
if [ "$ARCH" = "x86_64" ]; then
cat >> $PKG/install/doinst.sh << "EOF"
# Create ld-lsb symlink
( cd lib64
  if [ ! -e ld-lsb-x86-64.so.3 ]; then
    ln -sf ld-linux-x86-64.so.2 ld-lsb-x86-64.so.3
  fi
)

EOF
else
cat >> $PKG/install/doinst.sh << "EOF"
# Create ld-lsb symlink
( cd lib
  if [ ! -e ld-lsb.so.3 ]; then
    ln -sf ld-linux.so.2 ld-lsb.so.3
  fi
)

EOF
fi

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}