Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# IDEs
.devcontainer/
.idea/
.vs/
.vscode/
Expand All @@ -7,7 +8,11 @@ CMakeSettings.json
# Project exclude paths
build/
cmake-build-*/
flatpak-build/
out/

# Flatpak builder
**/.flatpak-builder/

# Generated
**/generated/
20 changes: 18 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,19 @@ set(PROJECT_ORGANIZATION_NAME "craftablescience" CACHE STRING "" FORCE)
set(PROJECT_HOMEPAGE_URL_API "https://api.github.com/repos/craftablescience/VPKEdit" CACHE STRING "" FORCE)

# Options
option(VPKEDIT_BUILD_INSTALLER "Build installer for VPKEdit GUI application" ON)
option(VPKEDIT_BUILD_FOR_STRATA_SOURCE "Build VPKEdit with the intent of the CLI/GUI going into the bin folder of a Strata Source game" OFF)

option(VPKEDIT_USE_LTO "Build VPKEdit with link-time optimization enabled" OFF)

option(VPKEDIT_BUILD_INSTALLER "Build VPKEdit installer" ON)
if(UNIX)
option(VPKEDIT_BUILD_FLATPAK "Build VPKEdit flatpak" OFF)
set(VPKEDIT_FLATPAK_ID "info.${PROJECT_ORGANIZATION_NAME}.${PROJECT_NAME}" CACHE STRING "The ID of the Flatpak package")
else()
set(VPKEDIT_BUILD_FLATPAK OFF CACHE INTERNAL "" FORCE)
set(VPKEDIT_FLATPAK_ID "" CACHE INTERNAL "" FORCE)
endif()

# Global CMake options
if(PROJECT_IS_TOP_LEVEL)
# Set proper runpath
Expand Down Expand Up @@ -131,9 +140,16 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/src/cli/_cli.cmake")
# vpkedit
include("${CMAKE_CURRENT_SOURCE_DIR}/src/gui/_gui.cmake")

# Flatpak
if(VPKEDIT_BUILD_FLATPAK)
include("${CMAKE_CURRENT_SOURCE_DIR}/src/installer/flatpak/_flatpak.cmake")
endif()

# Installer
if(VPKEDIT_BUILD_INSTALLER)
if(VPKEDIT_BUILD_INSTALLER AND NOT VPKEDIT_BUILD_FLATPAK)
include("${CMAKE_CURRENT_SOURCE_DIR}/src/installer/_installer.cmake")
elseif(VPKEDIT_BUILD_FLATPAK)
message(WARNING "You cannot build the ${PROJECT_NAME_PRETTY} installer and flatpak at the same time! The flatpak takes priority.")
endif()

# VS setup
Expand Down
9 changes: 4 additions & 5 deletions src/installer/_installer.cmake
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
# Set up install rules
install(TARGETS ${PROJECT_NAME}cli
DESTINATION .)

