commit:     49e5e31aabe16db2ee990d5e50701905ae2b4938
Author:     NP-Hardass <NP-Hardass <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  8 15:17:55 2016 +0000
Commit:     NP Hardass <np-hardass <AT> gentoo <DOT> org>
CommitDate: Mon Dec 12 14:50:45 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=49e5e31a

games-puzzle/sgt-puzzles: Large changeset, fixes #593480

Drop games eclass support
Bump to EAPI=6
Rename binaries to avoid filename collisions
Sort xdg menu entries
In app help options
Various ebuild improvements

Package-Manager: portage-2.3.0

 games-puzzle/sgt-puzzles/Manifest                  |   1 +
 .../files/sgt-puzzles-20161207-builtin-help.patch  | 107 +++++++++++++++++++++
 .../sgt-puzzles/files/sgt-puzzles.directory        |   4 +
 games-puzzle/sgt-puzzles/files/sgt-puzzles.menu    |  18 ++++
 ...99999999.ebuild => sgt-puzzles-20161207.ebuild} |  67 +++++++------
 .../sgt-puzzles/sgt-puzzles-99999999.ebuild        |  67 +++++++------
 6 files changed, 204 insertions(+), 60 deletions(-)

diff --git a/games-puzzle/sgt-puzzles/Manifest 
b/games-puzzle/sgt-puzzles/Manifest
index 2550a33..c45233c 100644
--- a/games-puzzle/sgt-puzzles/Manifest
+++ b/games-puzzle/sgt-puzzles/Manifest
@@ -1,2 +1,3 @@
 DIST puzzles-20160315.c0bc13c.tar.gz 2838135 SHA256 
fc557d3a1021a1e56ae63589d08788a8ccdfa1772e4c74cbbade5fefcf4e691f SHA512 
9317ab26605982d5a97cec57596bd3e75cb1cb93b2bc14f6f295cf3950a759b21c5262e3eb04a3c3cda1d3d1cf4ff9477ee7fac9d310558567714e8e1cfc3496
 WHIRLPOOL 
7cc52ecabbfda7f71c64c02cc4ca434a20e637e25754d00b3f397318d0dd120aaf7ea19faafbb7eee259b7c2ca91e8e396d7667e4b1fa7fc6a153f15a69fb52f
+DIST puzzles-20161207.b958129.tar.gz 2897516 SHA256 
d8b93252c06a1fb25e0888e67b9e92a435a02fc746c89149e9cff77b44760ec3 SHA512 
d937ebcf9aa7d4aa603a5ffec8bb2b3c533df855718288d380072b5e2518ed791eb5b23388c489e31decc9c25ef6a7b42b26fae5b76f1e75df246487d05a8d78
 WHIRLPOOL 
06f98af4e476421d3a6207f98de0851cdf4dae3446568c10808326acde24de8b54afb03c3667bef88ebdd3fba1d693993a64c0f2d6a2eeb8e43ff2ca32dc2c50
 DIST sgt-puzzles-icons-20160315.tar.xz 715536 SHA256 
9ddc1b6d02b3c3358a9bc6b17c7070650f794cf5f650f25b2ac7e5def6674447 SHA512 
2fe2c02984eb8c36ac6fb4195be7895b336b84f40ce8baeb23dc8a32aca9937ccf1d33050b4da3cfba3c87e124ecbdd940ee4e990b37eabe8e2af897c2e23b57
 WHIRLPOOL 
17bdadc9519320bc88af27f2db7a9c243f04d80e524db51ad9398831185e2c66f2430006c324fa7d5b70ce156cb9df93d9405216053b32101b5f56035a60f6ac

