Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rasschaert/8952961 to your computer and use it in GitHub Desktop.
Save rasschaert/8952961 to your computer and use it in GitHub Desktop.
Creates an RPM package for Fritzing. Fedora only ships with 0.8.3b.
#!/bin/bash
echo "Creating directory structure"
mkdir -p ./tmproot/opt
mkdir -p ./tmproot/usr/local/bin
mkdir -p ./tmproot/usr/share/applications
mkdir -p ./tmproot/usr/share/icons/{hicolor,gnome}
echo "Downloading archive"
wget http://fritzing.org/download/0.8.7b/linux-64bit/fritzing-0.8.7b.linux.AMD64.tar.bz2
echo "Downloading icon"
wget http://upload.wikimedia.org/wikipedia/commons/e/ed/Fritzing_icon.png
echo "Extracting archive"
mv fritzing-0.8.7b.linux.AMD64.tar.bz2 ./tmproot/opt/
cd ./tmproot/opt/
tar xjf fritzing-0.8.7b.linux.AMD64.tar.bz2
rm -f fritzing-0.8.7b.linux.AMD64.tar.bz2
mv fritzing-0.8.7b.linux.AMD64 fritzing
echo "Creating shortcut"
cd ../usr/local/bin/
ln -s ../../../opt/fritzing/Fritzing fritzing
echo "Creating launcher"
cd ../../share/applications/
cat << EOF > fritzing.desktop
[Desktop Entry]
Name=Fritzing
GenericName=Fritzing
Comment=Electronic Design Automation software
Exec=Fritzing
Icon=fritzing
Terminal=false
Type=Application
Categories=Electronics;
X-Desktop-File-Install-Version=0.21
EOF
chmod 644 fritzing.desktop
echo "Resizing and placing icons"
cd ../../../../
declare -a sizes=(16 20 22 24 32 36 40 48 64 72 96 128 192 256)
for size in "${sizes[@]}"; do
convert Fritzing_icon.png -size ${size}x${size} fritzing.png
mkdir -p ./tmproot/usr/share/icons/hicolor/${size}/apps/
cp fritzing.png ./tmproot/usr/share/icons/hicolor/${size}/apps/
mkdir -p ./tmproot/usr/share/icons/gnome/${size}/apps/
mv fritzing.png ./tmproot/usr/share/icons/gnome/${size}/apps/
done
echo "Creating package"
fpm -s dir -t rpm -n fritzing -v 0.8.7b -a x86_64 -C tmproot .
echo "Cleaning up"
rm -f Fritzing_icon.png
rm -rf ./tmproot/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment