Wholesale copy of all Kindred Create additions that don't conflict with upstream FreeCAD code: - kindred-icons/ (1444 Catppuccin Mocha SVG icon overrides) - src/Mod/Create/ (Kindred Create workbench) - src/Gui/ Kindred source files (FileOrigin, OriginManager, OriginSelectorWidget, CommandOrigin, BreadcrumbToolBar, EditingContext) - src/Gui/Icons/ (Kindred branding and silo icons) - src/Gui/PreferencePacks/KindredCreate/ - src/Gui/Stylesheets/ (KindredCreate.qss, images_dark-light/) - package/ (rattler-build recipe) - docs/ (architecture, guides, specifications) - .gitea/ (CI workflows, issue templates) - mods/silo, mods/ztools submodules - .gitmodules (Kindred submodule URLs) - resources/ (kindred-create.desktop, kindred-create.xml) - banner-logo-light.png, CONTRIBUTING.md
105 lines
3.5 KiB
Bash
Executable File
105 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
set -x
|
|
|
|
conda_env="AppDir/usr"
|
|
|
|
mkdir -p ${conda_env}
|
|
|
|
cp -a ../.pixi/envs/default/* ${conda_env}
|
|
|
|
echo -e "\nDelete unnecessary stuff"
|
|
rm -rf ${conda_env}/include
|
|
find ${conda_env} -name \*.a -delete
|
|
|
|
mv ${conda_env}/bin ${conda_env}/bin_tmp
|
|
mkdir ${conda_env}/bin
|
|
cp ${conda_env}/bin_tmp/freecad ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/freecadcmd ${conda_env}/bin
|
|
cp ${conda_env}/bin_tmp/ccx ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/python ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/pip ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/pyside6-rcc ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/gmsh ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/dot ${conda_env}/bin/
|
|
cp ${conda_env}/bin_tmp/unflatten ${conda_env}/bin/
|
|
rm -rf ${conda_env}/bin_tmp
|
|
|
|
sed -i '1s|.*|#!/usr/bin/env python|' ${conda_env}/bin/pip
|
|
|
|
echo -e "\nCopying Icon and Desktop file"
|
|
cp ${conda_env}/share/applications/org.freecad.FreeCAD.desktop AppDir/
|
|
sed -i 's/Exec=FreeCAD/Exec=AppRun/g' AppDir/org.freecad.FreeCAD.desktop
|
|
cp ${conda_env}/share/icons/hicolor/scalable/apps/org.freecad.FreeCAD.svg AppDir/
|
|
|
|
# Remove __pycache__ folders and .pyc files
|
|
find . -path "*/__pycache__/*" -delete
|
|
find . -name "*.pyc" -type f -delete
|
|
|
|
# reduce size
|
|
rm -rf ${conda_env}/conda-meta/
|
|
rm -rf ${conda_env}/doc/global/
|
|
rm -rf ${conda_env}/share/gtk-doc/
|
|
rm -rf ${conda_env}/lib/cmake/
|
|
|
|
find . -name "*.h" -type f -delete
|
|
find . -name "*.cmake" -type f -delete
|
|
|
|
python_version=$(${conda_env}/bin/python -c 'import platform; print("py" + platform.python_version_tuple()[0] + platform.python_version_tuple()[1])')
|
|
version_name="FreeCAD_${BUILD_TAG}-Linux-$(uname -m)-${python_version}"
|
|
|
|
echo -e "\################"
|
|
echo -e "version_name: ${version_name}"
|
|
echo -e "################"
|
|
|
|
pixi list -e default > AppDir/packages.txt
|
|
sed -i "1s/.*/\nLIST OF PACKAGES:/" AppDir/packages.txt
|
|
|
|
curl -LO https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$(uname -m).AppImage
|
|
chmod a+x appimagetool-$(uname -m).AppImage
|
|
|
|
# Extract appimagetool so it works in containers without FUSE
|
|
./appimagetool-$(uname -m).AppImage --appimage-extract > /dev/null 2>&1
|
|
APPIMAGETOOL=squashfs-root/AppRun
|
|
|
|
if [ "${UPLOAD_RELEASE}" == "true" ]; then
|
|
case "${BUILD_TAG}" in
|
|
*weekly*)
|
|
GH_UPDATE_TAG="weeklies"
|
|
;;
|
|
*rc*)
|
|
GH_UPDATE_TAG="${BUILD_TAG}"
|
|
;;
|
|
*)
|
|
GH_UPDATE_TAG="latest"
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
echo -e "\nCreate the appimage"
|
|
# export GPG_TTY=$(tty)
|
|
chmod a+x ./AppDir/AppRun
|
|
${APPIMAGETOOL} \
|
|
--comp zstd \
|
|
--mksquashfs-opt -Xcompression-level \
|
|
--mksquashfs-opt 22 \
|
|
-u "gh-releases-zsync|FreeCAD|FreeCAD|${GH_UPDATE_TAG}|FreeCAD*$(uname -m)*.AppImage.zsync" \
|
|
AppDir ${version_name}.AppImage
|
|
# -s --sign-key ${GPG_KEY_ID} \
|
|
|
|
echo -e "\nCreate hash"
|
|
sha256sum ${version_name}.AppImage > ${version_name}.AppImage-SHA256.txt
|
|
|
|
if [ "${UPLOAD_RELEASE}" == "true" ]; then
|
|
gh release upload --clobber ${BUILD_TAG} "${version_name}.AppImage" "${version_name}.AppImage.zsync" "${version_name}.AppImage-SHA256.txt"
|
|
if [ "${GH_UPDATE_TAG}" == "weeklies" ]; then
|
|
generic_name="FreeCAD_weekly-Linux-$(uname -m)"
|
|
mv "${version_name}.AppImage" "${generic_name}.AppImage"
|
|
mv "${version_name}.AppImage.zsync" "${generic_name}.AppImage.zsync"
|
|
mv "${version_name}.AppImage-SHA256.txt" "${generic_name}.AppImage-SHA256.txt"
|
|
gh release create weeklies --prerelease | true
|
|
gh release upload --clobber weeklies "${generic_name}.AppImage" "${generic_name}.AppImage.zsync" "${generic_name}.AppImage-SHA256.txt"
|
|
fi
|
|
fi
|