diff --git a/dev-util/codespell/Manifest b/dev-util/codespell/Manifest
index 711939d4ba..fbbb8a9794 100644
--- a/dev-util/codespell/Manifest
+++ b/dev-util/codespell/Manifest
@@ -1,2 +1,2 @@
-DIST codespell-1.17.1.tar.gz 164357 BLAKE2B 75ed98c694498b5445b8083c8c8a98f39b552b379111721b4a99d2b497804f47c3e06f97acb4115820459122391a75f47d4a97c1253b29136308712fb57cb5ff SHA512 5c8be2c11d44a85bc2f1eac980b6ba875f99ffefbdcf6387c798b77d030f9c6ada68e80de8192fd4bab0fe8038b1b5769c72a8ee7f9da9521b9798e6527347d3
DIST codespell-2.0.0.tar.gz 180131 BLAKE2B 9f7cf7b28f0c6981ec4c88909bee4d77dd4a35c9669a2f6aba368519ede85019b69bbbee2a83b17b5c8ca9cd197463ce13e5198a36c6e0f371b352453a82580f SHA512 ca9fc6661be77eddca1a5b3b15a72abc0506c61826487e8f50c546b923c065c6cbfb2b4c4bbace136d811e2e8cf2fe00106efcc3eb8805181ca6bd04fd4bf638
+DIST codespell-2.1.0.tar.gz 187490 BLAKE2B 6114aa3a7ad8cd37ab868a3f27f641501dd0cc5bfe80bef0aa5cad0a86f8e2bba6e1f1030d5ac6fb06f78f9e01e37359d0fc17d17eb54608060300f676d3d56c SHA512 16d9a4239ae18fad6a06825a2afae6adc903d50eb90b759cdc61b1e1d145458bbfb1385837c4465b0a9858da100be074c597343c4816ca0260bbf6710d9c84e8
diff --git a/dev-util/codespell/codespell-1.17.1.ebuild b/dev-util/codespell/codespell-2.1.0.ebuild
similarity index 91%
rename from dev-util/codespell/codespell-1.17.1.ebuild
rename to dev-util/codespell/codespell-2.1.0.ebuild
index 60c5b37cc8..03eb1e9e82 100644
--- a/dev-util/codespell/codespell-1.17.1.ebuild
+++ b/dev-util/codespell/codespell-2.1.0.ebuild
@@ -1,12 +1,11 @@
-# Copyright 1999-2020 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
+PYTHON_COMPAT=( python3_{7..9} )
DISTUTILS_USE_SETUPTOOLS=rdepend
-PYTHON_COMPAT=( python3_{7,8} )
-
inherit distutils-r1
DESCRIPTION="Check text files for common misspellings"
@@ -19,8 +18,6 @@ LICENSE="GPL-2 CC-BY-SA-3.0"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-distutils_enable_tests pytest
-
python_prepare_all() {
# do not depend on pytest-cov
sed -i -e '/addopts/d' setup.cfg || die
@@ -32,3 +29,5 @@ python_prepare_all() {
distutils-r1_python_prepare_all
}
+
+distutils_enable_tests pytest
diff --git a/games-puzzle/atris/Manifest b/games-puzzle/atris/Manifest
new file mode 100644
index 0000000000..dc64febe4f
--- /dev/null
+++ b/games-puzzle/atris/Manifest
@@ -0,0 +1,2 @@
+DIST atris-1.0.7.tar.gz 441642 BLAKE2B 1ab97d88ad768568b8b2a2f3d4d5229b05c4f934ab48afee1a45ccba970b72b4fcbcbbae6d05b39854a63af309a4bc186f5b90fbaec926d525a3bef31bc0bd42 SHA512 501632d51e5c86a13805f7501ccf2c2f6bb3e840421ac5879453a3bd2f7f9188a1a25598db0ddbad4e4ce6d747df57c1904fa84812362d5cc6597b74aadacf48
+DIST atris-sounds-1.0.1.tar.gz 653737 BLAKE2B 1de104f86490b0fc292275ab3140e60c26e46f577fa21d45f4c50d43d3f7fa55cd99b9b54340e7aaffd35edb19f31aa3e4ac93b3204eb076679c06d57250c7b3 SHA512 50f056309401a1e71cebc198e44219fca39694e031400988becb08dcfb41f91916b1f22f7a2f67d332384bb77333678cb6c00e2819ee3144e8f9fd0361f8b704
diff --git a/games-puzzle/atris/atris-1.0.7.ebuild b/games-puzzle/atris/atris-1.0.7.ebuild
new file mode 100644
index 0000000000..dc61f8b204
--- /dev/null
+++ b/games-puzzle/atris/atris-1.0.7.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop
+
+DESCRIPTION="Alizarin tetris"
+HOMEPAGE="https://www.wkiri.com/projects/atris/"
+SRC_URI="http://www.gnu-darwin.org/distfiles/${P}.tar.gz
+ http://www.gnu-darwin.org/distfiles/${PN}-sounds-1.0.1.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="doc +sound"
+DEPEND="
+ acct-group/gamestat
+ media-libs/freetype
+ media-libs/libsdl
+ media-libs/sdl-ttf
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fno-common.patch
+ "${FILESDIR}"/${P}-path-and-fullscreen.patch
+)
+
+src_install() {
+ dobin atris
+ insinto /usr/share/${PN}
+ doins -r styles graphics
+
+ if use sound; then
+ cd "${WORKDIR}"/${PN}-sounds-1.0.1
+ doins -r sounds
+ cd "${S}"
+ fi
+
+ if use doc; then
+ dodoc -a html,jpg Docs
+ fi
+ dodoc AUTHORS NEWS README
+
+ newicon icon.xpm ${PN}.xpm
+ make_desktop_entry ${PN} Atris ${PN} BlocksGame
+
+ echo "CONFIG_PROTECT=/var/games/${PN}/" > 99${PN}
+ doenvd 99${PN}
+
+ keepdir /var/games/${PN}
+ insinto /var/games/${PN}
+ doins Atris.*
+
+ fowners :gamestat /var/games/${PN}/Atris.{Players,Scores}
+ fperms 664 /var/games/${PN}/Atris.{Players,Scores}
+}
diff --git a/games-puzzle/atris/files/atris-1.0.7-fno-common.patch b/games-puzzle/atris/files/atris-1.0.7-fno-common.patch
new file mode 100644
index 0000000000..397bffc1a5
--- /dev/null
+++ b/games-puzzle/atris/files/atris-1.0.7-fno-common.patch
@@ -0,0 +1,147 @@
+diff --git a/atris.c b/atris.c
+index dbdc258..61ed4b9 100644
+--- a/atris.c
++++ b/atris.c
+@@ -48,6 +48,8 @@ static sound_style *event_ss[2];
+ static AI_Player *event_ai[2];
+ static char *event_name[2];
+ extern int Score[2];
++GT gametype;
++struct option_struct Options;
+
+ /***************************************************************************
+ * Panic()
+diff --git a/atris.h b/atris.h
+index 4dc4d5b..19cc456 100644
+--- a/atris.h
++++ b/atris.h
+@@ -67,7 +67,7 @@ typedef enum {
+ QUIT =6,
+ DEMO =7
+ } GT;
+-GT gametype;
++extern GT gametype;
+
+ #ifndef min
+ #define min(a,b) ((a)<(b)?(a):(b))
+diff --git a/display.c b/display.c
+index cbbca0d..f63f5cf 100644
+--- a/display.c
++++ b/display.c
+@@ -14,6 +14,25 @@
+
+ #include "xflame.pro"
+
++SDL_Color color_white;
++SDL_Color color_black;
++SDL_Color color_red;
++SDL_Color color_blue;
++SDL_Color color_purple;
++
++Uint32 int_black;
++Uint32 int_white;
++Uint32 int_grey;
++Uint32 int_blue;
++Uint32 int_med_blue;
++Uint32 int_dark_blue;
++Uint32 int_purple;
++Uint32 int_dark_purple;
++Uint32 int_solid_black;
++
++SDL_Surface *screen, *widget_layer, *flame_layer;
++TTF_Font *font, *sfont, *lfont, *hfont; /* normal, small , large, huge font */
++
+ struct layout_struct {
+ /* the whole board layout */
+ SDL_Rect grid_border[2];
+diff --git a/display.h b/display.h
+index db4d68a..6d71b9d 100644
+--- a/display.h
++++ b/display.h
+@@ -9,24 +9,24 @@
+
+ #include "SDL/SDL_ttf.h"
+
+-SDL_Color color_white;
+-SDL_Color color_black;
+-SDL_Color color_red;
+-SDL_Color color_blue;
+-SDL_Color color_purple;
++extern SDL_Color color_white;
++extern SDL_Color color_black;
++extern SDL_Color color_red;
++extern SDL_Color color_blue;
++extern SDL_Color color_purple;
+
+-Uint32 int_black;
+-Uint32 int_white;
+-Uint32 int_grey;
+-Uint32 int_blue;
+-Uint32 int_med_blue;
+-Uint32 int_dark_blue;
+-Uint32 int_purple;
+-Uint32 int_dark_purple;
+-Uint32 int_solid_black;
++extern Uint32 int_black;
++extern Uint32 int_white;
++extern Uint32 int_grey;
++extern Uint32 int_blue;
++extern Uint32 int_med_blue;
++extern Uint32 int_dark_blue;
++extern Uint32 int_purple;
++extern Uint32 int_dark_purple;
++extern Uint32 int_solid_black;
+
+-SDL_Surface *screen, *widget_layer, *flame_layer;
+-TTF_Font *font, *sfont, *lfont, *hfont; /* normal, small , large, huge font */
++extern SDL_Surface *screen, *widget_layer, *flame_layer;
++extern TTF_Font *font, *sfont, *lfont, *hfont; /* normal, small , large, huge font */
+
+ #define int_border_color int_grey
+ #define int_button_face1 int_dark_blue
+diff --git a/options.h b/options.h
+index 575fc1a..cf38b40 100644
+--- a/options.h
++++ b/options.h
+@@ -25,6 +25,7 @@ struct option_struct {
+ int named_sound;
+ int named_piece;
+ int named_game;
+-} Options;
++};
++extern struct option_struct Options;
+
+ #endif
+diff --git a/piece.c b/piece.c
+index 4c08eaf..6944165 100644
+--- a/piece.c
++++ b/piece.c
+@@ -33,6 +33,9 @@
+ #include "piece.h"
+ #include "options.h"
+
++color_style special_style;
++SDL_Surface *edge[4]; /* hikari to kage */
++
+ /***************************************************************************
+ * load_piece_style()
+ * Load a piece style from the given file.
+diff --git a/piece.h b/piece.h
+index bc4226c..a47abbe 100644
+--- a/piece.h
++++ b/piece.h
+@@ -67,13 +67,11 @@ typedef struct color_style_struct {
+ int h; /* height of each color block */
+ } color_style;
+
+-color_style special_style;
+-
+ #define HORIZ_LIGHT 0
+ #define VERT_LIGHT 1
+ #define HORIZ_DARK 2
+ #define VERT_DARK 3
+-SDL_Surface *edge[4]; /* hikari to kage */
++extern SDL_Surface *edge[4]; /* hikari to kage */
+
+ /* this structure holds all of the color styles we have been able to load
+ * for this game */
diff --git a/games-puzzle/atris/files/atris-1.0.7-path-and-fullscreen.patch b/games-puzzle/atris/files/atris-1.0.7-path-and-fullscreen.patch
new file mode 100644
index 0000000000..b5fabe6d12
--- /dev/null
+++ b/games-puzzle/atris/files/atris-1.0.7-path-and-fullscreen.patch
@@ -0,0 +1,63 @@
+diff --git a/atris.c b/atris.c
+index a621e22..234b05f 100644
+--- a/atris.c
++++ b/atris.c
+@@ -947,7 +947,6 @@ main(int argc, char *argv[])
+ /* Initialize the display in a 640x480 native-depth mode */
+ flags = // SDL_HWSURFACE |
+ SDL_SWSURFACE |
+- SDL_FULLSCREEN |
+ // SDL_SRCCOLORKEY |
+ // SDL_ANYFORMAT |
+ 0;
+diff --git a/configure b/configure
+index 9411dd5..7d3af0c 100755
+--- a/configure
++++ b/configure
+@@ -6044,7 +6044,7 @@ case "$target" in
+ CFLAGS="$CFLAGS -s"
+ ;;
+ *)
+- GAME_INSTALLDIR="\$(prefix)/games/$PACKAGE"
++ GAME_INSTALLDIR="/usr/share/atris"
+ ;;
+ esac
+
+diff --git a/highscore.c b/highscore.c
+index 003e8f4..28c069d 100644
+--- a/highscore.c
++++ b/highscore.c
+@@ -59,9 +59,9 @@ save_high_scores()
+ if (!loaded)
+ return;
+
+- fout = fopen("Atris.Scores","wt");
++ fout = fopen("/var/games/atris/Atris.Scores","wt");
+ if (!fout) {
+- Debug("Unable to write High Score file [Atris.Scores]: %s\n", strerror(errno));
++ Debug("Unable to write High Score file [/var/games/atris/Atris.Scores]: %s\n", strerror(errno));
+ return;
+ }
+
+@@ -94,7 +94,7 @@ load_high_scores()
+ loaded = TRUE;
+ }
+
+- fin = fopen("Atris.Scores", "r");
++ fin = fopen("/var/games/atris/Atris.Scores", "r");
+ if (fin) {
+
+ for (i=0; !feof(fin) && i < NUM_HIGH_SCORES; i++) {
+diff --git a/identity.c b/identity.c
+index 941ab57..f3dc160 100644
+--- a/identity.c
++++ b/identity.c
+@@ -17,7 +17,7 @@
+ #include "xflame.pro"
+ #include "display.pro"
+
+-#define ID_FILENAME "Atris.Players"
++#define ID_FILENAME "/var/games/atris/Atris.Players"
+
+ /***************************************************************************
+ * input_string()
diff --git a/games-puzzle/atris/metadata.xml b/games-puzzle/atris/metadata.xml
new file mode 100644
index 0000000000..68c4ef50a3
--- /dev/null
+++ b/games-puzzle/atris/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ mazes-80
+ mazes-80@none.org
+
+
+
diff --git a/net-misc/lagrange/Manifest b/net-misc/lagrange/Manifest
new file mode 100644
index 0000000000..a33632c29a
--- /dev/null
+++ b/net-misc/lagrange/Manifest
@@ -0,0 +1 @@
+DIST lagrange-1.5.1.tar.gz 20406988 BLAKE2B faae5c415fb8eb36a8301adff0ea330c11aab861c5e134a7b2601903877fbbb9d3369719151048740f35ea1fd7e3032a02b9e2287a7f7eef4864d05a0e643d25 SHA512 b5ee3ff9718c7bf4542a1f7b92b6efdd2360c01ebba2b380e0458762d317bf54c57e2c171b6d6b11a7b308255de7ce2f76905c17f70d7c0c971e48c95d15d991
diff --git a/net-misc/lagrange/lagrange-1.5.1.ebuild b/net-misc/lagrange/lagrange-1.5.1.ebuild
new file mode 100644
index 0000000000..8f042010fb
--- /dev/null
+++ b/net-misc/lagrange/lagrange-1.5.1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="A Beautiful Gemini Client"
+HOMEPAGE="https://gmi.skyjake.fi/lagrange/"
+if [ "${PV}" == "9999" ]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://git.skyjake.fi/gemini/${PN}.git"
+else
+ SRC_URI="https://git.skyjake.fi/skyjake/${PN}/releases/download/v${PV}/${PN}-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="BSD-2"
+SLOT=0
+IUSE="mpg123"
+
+RDEPEND="
+ >=dev-libs/openssl-1.1.1
+ media-libs/libsdl2
+ dev-libs/libpcre
+ sys-libs/zlib
+ dev-libs/libunistring
+ mpg123? ( media-sound/mpg123 )
+"
+
+src_configure() {
+ if use mpg123; then
+ mycmakeargs+=("-DENABLE_MPG123")
+ fi
+ mycmakeargs+=("-DCMAKE_BUILD_TYPE=Release")
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+}
+
+src_install() {
+ cmake_src_install
+}
diff --git a/net-misc/lagrange/lagrange-9999.ebuild b/net-misc/lagrange/lagrange-9999.ebuild
new file mode 100644
index 0000000000..8f042010fb
--- /dev/null
+++ b/net-misc/lagrange/lagrange-9999.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake
+
+DESCRIPTION="A Beautiful Gemini Client"
+HOMEPAGE="https://gmi.skyjake.fi/lagrange/"
+if [ "${PV}" == "9999" ]; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://git.skyjake.fi/gemini/${PN}.git"
+else
+ SRC_URI="https://git.skyjake.fi/skyjake/${PN}/releases/download/v${PV}/${PN}-${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64"
+fi
+
+LICENSE="BSD-2"
+SLOT=0
+IUSE="mpg123"
+
+RDEPEND="
+ >=dev-libs/openssl-1.1.1
+ media-libs/libsdl2
+ dev-libs/libpcre
+ sys-libs/zlib
+ dev-libs/libunistring
+ mpg123? ( media-sound/mpg123 )
+"
+
+src_configure() {
+ if use mpg123; then
+ mycmakeargs+=("-DENABLE_MPG123")
+ fi
+ mycmakeargs+=("-DCMAKE_BUILD_TYPE=Release")
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+}
+
+src_install() {
+ cmake_src_install
+}
diff --git a/net-misc/lagrange/metadata.xml b/net-misc/lagrange/metadata.xml
new file mode 100644
index 0000000000..e3edec4428
--- /dev/null
+++ b/net-misc/lagrange/metadata.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ strikersh@disroot.org
+ Jules de Sartiges
+
+
+
+ Lagrange is a desktop GUI client for browsing Geminispace. It
+ offers modern conveniences familiar from web browsers, such as
+ smooth scrolling, inline image viewing, multiple tabs, visual
+ themes, Unicode fonts, bookmarks, history, and page outlines.
+
+
+ https://github.com/skyjake/lagrange/issues
+
+