Item 6 + 7: add metainfo.xml, --updateinformation, validate target, Validate AppImage step

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
This commit is contained in:
Darryl L. Miles 2026-07-20 17:04:09 +01:00 committed by R. Timothy Edwards
parent f5ff38ff2f
commit d5d5ea363f
9 changed files with 187 additions and 8 deletions

View File

@ -281,6 +281,8 @@ jobs:
echo "| AppImageTool URL | ${APPIMAGETOOL_DOWNLOAD_URL} |" >> "$GITHUB_STEP_SUMMARY"
- name: Build project
env:
UPDATEINFORMATION: gh-releases-zsync|${{ github.repository_owner }}|${{ github.event.repository.name }}|latest|Magic-*EL10.AppImage.zsync
run: |
cd appimage/10
make \
@ -290,13 +292,20 @@ jobs:
TCL_TARBALL_URL="${TCL_TARBALL_URL}" \
TK_TARBALL_URL="${TK_TARBALL_URL}" \
TCL_TARBALL_SHA256="${TCL_TARBALL_SHA256}" \
TK_TARBALL_SHA256="${TK_TARBALL_SHA256}"
TK_TARBALL_SHA256="${TK_TARBALL_SHA256}" \
UPDATEINFORMATION="${UPDATEINFORMATION}"
ln -v Magic-x86_64.AppImage "${MAGIC_APPIMAGE_OUTPUT_FILENAME}"
ls -l *.AppImage
sha256sum *.AppImage
pwd
- name: Validate AppImage
run: |
sudo apt-get install -y --no-install-recommends desktop-file-utils appstream
cd appimage/10
make validate
- name: Create RELEASE-NOTES.txt
run: |
cd appimage/10

View File

@ -281,6 +281,8 @@ jobs:
echo "| AppImageTool URL | ${APPIMAGETOOL_DOWNLOAD_URL} |" >> "$GITHUB_STEP_SUMMARY"
- name: Build project
env:
UPDATEINFORMATION: gh-releases-zsync|${{ github.repository_owner }}|${{ github.event.repository.name }}|latest|Magic-*EL7.AppImage.zsync
run: |
cd appimage/7
make \
@ -290,13 +292,20 @@ jobs:
TCL_TARBALL_URL="${TCL_TARBALL_URL}" \
TK_TARBALL_URL="${TK_TARBALL_URL}" \
TCL_TARBALL_SHA256="${TCL_TARBALL_SHA256}" \
TK_TARBALL_SHA256="${TK_TARBALL_SHA256}"
TK_TARBALL_SHA256="${TK_TARBALL_SHA256}" \
UPDATEINFORMATION="${UPDATEINFORMATION}"
ln -v Magic-x86_64.AppImage "${MAGIC_APPIMAGE_OUTPUT_FILENAME}"
ls -l *.AppImage
sha256sum *.AppImage
pwd
- name: Validate AppImage
run: |
sudo apt-get install -y --no-install-recommends desktop-file-utils appstream
cd appimage/7
make validate
- name: Create RELEASE-NOTES.txt
run: |
cd appimage/7

View File

@ -281,6 +281,8 @@ jobs:
echo "| AppImageTool URL | ${APPIMAGETOOL_DOWNLOAD_URL} |" >> "$GITHUB_STEP_SUMMARY"
- name: Build project
env:
UPDATEINFORMATION: gh-releases-zsync|${{ github.repository_owner }}|${{ github.event.repository.name }}|latest|Magic-*EL8.AppImage.zsync
run: |
cd appimage/8
make \
@ -290,13 +292,20 @@ jobs:
TCL_TARBALL_URL="${TCL_TARBALL_URL}" \
TK_TARBALL_URL="${TK_TARBALL_URL}" \
TCL_TARBALL_SHA256="${TCL_TARBALL_SHA256}" \
TK_TARBALL_SHA256="${TK_TARBALL_SHA256}"
TK_TARBALL_SHA256="${TK_TARBALL_SHA256}" \
UPDATEINFORMATION="${UPDATEINFORMATION}"
ln -v Magic-x86_64.AppImage "${MAGIC_APPIMAGE_OUTPUT_FILENAME}"
ls -l *.AppImage
sha256sum *.AppImage
pwd
- name: Validate AppImage
run: |
sudo apt-get install -y --no-install-recommends desktop-file-utils appstream
cd appimage/8
make validate
- name: Create RELEASE-NOTES.txt
run: |
cd appimage/8

View File

