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

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
This commit is contained in:
Darryl L. Miles
2026-07-23 16:09:35 -04:00
committed by R. Timothy Edwards
co-authored by copilot-swe-agent[bot] <198982749+[email protected]>
parent f5ff38ff2f
commit d5d5ea363f
9 changed files with 187 additions and 8 deletions
+28 -1
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
+28 -1
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
+28 -1
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
+28 -1
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
+35
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>