diff --git 
a/games-puzzle/sgt-puzzles/files/sgt-puzzles-20161207-builtin-help.patch 
b/games-puzzle/sgt-puzzles/files/sgt-puzzles-20161207-builtin-help.patch
new file mode 100644
index 00000000..a5c3a36
--- /dev/null
+++ b/games-puzzle/sgt-puzzles/files/sgt-puzzles-20161207-builtin-help.patch
@@ -0,0 +1,107 @@
+Based on 
http://sources.debian.net/patches/sgt-puzzles/20160429.b31155b-1/202_online-help.diff/
+Simply opens HTML help files with xdg-open
+
+Author: Ben Hutchings <b...@decadent.org.uk>
+Description: Add HTML-based online help
+
+This works along the same lines as the Windows implementation,
+though we have to try a bit harder to find a help browser.
+
+--- a/gtk.c    2016-12-08 07:53:06.812409184 -0500
++++ b/gtk.c    2016-12-08 07:58:06.426415886 -0500
+@@ -2,6 +2,10 @@
+  * gtk.c: GTK front end for my puzzle collection.
+  */
+ 
++#ifndef _POSIX_C_SOURCE
++#define _POSIX_C_SOURCE 1 /* for PATH_MAX */
++#endif
++
+ #include <stdio.h>
+ #include <assert.h>
+ #include <stdlib.h>
+@@ -10,6 +14,9 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <math.h>
++#include <limits.h>
++#include <unistd.h>
++#include <locale.h>
+ 
+ #include <sys/time.h>
+ #include <sys/resource.h>
+@@ -2270,6 +2277,37 @@
+     resize_fe(fe);
+ }
+ 
++static void show_help(frontend *fe, const char *topic)
++{
++    char path[PATH_MAX + 1];
++
++    sprintf(path, "%s/%s.html", HTMLDIR, topic);
++    if (access(path, R_OK) != 0) {
++        error_box(fe->window, "Help file could not be found");
++        return;
++    }
++
++    const char *argv[3];
++
++    argv[0] = "xdg-open";
++    argv[1] = path;
++    argv[2] = NULL;
++    if (! g_spawn_async(NULL, (char **)argv, NULL,
++                      G_SPAWN_SEARCH_PATH,
++                      NULL, NULL, NULL, NULL))
++        error_box(fe->window, "Failed to open help file");
++}
++
++static void menu_help_contents_event(GtkMenuItem *menuitem, gpointer data)
++{
++    show_help((frontend *)data, "index");
++}
++
++static void menu_help_specific_event(GtkMenuItem *menuitem, gpointer data)
++{
++    show_help((frontend *)data, thegame.htmlhelp_topic);
++}
++
+ static void menu_about_event(GtkMenuItem *menuitem, gpointer data)
+ {
+     frontend *fe = (frontend *)data;
+@@ -2590,6 +2628,25 @@
+     menu = gtk_menu_new();
+     gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), menu);
+ 
++    menuitem = gtk_menu_item_new_with_label("Contents");
++    gtk_container_add(GTK_CONTAINER(menu), menuitem);
++    g_signal_connect(G_OBJECT(menuitem), "activate",
++                     G_CALLBACK(menu_help_contents_event), fe);
++    gtk_widget_show(menuitem);
++
++    if (thegame.htmlhelp_topic) {
++        char *item;
++        assert(thegame.name);
++        item = snewn(9+strlen(thegame.name), char); /*ick*/
++        sprintf(item, "Help on %s", thegame.name);
++        menuitem = gtk_menu_item_new_with_label(item);
++        sfree(item);
++        gtk_container_add(GTK_CONTAINER(menu), menuitem);
++        g_signal_connect(G_OBJECT(menuitem), "activate",
++                         G_CALLBACK(menu_help_specific_event), fe);
++        gtk_widget_show(menuitem);
++    }
++
+     menuitem = gtk_menu_item_new_with_label("About");
+     gtk_container_add(GTK_CONTAINER(menu), menuitem);
+     g_signal_connect(G_OBJECT(menuitem), "activate",
+--- a/Recipe
++++ b/Recipe
+@@ -95,6 +95,7 @@ Puzzles.dmg: Puzzles
+
+ !begin am
+ bin_PROGRAMS = $(GAMES)
++GTK_CFLAGS += -DHTMLDIR="\"$(htmldir)\""
+ !end
+ !begin am_begin
+ GAMES =
+

diff --git a/games-puzzle/sgt-puzzles/files/sgt-puzzles.directory 
b/games-puzzle/sgt-puzzles/files/sgt-puzzles.directory
new file mode 100644
index 00000000..25aa1ae
--- /dev/null
+++ b/games-puzzle/sgt-puzzles/files/sgt-puzzles.directory
@@ -0,0 +1,4 @@
+[Desktop Entry]
+Type=Directory
+Name=Puzzles
+Icon=sgt-puzzles_map

diff --git a/games-puzzle/sgt-puzzles/files/sgt-puzzles.menu 
b/games-puzzle/sgt-puzzles/files/sgt-puzzles.menu
new file mode 100644
index 00000000..ddcb2df
--- /dev/null
+++ b/games-puzzle/sgt-puzzles/files/sgt-puzzles.menu
@@ -0,0 +1,18 @@
+<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
+"http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd";>
+<Menu>
+  <Name>Applications</Name>
+  <Menu>
+    <Name>Games</Name>
+    <Menu>
+      <Name>Puzzles</Name>
+      <Directory>sgt-puzzles.directory</Directory>
+      <Include>
+       <And>
+         <All></All>
+          <Category>sgt-puzzles</Category>
+       </And>
+      </Include>
+    </Menu> <!-- End Puzzles -->
+  </Menu> <!-- End Games -->
+</Menu> <!-- End Applications -->

diff --git a/games-puzzle/sgt-puzzles/sgt-puzzles-99999999.ebuild 
b/games-puzzle/sgt-puzzles/sgt-puzzles-20161207.ebuild
similarity index 57%
copy from games-puzzle/sgt-puzzles/sgt-puzzles-99999999.ebuild
copy to games-puzzle/sgt-puzzles/sgt-puzzles-20161207.ebuild
index 6f1a68d..7f49fa3 100644
--- a/games-puzzle/sgt-puzzles/sgt-puzzles-99999999.ebuild
+++ b/games-puzzle/sgt-puzzles/sgt-puzzles-20161207.ebuild
@@ -2,49 +2,54 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=5
+EAPI=6
 
-inherit eutils gnome2-utils toolchain-funcs games autotools
+inherit eutils gnome2-utils toolchain-funcs autotools
 
 if [[ ${PV} == "99999999" ]] ; then
-       EGIT_REPO_URI="git://git.tartarus.org/simon/puzzles.git"
        inherit git-r3
-       SRC_URI=""
+       EGIT_REPO_URI="git://git.tartarus.org/simon/puzzles.git"
+       GENTOO_ICONS="20160315"
+       
SRC_URI="https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${PN}-icons-${GENTOO_ICONS}.tar.xz";
        KEYWORDS=""
 else
-       MAGIC=c0bc13c
+       MAGIC=b958129
        
SRC_URI="http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${PV}.${MAGIC}.tar.gz";
        S=${WORKDIR}/puzzles-${PV}.${MAGIC}
        KEYWORDS="~amd64 ~x86"
 fi
 
-GENTOO_ICONS="20160315"
-SRC_URI="${SRC_URI}
-       
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${PN}-icons-${GENTOO_ICONS}.tar.xz
-"
-
 DESCRIPTION="Simon Tatham's Portable Puzzle Collection"
 HOMEPAGE="http://www.chiark.greenend.org.uk/~sgtatham/puzzles/";
 
 LICENSE="MIT"
 SLOT="0"
-IUSE="doc gtk3 icons"
+IUSE="+doc gtk3"
 
-RDEPEND="
+COMMON_DEPEND="
        !gtk3? ( x11-libs/gtk+:2 )
-       gtk3? ( x11-libs/gtk+:3 )
-"
-DEPEND="${RDEPEND}
+       gtk3? ( x11-libs/gtk+:3 )"
+
+RDEPEND="${COMMON_DEPEND}
+       x11-misc/xdg-utils" # Used by builtin help patch
+
+DEPEND="${COMMON_DEPEND}
        dev-lang/perl
        virtual/pkgconfig
        doc? ( >=app-doc/halibut-1.0 )"
 
+PATCHES=( "${FILESDIR}/${PN}-20161207-builtin-help.patch" )
+
 src_unpack() {
-       [[ ${PV} == "99999999" ]] && git-r3_src_unpack
-       unpack ${A}
+       default
+       if [[ ${PV} == "99999999" ]]; then
+               git-r3_src_unpack
+       fi
 }
 
 src_prepare() {
+       default
+
        sed -i \
                -e 's/-O2 -Wall -Werror -ansi -pedantic -g//' \
                -e "s/libstr =/libstr = '\$(LDFLAGS) ' ./" \
@@ -52,14 +57,16 @@ src_prepare() {
        ./mkfiles.pl || die
        eautoreconf
 
-       # Import icons from latest Gentoo tarball
-       if [[ ${PV} == "99999999" ]] || use icons; then
+       # Import icons from latest Gentoo tarball for live
+       if [[ ${PV} == "99999999" ]]; then
                cp -R ../${PN}-icons/icons . || die
        fi
 }
 
 src_configure() {
-       econf --with-gtk=$(usex gtk3 3 2)
+       econf \
+               --program-prefix="${PN}_" \
+               --with-gtk=$(usex gtk3 3 2)
 }
 
 src_compile() {
@@ -70,35 +77,35 @@ src_compile() {
 }
 
 src_install() {
-       dodir "${GAMES_BINDIR}"
-       emake DESTDIR="${D}" bindir="${GAMES_BINDIR}" install
-       dodoc README
+       default
 
        local file name
        for file in *.R ; do
                [[ ${file} == "nullgame.R" ]] && continue
                name=$(awk -F: '/exe:/ { print $3 }' "${file}")
                file=${file%.R}
-               newicon -s 48 icons/${file}-48d24.png ${PN}-${file}.png
-               make_desktop_entry "${GAMES_BINDIR}/${file}" "${name}" 
"${PN}-${file}"
+               newicon -s 48 icons/${file}-48d24.png ${PN}_${file}.png
+               make_desktop_entry "${PN}_${file}" "${name}" "${PN}_${file}" 
"Game;LogicGame;${PN};"
        done
 
        if use doc ; then
-               dohtml *.html
+               DOCS=( puzzles.{pdf,ps,txt} )
+               HTML_DOCS=( *.html )
+               einstalldocs
                doinfo puzzles.info{,-1,-2,-3}
-               dodoc puzzles.pdf puzzles.ps puzzles.txt
        fi
 
-       prepgamesdirs
+       insinto /etc/xdg/menus/applications-merged
+       doins "${FILESDIR}/${PN}.menu"
+       insinto /usr/share/desktop-directories
+       doins "${FILESDIR}/${PN}.directory"
 }
 
 pkg_preinst() {
-       games_pkg_preinst
        gnome2_icon_savelist
 }
 
 pkg_postinst() {
-       games_pkg_postinst
        gnome2_icon_cache_update
 }
 

diff --git a/games-puzzle/sgt-puzzles/sgt-puzzles-99999999.ebuild 
b/games-puzzle/sgt-puzzles/sgt-puzzles-99999999.ebuild
index 6f1a68d..7f49fa3 100644
--- a/games-puzzle/sgt-puzzles/sgt-puzzles-99999999.ebuild
+++ b/games-puzzle/sgt-puzzles/sgt-puzzles-99999999.ebuild
@@ -2,49 +2,54 @@
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI=5
+EAPI=6
 
-inherit eutils gnome2-utils toolchain-funcs games autotools
+inherit eutils gnome2-utils toolchain-funcs autotools
 
 if [[ ${PV} == "99999999" ]] ; then
-       EGIT_REPO_URI="git://git.tartarus.org/simon/puzzles.git"
        inherit git-r3
-       SRC_URI=""
+       EGIT_REPO_URI="git://git.tartarus.org/simon/puzzles.git"
+       GENTOO_ICONS="20160315"
+       
SRC_URI="https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${PN}-icons-${GENTOO_ICONS}.tar.xz";
        KEYWORDS=""
 else
-       MAGIC=c0bc13c
+       MAGIC=b958129
        
SRC_URI="http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${PV}.${MAGIC}.tar.gz";
        S=${WORKDIR}/puzzles-${PV}.${MAGIC}
        KEYWORDS="~amd64 ~x86"
 fi
 
-GENTOO_ICONS="20160315"
-SRC_URI="${SRC_URI}
-       
https://dev.gentoo.org/~np-hardass/distfiles/${PN}/${PN}-icons-${GENTOO_ICONS}.tar.xz
-"
-
 DESCRIPTION="Simon Tatham's Portable Puzzle Collection"
 HOMEPAGE="http://www.chiark.greenend.org.uk/~sgtatham/puzzles/";
 
 LICENSE="MIT"
 SLOT="0"
-IUSE="doc gtk3 icons"
+IUSE="+doc gtk3"
 
-RDEPEND="
+COMMON_DEPEND="
        !gtk3? ( x11-libs/gtk+:2 )
-       gtk3? ( x11-libs/gtk+:3 )
-"
-DEPEND="${RDEPEND}
+       gtk3? ( x11-libs/gtk+:3 )"
+
+RDEPEND="${COMMON_DEPEND}
+       x11-misc/xdg-utils" # Used by builtin help patch
+
+DEPEND="${COMMON_DEPEND}
        dev-lang/perl
        virtual/pkgconfig
        doc? ( >=app-doc/halibut-1.0 )"
 
+PATCHES=( "${FILESDIR}/${PN}-20161207-builtin-help.patch" )
+
 src_unpack() {
-       [[ ${PV} == "99999999" ]] && git-r3_src_unpack
-       unpack ${A}
+       default
+       if [[ ${PV} == "99999999" ]]; then
+               git-r3_src_unpack
+       fi
 }
 
 src_prepare() {
+       default
+
        sed -i \
                -e 's/-O2 -Wall -Werror -ansi -pedantic -g//' \
                -e "s/libstr =/libstr = '\$(LDFLAGS) ' ./" \
@@ -52,14 +57,16 @@ src_prepare() {
        ./mkfiles.pl || die
        eautoreconf
 
-       # Import icons from latest Gentoo tarball
-       if [[ ${PV} == "99999999" ]] || use icons; then
+       # Import icons from latest Gentoo tarball for live
+       if [[ ${PV} == "99999999" ]]; then
                cp -R ../${PN}-icons/icons . || die
        fi
 }
 
 src_configure() {
-       econf --with-gtk=$(usex gtk3 3 2)
+       econf \
+               --program-prefix="${PN}_" \
+               --with-gtk=$(usex gtk3 3 2)
 }
 
 src_compile() {
@@ -70,35 +77,35 @@ src_compile() {
 }
 
 src_install() {
-       dodir "${GAMES_BINDIR}"
-       emake DESTDIR="${D}" bindir="${GAMES_BINDIR}" install
-       dodoc README
+       default
 
        local file name
        for file in *.R ; do
                [[ ${file} == "nullgame.R" ]] && continue
                name=$(awk -F: '/exe:/ { print $3 }' "${file}")
                file=${file%.R}
-               newicon -s 48 icons/${file}-48d24.png ${PN}-${file}.png
-               make_desktop_entry "${GAMES_BINDIR}/${file}" "${name}" 
"${PN}-${file}"
+               newicon -s 48 icons/${file}-48d24.png ${PN}_${file}.png
+               make_desktop_entry "${PN}_${file}" "${name}" "${PN}_${file}" 
"Game;LogicGame;${PN};"
        done
 
        if use doc ; then
-               dohtml *.html
+               DOCS=( puzzles.{pdf,ps,txt} )
+               HTML_DOCS=( *.html )
+               einstalldocs
                doinfo puzzles.info{,-1,-2,-3}
-               dodoc puzzles.pdf puzzles.ps puzzles.txt
        fi
 
-       prepgamesdirs
+       insinto /etc/xdg/menus/applications-merged
+       doins "${FILESDIR}/${PN}.menu"
+       insinto /usr/share/desktop-directories
+       doins "${FILESDIR}/${PN}.directory"
 }
 
 pkg_preinst() {
-       games_pkg_preinst
        gnome2_icon_savelist
 }
 
 pkg_postinst() {
-       games_pkg_postinst
        gnome2_icon_cache_update
 }
 

Reply via email to