@ -281,6 +281,8 @@ jobs:
echo "| AppImageTool URL | ${APPIMAGETOOL_DOWNLOAD_URL} |" >> "$GITHUB_STEP_SUMMARY"
- name: Build project
env:
UPDATEINFORMATION: gh-releases-zsync|${{ github.repository_owner }}|${{ github.event.repository.name }}|latest|Magic-*EL9.AppImage.zsync
run: |
cd appimage/9
make \
@ -290,13 +292,20 @@ jobs:
TCL_TARBALL_URL="${TCL_TARBALL_URL}" \
TK_TARBALL_URL="${TK_TARBALL_URL}" \
TCL_TARBALL_SHA256="${TCL_TARBALL_SHA256}" \
TK_TARBALL_SHA256="${TK_TARBALL_SHA256}"
TK_TARBALL_SHA256="${TK_TARBALL_SHA256}" \
UPDATEINFORMATION="${UPDATEINFORMATION}"
ln -v Magic-x86_64.AppImage "${MAGIC_APPIMAGE_OUTPUT_FILENAME}"
ls -l *.AppImage
sha256sum *.AppImage
pwd
- name: Validate AppImage
run: |
sudo apt-get install -y --no-install-recommends desktop-file-utils appstream
cd appimage/9
make validate
- name: Create RELEASE-NOTES.txt
run: |
cd appimage/9

View File

@ -52,18 +52,45 @@ prefix/bin/magic: Dockerfile Makefile
exit 1; \
fi
# Optional: embed AppImage update info (enables delta-update support via zsync).
# Set to e.g. gh-releases-zsync|owner|repo|latest|Magic-*EL10.AppImage.zsync
UPDATEINFORMATION ?=
appimagetool:
curl -L "$(APPIMAGETOOL_DOWNLOAD_URL)" > ./appimagetool
chmod +x ./appimagetool
$(APPIMAGE): prefix/bin/magic appimagetool $(RESOURCES)
cp $(RESOURCES) ./prefix/
./appimagetool prefix
mkdir -p prefix/usr/share/metainfo
cp ../rsc/magic.metainfo.xml prefix/usr/share/metainfo/org.opencircuitdesign.magic.metainfo.xml
if [ -n "$(UPDATEINFORMATION)" ]; then \
./appimagetool --updateinformation "$(UPDATEINFORMATION)" prefix; \
if command -v zsyncmake >/dev/null 2>&1; then \
zsyncmake $(APPIMAGE) -u "$(UPDATEINFORMATION)"; \
fi; \
else \
./appimagetool prefix; \
fi
PREFIX ?= /usr/local
install:
install $(APPIMAGE) $(PREFIX)/bin/magic
.PHONY: validate
validate: $(APPIMAGE)
@echo "Validating AppImage: $(APPIMAGE)"
@if command -v desktop-file-validate >/dev/null 2>&1; then \
desktop-file-validate prefix/magic.desktop && echo "desktop-file-validate: OK"; \
else \
echo "desktop-file-validate: not installed, skipping"; \
fi
@if command -v appstreamcli >/dev/null 2>&1; then \
appstreamcli validate prefix/usr/share/metainfo/org.opencircuitdesign.magic.metainfo.xml && echo "appstreamcli: OK"; \
else \
echo "appstreamcli: not installed, skipping"; \
fi
.PHONY: clean
clean:
rm -f *.AppImage

View File

@ -52,18 +52,45 @@ prefix/bin/magic: Dockerfile Makefile
exit 1; \
fi
# Optional: embed AppImage update info (enables delta-update support via zsync).
# Set to e.g. gh-releases-zsync|owner|repo|latest|Magic-*EL7.AppImage.zsync
UPDATEINFORMATION ?=
appimagetool:
curl -L "$(APPIMAGETOOL_DOWNLOAD_URL)" > ./appimagetool
chmod +x ./appimagetool
$(APPIMAGE): prefix/bin/magic appimagetool $(RESOURCES)
cp $(RESOURCES) ./prefix/
./appimagetool prefix
mkdir -p prefix/usr/share/metainfo
cp ../rsc/magic.metainfo.xml prefix/usr/share/metainfo/org.opencircuitdesign.magic.metainfo.xml
if [ -n "$(UPDATEINFORMATION)" ]; then \
./appimagetool --updateinformation "$(UPDATEINFORMATION)" prefix; \
if command -v zsyncmake >/dev/null 2>&1; then \
zsyncmake $(APPIMAGE) -u "$(UPDATEINFORMATION)"; \
fi; \
else \
./appimagetool prefix; \
fi
PREFIX ?= /usr/local
install:
install $(APPIMAGE) $(PREFIX)/bin/magic
.PHONY: validate
validate: $(APPIMAGE)
@echo "Validating AppImage: $(APPIMAGE)"
@if command -v desktop-file-validate >/dev/null 2>&1; then \
desktop-file-validate prefix/magic.desktop && echo "desktop-file-validate: OK"; \
else \
echo "desktop-file-validate: not installed, skipping"; \
fi
@if command -v appstreamcli >/dev/null 2>&1; then \
appstreamcli validate prefix/usr/share/metainfo/org.opencircuitdesign.magic.metainfo.xml && echo "appstreamcli: OK"; \
else \
echo "appstreamcli: not installed, skipping"; \
fi
.PHONY: clean
clean:
rm -f *.AppImage

View File

