Skip to content

Commit

Permalink
AWS (20 December)
Browse files Browse the repository at this point in the history
  • Loading branch information
rneher-igel committed Dec 20, 2023
1 parent 6ec9d7b commit 95df6b6
Show file tree
Hide file tree
Showing 8 changed files with 257 additions and 5 deletions.
Binary file removed CP_Packages/Apps/Amazon_WorkSpaces.zip
Binary file not shown.
7 changes: 4 additions & 3 deletions CP_Source/Apps/Amazon_WorkSpaces/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# Amazon WorkSpaces (21 November)
# Amazon WorkSpaces (20 December)

| CP Information | |
|------------------|------------|
| Package | [Amazon WorkSpaces](https://docs.aws.amazon.com/workspaces/latest/userguide/amazon-workspaces-linux-client.html) <br /><br /> [Install Linux client notes](https://clients.amazonworkspaces.com/linux-install) |
| Script Name | [awsws-cp-init-script.sh](awsws-cp-init-script.sh) |
| Packing Notes | See build script for details |
| Package automation | [build-awsws-cp.sh](build/build-awsws-cp.sh) |
| Package automation OS 11.08| [build-awsws-cp_OS1108.sh](build/build-awsws-cp_OS1108.sh) |
| Package automation OS 11.09 12.3.x | [build-awsws-cp.sh](build/build-awsws-cp.sh) |

-----

**Note:** IGEL OS has Amazon WorkSpaces client built-in. Use this CP builder to test the latest version. Check the release notes for the IGEL OS version -- [LINK](https://igel-community.github.io/IGEL-Docs-v02/Docs/HOWTO-Microsoft-Teams-Optimization)
**Note:** IGEL OS 11 has Amazon WorkSpaces client built-in. Use this CP builder to test the latest version. Check the release notes for the IGEL OS version -- [LINK](https://igel-community.github.io/IGEL-Docs-v02/Docs/HOWTO-Microsoft-Teams-Optimization)
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ MP=$(get custom_partition.mountpoint)
# custom partition path
CP="${MP}/awsws"

# user directories
AWS_USER_CONFIG="/userhome/.config/WorkSpaces"

# output to systemlog with ID amd tag
LOGGER="logger -it ${ACTION}"

Expand All @@ -32,6 +35,9 @@ init)
fi
done

# basic persistency
chown -R user:users "${CP}/userhome"

# after CP installation run wm_postsetup to activate mimetypes
if [ -d /run/user/777 ]; then
wm_postsetup
Expand Down
114 changes: 114 additions & 0 deletions CP_Source/Apps/Amazon_WorkSpaces/build/build-aws-cp.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
#!/bin/bash
#set -x
#trap read debug

# Creating an IGELOS CP
## Development machine Ubuntu (OS11.09+ = 22.04; OS12 = 20.04)
CP="aws"
ZIP_LOC="https://github.com/IGEL-Community/IGEL-Custom-Partitions/raw/master/CP_Packages/Apps"
ZIP_FILE="Amazon_WorkSpaces"
FIX_MIME="TRUE"
CLEAN="FALSE"
OS11_CLEAN="11.09.150"
OS12_CLEAN="12.2.2"
USERHOME_FOLDERS="TRUE"
USERHOME_FOLDERS_DIRS="custom/aws/userhome/.config/WorkSpaces"
APPARMOR="FALSE"
#https://d3nt0h4h6pmmc4.cloudfront.net/new_workspacesclient_jammy_amd64.deb
GETVERSION_FILE_OS11="new_workspacesclient_jammy_amd64.deb"
#https://d3nt0h4h6pmmc4.cloudfront.net/new_workspacesclient_focal_amd64.deb
GETVERSION_FILE_OS12="new_workspacesclient_focal_amd64.deb"
MISSING_LIBS_OS11=""
MISSING_LIBS_OS12=""

VERSION_ID=$(grep "^VERSION_ID" /etc/os-release | cut -d "\"" -f 2)

if [ "${VERSION_ID}" = "22.04" ]; then
MISSING_LIBS="${MISSING_LIBS_OS11}"
IGELOS_ID="OS11"
GETVERSION_FILE=${GETVERSION_FILE_OS11}
elif [ "${VERSION_ID}" = "20.04" ]; then
MISSING_LIBS="${MISSING_LIBS_OS12}"
IGELOS_ID="OS12"
GETVERSION_FILE=${GETVERSION_FILE_OS12}
else
echo "Not a valid Ubuntu OS release. OS11.09+ needs 22.04 (jammy) and OS12 needs 20.04 (focal)."
exit 1
fi

mkdir build_tar
cd build_tar

wget ${GETVERSION_FILE}

for lib in $MISSING_LIBS; do
apt-get download $lib
done

mkdir -p custom/${CP}

find . -name "*.deb" | while read LINE
do
dpkg -x "${LINE}" custom/${CP}
done

if [ "${FIX_MIME}" = "TRUE" ]; then
mv custom/${CP}/usr/share/applications/ custom/${CP}/usr/share/applications.mime
fi

if [ "${USERHOME_FOLDERS}" = "TRUE" ]; then
for folder in $USERHOME_FOLDERS_DIRS; do
mkdir -p $folder
done
fi

if [ "${CLEAN}" = "TRUE" ]; then
echo "+++++++======= STARTING CLEAN of USR =======+++++++"
wget https://raw.githubusercontent.com/IGEL-Community/IGEL-Custom-Partitions/master/utils/igelos_usr/clean_cp_usr_lib.sh
chmod a+x clean_cp_usr_lib.sh
wget https://raw.githubusercontent.com/IGEL-Community/IGEL-Custom-Partitions/master/utils/igelos_usr/clean_cp_usr_share.sh
chmod a+x clean_cp_usr_share.sh
if [ "${IGELOS_ID}" = "OS11" ]; then
./clean_cp_usr_lib.sh ${OS11_CLEAN}_usr_lib.txt custom/${CP}/usr/lib
./clean_cp_usr_share.sh ${OS11_CLEAN}_usr_share.txt custom/${CP}/usr/share
else
./clean_cp_usr_lib.sh ${OS12_CLEAN}_usr_lib.txt custom/${CP}/usr/lib
./clean_cp_usr_share.sh ${OS12_CLEAN}_usr_share.txt custom/${CP}/usr/share
fi
echo "+++++++======= DONE CLEAN of USR =======+++++++"
fi

wget ${ZIP_LOC}/${ZIP_FILE}.zip

unzip ${ZIP_FILE}.zip -d custom

if [ "${APPARMOR}" = "TRUE" ]; then
mkdir -p custom/${CP}/config/bin
mkdir -p custom/${CP}/lib/systemd/system
mv custom/target/build/${CP}_cp_apparmor_reload custom/${CP}/config/bin
mv custom/target/build/igel-${CP}-cp-apparmor-reload.service custom/${CP}/lib/systemd/system/
fi
mv custom/target/build/${CP}-cp-init-script.sh custom

cd custom

# edit inf file for version number
mkdir getversion
cd getversion
ar -x ../../${GETVERSION_FILE}
tar xf control.tar.* ./control
VERSION=$(grep Version control | cut -d " " -f 2)
#echo "Version is: " ${VERSION}
cd ..
sed -i "/^version=/c version=\"${VERSION}\"" target/${CP}.inf
#echo "${CP}.inf file is:"
#cat target/${CP}.inf

# new build process into zip file
tar cvjf target/${CP}.tar.bz2 ${CP} ${CP}-cp-init-script.sh
zip -g ../${ZIP_FILE}.zip target/${CP}.tar.bz2 target/${CP}.inf
zip -d ../${ZIP_FILE}.zip "target/build/*" "target/igel/*" "target/target/*"
mv ../${ZIP_FILE}.zip ../../${ZIP_FILE}-${VERSION}_${IGELOS_ID}_igel01.zip

cd ../..
rm -rf build_tar
67 changes: 67 additions & 0 deletions CP_Source/Apps/Amazon_WorkSpaces/build/build-awsws-cp_OS1108.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!/bin/bash
#set -x
#trap read debug

# Creating an IGELOS CP for AWS WorkSpaces
## Development machine (Ubuntu 18.04)
sudo apt install curl -y
sudo apt install unzip -y
sudo curl https://workspaces-client-linux-public-key.s3-us-west-2.amazonaws.com/ADB332E7.asc | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] https://d3nt0h4h6pmmc4.cloudfront.net/ubuntu bionic main" > /etc/apt/sources.list.d/amazon-workspaces-clients.list'
sudo apt-get update

MISSING_LIBS="workspacesclient i965-va-driver libgraphicsmagick++-q16-12 libgraphicsmagick-q16-3 libhiredis0.13 libva2 mesa-va-drivers va-driver-all"

mkdir build_tar
cd build_tar

for lib in $MISSING_LIBS; do
apt-get download $lib
done

mkdir -p custom/awsws

find . -name "*.deb" | while read LINE
do
dpkg -x "${LINE}" custom/awsws
done

mv custom/awsws/usr/share/applications/ custom/awsws/usr/share/applications.mime
#mkdir -p custom/awsws/userhome/.workspaces

echo "+++++++======= STARTING CLEAN of USR =======+++++++"
wget https://raw.githubusercontent.com/IGEL-Community/IGEL-Custom-Partitions/master/utils/igelos_usr/clean_cp_usr_lib.sh
chmod a+x clean_cp_usr_lib.sh
wget https://raw.githubusercontent.com/IGEL-Community/IGEL-Custom-Partitions/master/utils/igelos_usr/clean_cp_usr_share.sh
chmod a+x clean_cp_usr_share.sh
./clean_cp_usr_lib.sh 11.07.100_usr_lib.txt custom/awsws/usr/lib
./clean_cp_usr_share.sh 11.07.100_usr_share.txt custom/awsws/usr/share
echo "+++++++======= DONE CLEAN of USR =======+++++++"

wget https://github.com/IGEL-Community/IGEL-Custom-Partitions/raw/master/CP_Packages/Apps/Amazon_WorkSpaces.zip

unzip Amazon_WorkSpaces.zip -d custom
mv custom/target/build/awsws-cp-init-script.sh custom

cd custom

# edit inf file for version number
mkdir getversion
cd getversion
ar -x ../../workspacesclient*.deb
tar xf control.tar.*
VERSION=$(grep Version control | cut -d " " -f 2)
#echo "Version is: " ${VERSION}
cd ..
sed -i "/^version=/c version=\"${VERSION}\"" target/awsws.inf
#echo "awsws.inf file is:"
#cat target/awsws.inf

# new build process into zip file
tar cvjf target/awsws.tar.bz2 awsws awsws-cp-init-script.sh
zip -g ../Amazon_WorkSpaces.zip target/awsws.tar.bz2 target/awsws.inf
zip -d ../Amazon_WorkSpaces.zip "target/build/*" "target/igel/*" "target/target/*"
mv ../Amazon_WorkSpaces.zip ../../Amazon_WorkSpaces-${VERSION}_igel01.zip

cd ../..
rm -rf build_tar
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<profilename>Amazon WorkSpaces CP</profilename>
<firmware>
<model>IGEL OS 11</model>
<version>11.07.100.01</version>
<version>11.08.440.01</version>
</firmware>
<description>Amazon WorkSpaces</description>
<overwritesessions>false</overwritesessions>
Expand Down
64 changes: 64 additions & 0 deletions CP_Source/Apps/Amazon_WorkSpaces/igel/awsws-profile_OS1109.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<profiles>
<profile>
<profile_id>10688</profile_id>
<profilename>Amazon WorkSpaces CP</profilename>
<firmware>
<model>IGEL OS 11</model>
<version>11.09.160.01</version>
</firmware>
<description>Amazon WorkSpaces</description>
<overwritesessions>false</overwritesessions>
<is_master_profile>false</is_master_profile>
<is_igel_os>true</is_igel_os>
<settings>
<pclass name="custom_partition.enabled">
<pvalue instancenr="-1" variableExpression="" variableSubstitutionActive="false">true</pvalue>
<variableSubstitutionActive>false</variableSubstitutionActive>
</pclass>
<pclass name="custom_partition.size">
<pvalue instancenr="-1" variableExpression="" variableSubstitutionActive="false">200M</pvalue>
<variableSubstitutionActive>false</variableSubstitutionActive>
</pclass>
</settings>
<instancesettings>
<instance classprefix="custom_partition.source%" serialnumber="31cea061:1730aeba537:-7fff127.0.1.1">
<ivalue classname="custom_partition.source%.username" variableExpression="" variableSubstitutionActive="false">[USERNAME]</ivalue>
<ivalue classname="custom_partition.source%.url" variableExpression="" variableSubstitutionActive="false">https://[UMSSERVER]:8443/ums_filetransfer/awsws.inf</ivalue>
<ivalue classname="custom_partition.source%.password" variableExpression="" variableSubstitutionActive="false"></ivalue>
<ivalue classname="custom_partition.source%.init_action" variableExpression="" variableSubstitutionActive="false">/custom/awsws-cp-init-script.sh init</ivalue>
<ivalue classname="custom_partition.source%.final_action" variableExpression="" variableSubstitutionActive="false">/custom/awsws-cp-init-script.sh stop</ivalue>
<ivalue classname="custom_partition.source%.crypt_password" variableExpression="" variableSubstitutionActive="false"></ivalue>
<ivalue classname="custom_partition.source%.autoupdate" variableExpression="" variableSubstitutionActive="false">true</ivalue>
</instance>
<instance classprefix="sessions.custom_application%" serialnumber="31cea061:1730aeba537:-7ffe127.0.1.1">
<ivalue classname="sessions.custom_application%.waittime2restart" variableExpression="" variableSubstitutionActive="false">0</ivalue>
<ivalue classname="sessions.custom_application%.waittime2autostart" variableExpression="" variableSubstitutionActive="false">0</ivalue>
<ivalue classname="sessions.custom_application%.waitfornetwork" variableExpression="" variableSubstitutionActive="false">true</ivalue>
<ivalue classname="sessions.custom_application%.usehotkey" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.startmenu_system" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.startmenu" variableExpression="" variableSubstitutionActive="false">true</ivalue>
<ivalue classname="sessions.custom_application%.snotify" variableExpression="" variableSubstitutionActive="false">true</ivalue>
<ivalue classname="sessions.custom_application%.scardautostart" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.restart" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.quick_start" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.pwprotected" variableExpression="" variableSubstitutionActive="false">none</ivalue>
<ivalue classname="sessions.custom_application%.pulldown" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.position" variableExpression="" variableSubstitutionActive="false">0</ivalue>
<ivalue classname="sessions.custom_application%.name" variableExpression="" variableSubstitutionActive="false">Amazon WorkSpaces</ivalue>
<ivalue classname="sessions.custom_application%.menu_path" variableExpression="" variableSubstitutionActive="false"></ivalue>
<ivalue classname="sessions.custom_application%.icon" variableExpression="" variableSubstitutionActive="false">/custom/awsws/usr/share/icons/hicolor/256x256/apps/com.amazon.workspacesclient.png</ivalue>
<ivalue classname="sessions.custom_application%.hotkeymodifier" variableExpression="" variableSubstitutionActive="false">None</ivalue>
<ivalue classname="sessions.custom_application%.hotkey" variableExpression="" variableSubstitutionActive="false"></ivalue>
<ivalue classname="sessions.custom_application%.desktop_path" variableExpression="" variableSubstitutionActive="false"></ivalue>
<ivalue classname="sessions.custom_application%.desktop" variableExpression="" variableSubstitutionActive="false">true</ivalue>
<ivalue classname="sessions.custom_application%.cmdline" variableExpression="" variableSubstitutionActive="false">/custom/awsws/usr/bin/workspacesclient</ivalue>
<ivalue classname="sessions.custom_application%.autostart" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.appliance_mode_access" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.applaunch_system" variableExpression="" variableSubstitutionActive="false">false</ivalue>
<ivalue classname="sessions.custom_application%.applaunch_path" variableExpression="" variableSubstitutionActive="false"></ivalue>
<ivalue classname="sessions.custom_application%.applaunch" variableExpression="" variableSubstitutionActive="false">true</ivalue>
</instance>
</instancesettings>
</profile>
</profiles>
2 changes: 1 addition & 1 deletion CP_Source/Apps/Amazon_WorkSpaces/target/awsws.inf
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ file="awsws.tar.bz2"
version="X.X.X"
size="200M"
name="awsws"
minfw="11.07.100"
minfw="11.08.440"

0 comments on commit 95df6b6

Please sign in to comment.