diff --git a/community/namecoin/APKBUILD b/community/namecoin/APKBUILD
index b927be840e566853bdeec10b4028807ce1e91e89..feb731b674eb0f757436247add4628f5ec522dff 100644
--- a/community/namecoin/APKBUILD
+++ b/community/namecoin/APKBUILD
@@ -15,6 +15,7 @@ install="$pkgname.post-install $pkgname.pre-install"
 subpackages="$pkgname-dev $pkgname-qt $pkgname-cli $pkgname-tx $pkgname-tests $pkgname-bench
 	$pkgname-doc $pkgname-openrc"
 source="$pkgname-$_ver.tar.gz::https://github.com/$pkgname/$pkgname-core/archive/nc${_ver}.tar.gz
+	skip-fs-test-utf8.patch
 	ssize_t.patch
 	$pkgname.initd
 	$pkgname.conf
@@ -38,6 +39,7 @@ build() {
 }
 
 check() {
+	export LC_ALL="C.UTF-8"
 	make check
 }
 
@@ -87,6 +89,7 @@ dev() {
 }
 
 sha512sums="ae1b0bf58ecd57546d1e23b943cd565ced39452f560c6afdbdae511224ead8cd134b8a22efe2a89287c616be2d16a5c044b0a84477019589e65fc61fd449cfd8  namecoin-0.18.0.tar.gz
+e9a1151af56dcef37720991452ab29fb2661166f2d755d5336ef606e6029a21b1a6d09b1a4da34955f0b97cd1a4febb19a8270e6f31f9fbbd271f19fe676468a  skip-fs-test-utf8.patch
 98aa5ad81bdb4ae961b791bc978c39117cdf2d83c2181f92bebbb0db107d9b6e86eda265fb3f93ff8a5ca8a7754d7148818b98095d57201dff9363d60b97e7dd  ssize_t.patch
 1753132f349e02cc248a622eb17f2f98a180d561d46f2e8916b84cc26c98d546214ca305bb1ea378ae14090c0abf8d6ac257c98c6776bbe4dabd68c108f595a3  namecoin.initd
 3f92cb9a5f66d0e9e3792691b2e62b929c092030273bb87ebd9564e0c02196a5a9f69c458162f1b35099ac28e9b79b1c4035144b9d2dae4ad3e87d05a40d7ed4  namecoin.conf"
diff --git a/community/namecoin/boost_1.66.0-compat.patch b/community/namecoin/boost_1.66.0-compat.patch
deleted file mode 100644
index d5767b828829bf2d74a8d1e0fb681aae68f87c8b..0000000000000000000000000000000000000000
--- a/community/namecoin/boost_1.66.0-compat.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff --git a/src/miner.h b/src/miner.h
-index 36276dc36..d81ec6421 100644
---- a/src/miner.h
-+++ b/src/miner.h
-@@ -71,7 +71,7 @@ struct modifiedentry_iter {
- // except operating on CTxMemPoolModifiedEntry.
- // TODO: refactor to avoid duplication of this logic.
- struct CompareModifiedEntry {
--    bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b)
-+    bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b) const
-     {
-         double f1 = (double)a.nModFeesWithAncestors * b.nSizeWithAncestors;
-         double f2 = (double)b.nModFeesWithAncestors * a.nSizeWithAncestors;
-@@ -86,7 +86,7 @@ struct CompareModifiedEntry {
- // This is sufficient to sort an ancestor package in an order that is valid
- // to appear in a block.
- struct CompareTxIterByAncestorCount {
--    bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b)
-+    bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b) const
-     {
-         if (a->GetCountWithAncestors() != b->GetCountWithAncestors())
-             return a->GetCountWithAncestors() < b->GetCountWithAncestors();
-diff --git a/src/txmempool.h b/src/txmempool.h
-index 346585ab1..86a008d7b 100644
---- a/src/txmempool.h
-+++ b/src/txmempool.h
-@@ -204,7 +204,7 @@ struct mempoolentry_txid
- class CompareTxMemPoolEntryByDescendantScore
- {
- public:
--    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
-+    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
-     {
-         bool fUseADescendants = UseDescendantScore(a);
-         bool fUseBDescendants = UseDescendantScore(b);
-@@ -226,7 +226,7 @@ public:
-     }
- 
-     // Calculate which score to use for an entry (avoiding division).
--    bool UseDescendantScore(const CTxMemPoolEntry &a)
-+    bool UseDescendantScore(const CTxMemPoolEntry &a) const
-     {
-         double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants();
-         double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize();
-@@ -241,7 +241,7 @@ public:
- class CompareTxMemPoolEntryByScore
- {
- public:
--    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
-+    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
-     {
-         double f1 = (double)a.GetModifiedFee() * b.GetTxSize();
-         double f2 = (double)b.GetModifiedFee() * a.GetTxSize();
-@@ -255,7 +255,7 @@ public:
- class CompareTxMemPoolEntryByEntryTime
- {
- public:
--    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
-+    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
-     {
-         return a.GetTime() < b.GetTime();
-     }
-@@ -264,7 +264,7 @@ public:
- class CompareTxMemPoolEntryByAncestorFee
- {
- public:
--    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
-+    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
-     {
-         double aFees = a.GetModFeesWithAncestors();
-         double aSize = a.GetSizeWithAncestors();
--- 
diff --git a/community/namecoin/skip-fs-test-utf8.patch b/community/namecoin/skip-fs-test-utf8.patch
new file mode 100644
index 0000000000000000000000000000000000000000..385b8752536d6cf67ef4c9b7b80951a23b178010
--- /dev/null
+++ b/community/namecoin/skip-fs-test-utf8.patch
@@ -0,0 +1,13 @@
+diff --git a/src/test/fs_tests.cpp b/src/test/fs_tests.cpp
+index 93aee10..4a01e2e 100644
+--- a/src/test/fs_tests.cpp
++++ b/src/test/fs_tests.cpp
+@@ -14,7 +14,7 @@ BOOST_AUTO_TEST_CASE(fsbridge_fstream)
+     fs::path tmpfolder = SetDataDir("fsbridge_fstream");
+     // tmpfile1 should be the same as tmpfile2
+     fs::path tmpfile1 = tmpfolder / "fs_tests_₿_🏃";
+-    fs::path tmpfile2 = tmpfolder / L"fs_tests_₿_🏃";
++    fs::path tmpfile2 = tmpfolder / "fs_tests_₿_🏃";
+     {
+         fsbridge::ofstream file(tmpfile1);
+         file << "bitcoin";