diff --git a/srcpkgs/endless-sky/patches/paths.patch b/srcpkgs/endless-sky/patches/paths.patch index e80095b88ef..36029192f4b 100644 --- a/srcpkgs/endless-sky/patches/paths.patch +++ b/srcpkgs/endless-sky/patches/paths.patch @@ -1,6 +1,8 @@ +We need to patch for PREFIX and s/games/bin anyway, +let's patch $DESTDIR, too --- a/SConstruct +++ b/SConstruct -@@ -41,7 +41,7 @@ +@@ -37,7 +37,7 @@ opts.AddVariables( PathVariable("BUILDDIR", "Directory to store compiled object files in", "build", PathVariable.PathIsDirCreate), PathVariable("BIN_DIR", "Directory to store binaries in", ".", PathVariable.PathIsDirCreate), PathVariable("DESTDIR", "Destination root directory, e.g. if building a package", "", PathVariable.PathAccept), @@ -9,12 +11,72 @@ ) opts.Update(env) Help(opts.GenerateHelpText(env)) -@@ -150,7 +150,7 @@ +@@ -157,22 +157,22 @@ env.AlwaysBuild("test") # Install the binary: -env.Install("$DESTDIR$PREFIX/games", sky) -+env.Install("$DESTDIR$PREFIX/bin", sky) ++install = env.Install("$PREFIX/bin", sky) # Install the desktop file: - env.Install("$DESTDIR$PREFIX/share/applications", "endless-sky.desktop") +-env.Install("$DESTDIR$PREFIX/share/applications", "endless-sky.desktop") ++install += env.Install("$PREFIX/share/applications", "endless-sky.desktop") + + # Install app center metadata: +-env.Install("$DESTDIR$PREFIX/share/appdata", "endless-sky.appdata.xml") ++install += env.Install("$PREFIX/share/appdata", "endless-sky.appdata.xml") + + # Install icons, keeping track of all the paths. + # Most Ubuntu apps supply 16, 22, 24, 32, 48, and 256, and sometimes others. + sizes = ["16x16", "22x22", "24x24", "32x32", "48x48", "128x128", "256x256", "512x512"] + icons = [] + for size in sizes: +- destination = "$DESTDIR$PREFIX/share/icons/hicolor/" + size + "/apps/endless-sky.png" ++ destination = "$PREFIX/share/icons/hicolor/" + size + "/apps/endless-sky.png" + icons.append(destination) +- env.InstallAs(destination, "icons/icon_" + size + ".png") ++ install += env.InstallAs(destination, "icons/icon_" + size + ".png") + + # If any of those icons changed, also update the cache. + # Do not update the cache if we're not installing into "usr". +@@ -181,28 +181,30 @@ if env.get("PREFIX").startswith("/usr/") + env.Command( + [], + icons, +- "gtk-update-icon-cache -t $DESTDIR$PREFIX/share/icons/hicolor/") ++ "gtk-update-icon-cache -t $PREFIX/share/icons/hicolor/") + + # Install the man page. + env.Command( +- "$DESTDIR$PREFIX/share/man/man6/endless-sky.6.gz", ++ "$PREFIX/share/man/man6/endless-sky.6.gz", + "endless-sky.6", + "gzip -c $SOURCE > $TARGET") + + # Install the data files. + def RecursiveInstall(env, target, source): + rootIndex = len(env.Dir(source).abspath) + 1 ++ install = [] + for node in env.Glob(pathjoin(source, '*')): + if node.isdir(): + name = node.abspath[rootIndex:] +- RecursiveInstall(env, pathjoin(target, name), node.abspath) ++ install += RecursiveInstall(env, pathjoin(target, name), node.abspath) + else: +- env.Install(target, node) +-RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/data", "data") +-RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/images", "images") +-RecursiveInstall(env, "$DESTDIR$PREFIX/share/games/endless-sky/sounds", "sounds") +-env.Install("$DESTDIR$PREFIX/share/games/endless-sky", "credits.txt") +-env.Install("$DESTDIR$PREFIX/share/games/endless-sky", "keys.txt") ++ install += env.Install(target, node) ++ return install ++install += RecursiveInstall(env, "$PREFIX/share/games/endless-sky/data", "data") ++install += RecursiveInstall(env, "$PREFIX/share/games/endless-sky/images", "images") ++install += RecursiveInstall(env, "$PREFIX/share/games/endless-sky/sounds", "sounds") ++install += env.Install("$PREFIX/share/games/endless-sky", "credits.txt") ++install += env.Install("$PREFIX/share/games/endless-sky", "keys.txt") + + # Make the word "install" in the command line do an installation. +-env.Alias("install", "$DESTDIR$PREFIX") ++env.Alias("install", install)