
Add FREECAD_USER_DATA environment variable required to support snap on ubuntu which is using Apparmor to limit application access to filesystem. Add automatic snap build on Xenial (ubuntu 16.04) within Vagrant build Info Build results are into /home/vagrant/Results (deb + snap
106 lines
3.3 KiB
Bash
Executable File
106 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# snapcraft yaml automatic generation tool for FreeCAD 0.17
|
|
# (c) 2017 vejmarie
|
|
# Distributed under LGPL v2.0
|
|
# Please report bugs at vejmarie@ruggedpod.qyshare.com
|
|
|
|
rm snapcraft.yaml
|
|
lib_list=`ls /opt/local/FreeCAD-0.17/lib/*.so`
|
|
mod_list=`ls -ltd $(find /opt/local/FreeCAD-0.17/Mod) | awk '{ print $9}'`
|
|
bin_list=`ls -ltd $(find /opt/local/FreeCAD-0.17/bin) | awk '{ print $9}'`
|
|
data_list=`ls -ltd $(find /opt/local/FreeCAD-0.17/data) | awk '{ print $9}'`
|
|
python_list=`ls -ltd $(find /usr/lib/python2.7) | awk '{ print $9}'`
|
|
pyside_list=`ls -ltd $(find /usr/share/PySide/typesystems) | awk '{ print $9}'`
|
|
python_binary=`ls /usr/bin/python /usr/bin/py*2.7`
|
|
syslib=`ls -ltd $(find /usr/lib/x86_64-linux-gnu/dri) | awk '{ print $9}'`
|
|
syslib2=`ls -ltd $(find /usr/lib/x86_64-linux-gnu/gtk-2.0) | awk '{ print $9}'`
|
|
syslib3=`ls -ltd $(find /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0) | awk '{ print $9}'`
|
|
syslib4=`ls -ltd $(find /usr/lib/locale) | awk '{ print $9}'`
|
|
syslib5=`ls -ltd $(find /usr/share/X11/locale) | awk '{ print $9}'`
|
|
syslib6=`ls -ltd $(find /usr/lib/x86_64-linux-gnu/*gtk*) | awk '{ print $9}'`
|
|
syslib7=`ls -ltd $(find /usr/share/glib-2.0) | awk '{ print $9}'`
|
|
syslib8=`ls -ltd $(find /usr/share/i18n/locales) | awk '{ print $9}'`
|
|
echo "
|
|
name: freecad
|
|
version: 0.17
|
|
summary: development version
|
|
description: development version This version is far from being bug free but integrates the latest FreeCAD technologies
|
|
parts:
|
|
example-part:
|
|
plugin: copy
|
|
files:
|
|
bin/launcher : bin/launcher" >> snapcraft.yaml
|
|
# bin/FreeCAD : opt/local/FreeCAD-0.17/bin/FreeCAD" >> snapcraft.yaml
|
|
for i in $bin_list
|
|
do
|
|
if [ ! -d "$i" ]
|
|
then
|
|
second_name=`echo $i | sed 's/\///'`
|
|
echo " $i : $second_name" >> snapcraft.yaml
|
|
fi
|
|
done
|
|
for i in $lib_list
|
|
do
|
|
second_name=`echo $i | sed 's/\///'`
|
|
echo " $i : $second_name" >> snapcraft.yaml
|
|
done
|
|
for i in $mod_list
|
|
do
|
|
if [ ! -d "$i" ]
|
|
then
|
|
second_name=`echo $i | sed 's/\///'`
|
|
echo " $i : $second_name" >> snapcraft.yaml
|
|
fi
|
|
done
|
|
for i in $data_list
|
|
do
|
|
if [ ! -d "$i" ]
|
|
then
|
|
second_name=`echo $i | sed 's/\///'`
|
|
echo " $i : $second_name" >> snapcraft.yaml
|
|
fi
|
|
done
|
|
for i in $python_list $pyside_list
|
|
do
|
|
if [ ! -d "$i" ]
|
|
then
|
|
second_name=`echo $i | sed 's/\///'`
|
|
echo " $i : $second_name" >> snapcraft.yaml
|
|
fi
|
|
done
|
|
for i in $python_binary
|
|
do
|
|
if [ ! -d "$i" ]
|
|
then
|
|
second_name=`echo $i | sed 's/\///'`
|
|
echo " $i : $second_name" >> snapcraft.yaml
|
|
fi
|
|
done
|
|
for i in $syslib $syslib2 $syslib3 $syslib4 $syslib5 $syslib6 $syslib7 $syslib8
|
|
do
|
|
if [ ! -d "$i" ]
|
|
then
|
|
second_name=`echo $i | sed 's/\///'`
|
|
echo " $i : $second_name" >> snapcraft.yaml
|
|
fi
|
|
done
|
|
# python:
|
|
# plugin: python2
|
|
echo "
|
|
snap:
|
|
- bin/launcher
|
|
- opt/local/FreeCAD-0.17/bin/FreeCAD
|
|
- opt
|
|
- usr" >> snapcraft.yaml
|
|
for i in $lib_list
|
|
do
|
|
second_name=`echo $i | sed 's/\///'`
|
|
echo " - $second_name" >> snapcraft.yaml
|
|
done
|
|
echo "
|
|
apps:
|
|
FreeCAD:
|
|
command: bin/launcher
|
|
plugs: [ locale-control,x11,opengl,network-bind,home,unity7 ]
|
|
" >> snapcraft.yaml
|