install(TARGETS ${PROJECT_NAME}
install(TARGETS ${PROJECT_NAME}cli ${PROJECT_NAME}
DESTINATION .)

install(FILES
Expand Down Expand Up @@ -94,6 +91,8 @@ elseif(UNIX)
LIBRARY DESTINATION .)
endif()

set(VPKEDIT_MIME_TYPE_ICON_ID "${PROJECT_NAME}" CACHE INTERNAL "" FORCE)

# Desktop file
configure_file(
"${CMAKE_CURRENT_LIST_DIR}/linux/desktop.in"
Expand Down Expand Up @@ -144,7 +143,7 @@ if(WIN32)
file(READ "${CMAKE_CURRENT_LIST_DIR}/win/generated/InstallCommands.nsh" CPACK_NSIS_EXTRA_INSTALL_COMMANDS)
file(READ "${CMAKE_CURRENT_LIST_DIR}/win/generated/UninstallCommands.nsh" CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/win") # NSIS.template.in, NSIS.InstallOptions.ini.in
else()
elseif(UNIX)
if(NOT (CPACK_GENERATOR STREQUAL "DEB"))
message(WARNING "CPack generator must be DEB! Setting generator to DEB...")
set(CPACK_GENERATOR "DEB" CACHE INTERNAL "" FORCE)
Expand Down
31 changes: 31 additions & 0 deletions src/installer/flatpak/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
.POSIX:
# Development flatpak tasks

FLATPAK_ID := info.craftablescience.vpkedit.Devel

_GIT_TOPLEVEL := $(shell git rev-parse --show-toplevel)

FLATPAK_BUILD_MANIFEST := $(realpath ./$(FLATPAK_ID).yaml)
FLATPAK_BUILD_DIR := $(_GIT_TOPLEVEL)/flatpak-build/
FLATPAK_REPO := $(_GIT_TOPLEVEL)/.flatpak-builder/cache

FLATPAK_INSTALLATION := --system # or --user
FLATPAK_BUILDER_FLAGS := --force-clean --install-deps-from=flathub --ccache --repo=$(FLATPAK_REPO) $(FLATPAK_INSTALLATION) $(FLATPAK_BUILDER_EXTRA_FLAGS)
FLATPAK_INSTALL_FLAGS := --reinstall $(FLATPAK_INSTALLATION)

flatpak:
cd $(_GIT_TOPLEVEL) && \
flatpak-builder $(FLATPAK_BUILDER_FLAGS) $(FLATPAK_BUILD_DIR) $(FLATPAK_BUILD_MANIFEST) || \
printf "you may need to add flathub to your target installation\n\
flatpak remote-add --if-not-exists %s flathub https://dl.flathub.org/repo/flathub.flatpakrepo\n" \
$(FLATPAK_INSTALLATION) \
2>&1
Comment on lines +16 to +22
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't have the option to use the flatpak version of flatpak-builder (org.flatpak.Builder) and the way it seems to work is that any error that could occur during the compilation would also print about needing to add flathub.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

using org.flatpak.Builder is an obvious change yeah, i wrote this on ublue where it is installed on the host


# https://github.com/flatpak/flatpak/issues/5076
# on debian stable flatpak inside container, cannot install without setting
# session env due to lack of d-bus system bus to connect to parental controls api (?!!!)
# set FLATPAK_SYSTEM_HELPER_ON_SESSION=1
flatpak-install:
flatpak install $(FLATPAK_INSTALL_FLAGS) $(FLATPAK_REPO) $(FLATPAK_ID) $(FLATPAK_ID).Debug

.PHONY: flatpak flatpak-install
25 changes: 25 additions & 0 deletions src/installer/flatpak/_flatpak.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
install(TARGETS ${PROJECT_NAME}cli ${PROJECT_NAME}
DESTINATION "bin/")

set(VPKEDIT_MIME_TYPE_ICON_ID "${VPKEDIT_FLATPAK_ID}" CACHE INTERNAL "" FORCE)

# Desktop file
configure_file(
"${CMAKE_CURRENT_LIST_DIR}/desktop.in"
"${CMAKE_CURRENT_LIST_DIR}/generated/${VPKEDIT_FLATPAK_ID}.desktop")
install(FILES "${CMAKE_CURRENT_LIST_DIR}/generated/${VPKEDIT_FLATPAK_ID}.desktop"
DESTINATION "share/applications/")
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/branding/logo.png"
DESTINATION "share/pixmaps/"
RENAME "${PROJECT_NAME}.png")
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/branding/logo.png"
DESTINATION "share/icons/hicolor/128x128/apps/"
RENAME "${VPKEDIT_FLATPAK_ID}.png")

# MIME type info
configure_file(
"${CMAKE_CURRENT_LIST_DIR}/../linux/mime-type.xml.in"
"${CMAKE_CURRENT_LIST_DIR}/generated/mime-type.xml")
install(FILES "${CMAKE_CURRENT_LIST_DIR}/generated/mime-type.xml"
DESTINATION "share/mime/packages/"
RENAME "${VPKEDIT_FLATPAK_ID}.xml")
10 changes: 10 additions & 0 deletions src/installer/flatpak/desktop.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[Desktop Entry]
Name=${PROJECT_NAME_PRETTY}
Comment=${PROJECT_DESCRIPTION}
Exec=${PROJECT_NAME} %f
Icon=${VPKEDIT_MIME_TYPE_ICON_ID}
Terminal=false
Type=Application
Categories=Game
MimeType=application/x-vpkedit-007;application/x-vpkedit-bee-pack;application/x-vpkedit-bmz;application/x-vpkedit-bsp;application/x-vpkedit-fpk;application/x-vpkedit-fpx;application/x-vpkedit-gcf;application/x-vpkedit-gma;application/x-vpkedit-hog;application/x-vpkedit-ol;application/x-vpkedit-ore;application/x-vpkedit-pak;application/x-vpkedit-pck;application/x-vpkedit-vpk;application/x-vpkedit-vpp;application/x-dmx;application/x-mdl;image/x-ppl;image/x-tth;image/x-ttz;image/x-vtf;
PrefersNonDefaultGPU=true
28 changes: 28 additions & 0 deletions src/installer/flatpak/info.craftablescience.vpkedit.Devel.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
"$schema": "https://raw.githubusercontent.com/flatpak/flatpak-builder/main/data/flatpak-manifest.schema.json"
id: info.craftablescience.vpkedit.Devel
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't be better using the name capitalized? info.craftablescience.VPKEdit

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

uppercased rDNS names are harder to tab complete which upsets me to no end

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's more correct but ultimately doesn't matter, up to you or craftablescience

runtime: org.kde.Platform
runtime-version: "6.8"
sdk: org.kde.Sdk
command: vpkedit
finish-args:
- "--socket=wayland"
- "--socket=fallback-x11"
- "--filesystem=host"
- "--env=QT_QPA_PLATFORMTHEME=kde"
Comment on lines +7 to +11
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know the current model of flatpak and portals doesn't work much in favor of how vpkedit gets split vpk, but i don't think it's a good idea to have access to host. I would prefer something like home but still not ideal, and for certain cases it wouldn't work ootb but for now its fine.

I don't think QT_QPA_PLATFORMTHEME=kde is needed and if this is gonna be on flathub it probably will be call out.

Other than that there's a couple of missing args like --device=dri and --share=ipc which is generally used.

modules:
- name: vpkedit
buildsystem: cmake-ninja
build-options:
build-args:
- "--share=network"
Comment on lines +16 to +17
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Following about being on flathub, you cannot build with network permission, since this is a development manifest there's no problem but just saying. Also, vpkedit even needs internet to build?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

one of the dependencies git-clones another dependency in a certified C++ build systems moment

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh i see, that's annoying but we should be able to workaround downloading ahead of time and placing where its expect to be hopefully

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its all using cmake's FetchContent, so if the repos are precloned in the places it expects to find them it should build without internet

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i thought it was only one dependency that require this but found out it isn't and also couldn't figure it out where to put it to the build process automatically use instead of trying to download

but well, i continued to do stuff and just enabled network in the meantime, but then one of the dependencies i can't download and now tbh i don't know what to do
fatal: unable to access 'https://sourceware.org/git/bzip2.git/': Could not resolve host: sourceware.org

sourcepp seems to be a little finicky to build in flatpak and would require a lot of maintenance to keep everything updated, so instead of trying to compile, would be good to just download a compiled version? this would need help to distribute the library and to use in the app which i don't know enough to it myself

another option i see is just skipping building in flatpak and just extracting the release packages, far from ideal but it should work

any thoughts?

Copy link
Owner

@craftablescience craftablescience Apr 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think hosting precompiled binaries that the flatpak links to is a workable idea. If VPKEdit is changed to use these binaries for every platform, it would also save a lot of time building locally and in CI. I'll need to do some setup on the sourcepp end to make an auto-release button first ofc.

I was planning to set up releases at some point regardless to distribute the C wrapper dlls without the end user needing to compile the library.

Of course on the flip side I also think that building the VPKEdit flatpak without sourcepp prebuilt is also workable and might even be easier once the FetchContent stuff is resolved. That error you're getting with bzip2 might be because it's cloning multiple copies at the same time? Or sourceforge is just unreliable... if its unsolvable there is a CMake option to disable bzip2 compression support.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps it's possible to build it as a module inside the KDE SDK for the flatpak builder and then bring it into the build afterwards? This would mean that there is no ABI drift

Copy link

@ghost ghost Apr 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That error you're getting with bzip2 might be because it's cloning multiple copies at the same time? Or sourceforge is just unreliable... if its unsolvable there is a CMake option to disable bzip2 compression support.

i think you mean sourceware.org (which i never heard before) but i really can't access the domain at all for some reason, wonder what could break without bzip2 or any other dependency on the list

Perhaps it's possible to build it as a module inside the KDE SDK for the flatpak builder and then bring it into the build afterwards? This would mean that there is no ABI drift

i don't think i'm following what you saying, can explain wdym?

Copy link
Author

@lina-bh lina-bh Apr 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One of the benefits of containerisation is having a consistent set of libraries to build against, getting around the DLL Hell that mixing and matching ABIs and libraries from different distributions can cause.

This is why shipping Qt shared objects inside tarballs for Linux apps kind of gives me the willies. We're not Windows, we don't really have stable ABI guarantees since we got used to being able to rebuild things at will, usually by our distribution, but Flatpak is a concession after learning that doesn't scale.

It should be possible to create an artifact that contains the binaries for the dependencies that ask for network access, then import that artifact into a sandboxed build for Flathub, without the build system for VPKEdit needing network access. All the while matching the SDK environment so that everything is consistent.

sourceware.org is Red Hat (ex-Cygnus Solutions). It appears the HTTP redirect is broken for the site though

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah but i just ended up got it working after a little help and inspiration from the nix package, also there's the detail that compiling together helps to compile for another architectures.

About the sourceware.org, i was using cloudflare dns which for some reason couldn't access so i just changed.

Extrapolated a bit but now only has some more things to do like metainfo and testing to make sure everything works.

config-opts:
- "-Wno-dev"
- "-DCMAKE_BUILD_TYPE=Release"
- "-DVPKEDIT_USE_LTO=ON"
- "-DVPKEDIT_BUILD_INSTALLER=OFF"
- "-DVPKEDIT_BUILD_FLATPAK=ON"
- "-DVPKEDIT_FLATPAK_ID=info.craftablescience.vpkedit.Devel"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You don't really need to specify, you can just use the env FLATPAK_ID internally.

builddir: true
sources:
- type: dir
path: ../../..
4 changes: 2 additions & 2 deletions src/installer/linux/desktop.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ Version=${PROJECT_VERSION}
Name=${PROJECT_NAME_PRETTY}
Comment=${PROJECT_DESCRIPTION}
Exec=/opt/${PROJECT_NAME}/${PROJECT_NAME} %f
Icon=${PROJECT_NAME}
Icon=${VPKEDIT_MIME_TYPE_ICON_ID}
Terminal=false
Type=Application
Categories=Qt;Development;Utility;
MimeType=application/x-vpkedit-bmz;application/x-vpkedit-bsp;application/x-vpkedit-fpx;application/x-vpkedit-gcf;application/x-vpkedit-gma;application/x-vpkedit-grp;application/x-vpkedit-pak;application/x-vpkedit-pck;application/x-vpkedit-vpk;application/x-dmx;application/x-ppl;application/x-mdl;image/x-vtf;
MimeType=application/x-vpkedit-007;application/x-vpkedit-bee-pack;application/x-vpkedit-bmz;application/x-vpkedit-bsp;application/x-vpkedit-fpk;application/x-vpkedit-fpx;application/x-vpkedit-gcf;application/x-vpkedit-gma;application/x-vpkedit-hog;application/x-vpkedit-ol;application/x-vpkedit-ore;application/x-vpkedit-pak;application/x-vpkedit-pck;application/x-vpkedit-vpk;application/x-vpkedit-vpp;application/x-dmx;application/x-mdl;image/x-ppl;image/x-tth;image/x-ttz;image/x-vtf;
PrefersNonDefaultGPU=true
X-KDE-RunOnDiscreteGpu=true
34 changes: 17 additions & 17 deletions src/installer/linux/mime-type.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-vpkedit-007">
<comment>007 - Nightfire Asset Pack</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>007</acronym>
<expanded-acronym>Double-Oh Seven</expanded-acronym>
<glob-deleteall/>
<glob pattern="*.007"/>
</mime-type>
<mime-type type="application/x-vpkedit-bee-pack">
<comment>BEE2.4 Package</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>BMZ</acronym>
<expanded-acronym>Bonus Map Zip</expanded-acronym>
<glob-deleteall/>
Expand All @@ -19,7 +19,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-bmz">
<comment>Bonus Map Zip</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>BMZ</acronym>
<expanded-acronym>Bonus Map Zip</expanded-acronym>
<glob-deleteall/>
Expand All @@ -28,7 +28,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-bsp">
<comment>Source Map File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>BSP</acronym>
<expanded-acronym>Binary Space Partitioning</expanded-acronym>
<glob-deleteall/>
Expand All @@ -37,23 +37,23 @@
</mime-type>
<mime-type type="application/x-vpkedit-fpk">
<comment>Tactical Intervention Pack File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>FPK</acronym>
<glob-deleteall/>
<glob pattern="*.fpk"/>
<glob pattern="*.FPK"/>
</mime-type>
<mime-type type="application/x-vpkedit-fpx">
<comment>Tactical Intervention Pack File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>FPX</acronym>
<glob-deleteall/>
<glob pattern="*.fpx"/>
<glob pattern="*.FPX"/>
</mime-type>
<mime-type type="application/x-vpkedit-gcf">
<comment>Game Cache File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>GCF</acronym>
<expanded-acronym>Game Cache File</expanded-acronym>
<glob-deleteall/>
Expand All @@ -62,7 +62,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-gma">
<comment>Garry's Mod Addon</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>GMA</acronym>
<expanded-acronym>Garry's Mod Addon</expanded-acronym>
<glob-deleteall/>
Expand All @@ -71,7 +71,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-hog">
<comment>Hog Pack File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>HOG</acronym>
<expanded-acronym>Hog Pack File</expanded-acronym>
<glob-deleteall/>
Expand All @@ -80,7 +80,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-ol">
<comment>Worldcraft Object Library</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>OL</acronym>
<expanded-acronym>Worldcraft Object Library</expanded-acronym>
<glob-deleteall/>
Expand All @@ -89,7 +89,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-ore">
<comment>Narbacular Drop Pack File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>ORE</acronym>
<expanded-acronym>Narbacular Drop Pack File</expanded-acronym>
<glob-deleteall/>
Expand All @@ -98,7 +98,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-pak">
<comment>Pack File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>PAK</acronym>
<expanded-acronym>Pack File</expanded-acronym>
<glob-deleteall/>
Expand All @@ -107,7 +107,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-pck">
<comment>Godot Pack File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>PCK</acronym>
<expanded-acronym>Godot Pack File</expanded-acronym>
<glob-deleteall/>
Expand All @@ -116,7 +116,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-vpk">
<comment>Valve Pack File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>VPK</acronym>
<expanded-acronym>Valve Pack File</expanded-acronym>
<glob-deleteall/>
Expand All @@ -125,7 +125,7 @@
</mime-type>
<mime-type type="application/x-vpkedit-vpp">
<comment>Volition Pack File</comment>
<icon name="application-x-vpkedit"/>
<icon name="${VPKEDIT_MIME_TYPE_ICON_ID}"/>
<acronym>VPP</acronym>
<expanded-acronym>Volition Pack File</expanded-acronym>
<glob-deleteall/>
Expand All @@ -150,9 +150,9 @@
<glob pattern="*.mdl"/>
<glob pattern="*.MDL"/>
</mime-type>
<mime-type type="application/x-ppl">
<mime-type type="image/x-ppl">
<comment>Prop Lightmap</comment>
<icon name="application-x-ppl"/>
<icon name="image-x-ppl"/>
<acronym>PPL</acronym>
<expanded-acronym>Prop Lightmap</expanded-acronym>
<glob-deleteall/>
Expand Down
Loading