diff --git a/package/lean/amule/Makefile b/package/lean/amule/Makefile
index 4fcdfd604..83299bd03 100644
--- a/package/lean/amule/Makefile
+++ b/package/lean/amule/Makefile
@@ -18,6 +18,7 @@ PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_VERSION:=$(PKG_REV)
 PKG_SOURCE_URL:=https://github.com/amule-project/amule.git
+PKG_MIRROR_HASH:=1575d31d68f9df881100c9e30f18fc7dec8493a8ae20787f41b6ef23604a78ff
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_BUILD_DEPENDS:=libgd libcryptopp
diff --git a/package/lean/amule/patches/007-binutils.patch b/package/lean/amule/patches/007-binutils.patch
new file mode 100644
index 000000000..600a47620
--- /dev/null
+++ b/package/lean/amule/patches/007-binutils.patch
@@ -0,0 +1,19 @@
+--- a/src/libs/common/MuleDebug.cpp	2016-10-06 18:49:44.000000000 +0800
++++ b/src/libs/common/MuleDebug.cpp	2021-06-17 02:16:40.000000000 +0800
+@@ -268,14 +268,14 @@
+ 		return;
+ 	}
+ 
+-	bfd_vma vma = bfd_get_section_vma(abfd, section);
++	bfd_vma vma = bfd_section_vma(section);
+ 
+ 	unsigned long address = (unsigned long)_address;
+ 	if (address < vma) {
+ 		return;
+ 	}
+ 
+-	bfd_size_type size = bfd_section_size(abfd, section);
++	bfd_size_type size = bfd_section_size(section);
+ 	if (address > (vma + size)) {
+ 		return;
+ 	}
diff --git a/package/lean/amule/patches/008-upnp2.patch b/package/lean/amule/patches/008-upnp2.patch
new file mode 100644
index 000000000..20592509c
--- /dev/null
+++ b/package/lean/amule/patches/008-upnp2.patch
@@ -0,0 +1,16 @@
+diff --git a/src/UPnPBase.cpp b/src/UPnPBase.cpp
+index 46ac7451e..dd244e5b0 100644
+--- a/src/UPnPBase.cpp
++++ b/src/UPnPBase.cpp
+@@ -828,9 +828,9 @@
+ 	int ret;
+ 	char *ipAddress = NULL;
+ 	unsigned short port = 0;
+-	ret = UpnpInit(ipAddress, udpPort);
++	ret = UpnpInit2(0, udpPort);
+ 	if (ret != UPNP_E_SUCCESS) {
+-		msg << "error(UpnpInit): Error code ";
++		msg << "error(UpnpInit2): Error code ";
+ 		goto error;
+ 	}
+ 	port = UpnpGetServerPort();
diff --git a/package/lean/pdnsd-alt/Makefile b/package/lean/pdnsd-alt/Makefile
index 40ff6c603..1d69a96a0 100644
--- a/package/lean/pdnsd-alt/Makefile
+++ b/package/lean/pdnsd-alt/Makefile
@@ -1,24 +1,16 @@
-#
-# Copyright (C) 2021 ImmortalWrt
-# <https://immortalwrt.org>
-#
-# This is free software, licensed under the GNU General Public License v3.
-# See /LICENSE for more information.
-
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pdnsd
 PKG_VERSION:=1.2.9b-par
-PKG_RELEASE:=2
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/shadowsocks/pdnsd.git
-PKG_SOURCE_DATE:=2012-04-26
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=a8e46ccba7b0fa2230d6c42ab6dcd92926f6c21d
-PKG_MIRROR_HASH:=e3e9c56cf91b12d8db73def2c247be2f726a052bed012f7a1e48946375f8e478
-
-PKG_BUILD_PARALLEL:=1
-PKG_INSTALL:=1
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+# PKG_MIRROR_MD5SUM:=
+# CMAKE_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -41,20 +33,23 @@ define Package/pdnsd-alt/description
 endef
 
 TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
+#TARGET_CFLAGS += -ggdb3
+
+CMAKE_OPTIONS += -DDEBUG=1
 
 CONFIGURE_ARGS += \
-	--with-cachedir=/var/pdnsd \
-	--with-target=Linux
+		--with-cachedir=/var/pdnsd \
+		--with-target=Linux
 
 define Package/pdnsd-alt/install
 	$(INSTALL_DIR) $(1)/usr/sbin
-	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/pdnsd $(1)/usr/sbin/pdnsd
-	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/pdnsd-ctl $(1)/usr/sbin/pdnsd-ctl
-
-	#$(INSTALL_DIR) $(1)/etc
-	#$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/pdnsd.conf.sample $(1)/etc/pdnsd.conf
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/pdnsd $(1)/usr/sbin/
+	$(INSTALL_DIR) $(1)/usr/bin
+	$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/pdnsd-ctl/pdnsd-ctl $(1)/usr/bin/
 	#$(INSTALL_DIR) $(1)/etc/init.d
 	#$(INSTALL_BIN) ./files/pdnsd.init $(1)/etc/init.d/pdnsd
+	$(INSTALL_DIR) $(1)/etc
+	$(INSTALL_CONF) $(PKG_BUILD_DIR)/doc/pdnsd.conf $(1)/etc/
 endef
 
-$(eval $(call BuildPackage,pdnsd-alt))
\ No newline at end of file
+$(eval $(call BuildPackage,pdnsd-alt))