@ -52,18 +52,45 @@ prefix/bin/magic: Dockerfile Makefile
exit 1; \
fi
# Optional: embed AppImage update info (enables delta-update support via zsync).
# Set to e.g. gh-releases-zsync|owner|repo|latest|Magic-*EL8.AppImage.zsync
UPDATEINFORMATION ?=
appimagetool:
curl -L "$(APPIMAGETOOL_DOWNLOAD_URL)" > ./appimagetool
chmod +x ./appimagetool
$(APPIMAGE): prefix/bin/magic appimagetool $(RESOURCES)
cp $(RESOURCES) ./prefix/
./appimagetool prefix
mkdir -p prefix/usr/share/metainfo
cp ../rsc/magic.metainfo.xml prefix/usr/share/metainfo/org.opencircuitdesign.magic.metainfo.xml
if [ -n "$(UPDATEINFORMATION)" ]; then \
./appimagetool --updateinformation "$(UPDATEINFORMATION)" prefix; \
if command -v zsyncmake >/dev/null 2>&1; then \
zsyncmake $(APPIMAGE) -u "$(UPDATEINFORMATION)"; \
fi; \
else \
./appimagetool prefix; \
fi
PREFIX ?= /usr/local
install:
install $(APPIMAGE) $(PREFIX)/bin/magic
.PHONY: validate
validate: $(APPIMAGE)
@echo "Validating AppImage: $(APPIMAGE)"
@if command -v desktop-file-validate >/dev/null 2>&1; then \
desktop-file-validate prefix/magic.desktop && echo "desktop-file-validate: OK"; \
else \
echo "desktop-file-validate: not installed, skipping"; \
fi
@if command -v appstreamcli >/dev/null 2>&1; then \
appstreamcli validate prefix/usr/share/metainfo/org.opencircuitdesign.magic.metainfo.xml && echo "appstreamcli: OK"; \
else \
echo "appstreamcli: not installed, skipping"; \
fi
.PHONY: clean
clean:
rm -f *.AppImage

View File

@ -52,18 +52,45 @@ prefix/bin/magic: Dockerfile Makefile
exit 1; \
fi
# Optional: embed AppImage update info (enables delta-update support via zsync).
# Set to e.g. gh-releases-zsync|owner|repo|latest|Magic-*EL9.AppImage.zsync
UPDATEINFORMATION ?=
appimagetool:
curl -L "$(APPIMAGETOOL_DOWNLOAD_URL)" > ./appimagetool
chmod +x ./appimagetool
$(APPIMAGE): prefix/bin/magic appimagetool $(RESOURCES)
cp $(RESOURCES) ./prefix/
./appimagetool prefix
mkdir -p prefix/usr/share/metainfo
cp ../rsc/magic.metainfo.xml prefix/usr/share/metainfo/org.opencircuitdesign.magic.metainfo.xml
if [ -n "$(UPDATEINFORMATION)" ]; then \
./appimagetool --updateinformation "$(UPDATEINFORMATION)" prefix; \
if command -v zsyncmake >/dev/null 2>&1; then \
zsyncmake $(APPIMAGE) -u "$(UPDATEINFORMATION)"; \
fi; \
else \
./appimagetool prefix; \
fi
PREFIX ?= /usr/local
install:
install $(APPIMAGE) $(PREFIX)/bin/magic
.PHONY: validate
validate: $(APPIMAGE)
@echo "Validating AppImage: $(APPIMAGE)"
@if command -v desktop-file-validate >/dev/null 2>&1; then \
desktop-file-validate prefix/magic.desktop && echo "desktop-file-validate: OK"; \
else \
echo "desktop-file-validate: not installed, skipping"; \
fi
@if command -v appstreamcli >/dev/null 2>&1; then \
appstreamcli validate prefix/usr/share/metainfo/org.opencircuitdesign.magic.metainfo.xml && echo "appstreamcli: OK"; \
else \
echo "appstreamcli: not installed, skipping"; \
fi
.PHONY: clean
clean:
rm -f *.AppImage

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="console-application">
<id>org.opencircuitdesign.magic</id>
<name>Magic</name>
<summary>A VLSI Layout System</summary>
<description>
<p>
Magic is an open-source VLSI (Very Large Scale Integration) layout tool that
allows users to design and verify integrated circuit layouts. It supports
design rule checking (DRC), extraction of circuit netlists, and provides
interfaces to SPICE and other common EDA tools.
</p>
<p>
Originally developed at UC Berkeley, Magic has been maintained and extended
by the open hardware community and is widely used in academic and hobbyist
chip design projects.
</p>
</description>
<url type="homepage">http://opencircuitdesign.com/magic/</url>
<url type="bugtracker">https://github.com/RTimothyEdwards/magic/issues</url>
<categories>
<category>Development</category>
<category>Electronics</category>
</categories>
<provides>
<binary>magic</binary>
</provides>
<content_rating type="oars-1.1"/>
</component>