PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@SF/dejavu
PKG_HASH:=fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7
+PKG_LICENSE:=Bitstream-Vera-Fonts-Copyright Arev-Fonts-Copyright Public-Domain
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Mirko Vogt <mirko-dev@nanl.de>
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/rules.mk
PKG_NAME:=php
-PKG_VERSION:=7.1.1
+PKG_VERSION:=7.1.2
PKG_RELEASE:=1
PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_MD5SUM:=65eef256f6e7104a05361939f5e23ada
-PKG_HASH:=b3565b0c1441064eba204821608df1ec7367abff881286898d900c2c2a5ffe70
+PKG_MD5SUM:=d79afea1870277c86fac903566fb6c5d
+PKG_HASH:=d815a0c39fd57bab1434a77ff0610fb507c22f790c66cd6f26e27030c4b3e971
PKG_FIXUP:=libtool autoreconf
PKG_BUILD_PARALLEL:=1
PKG_MD5SUM:=4a392949ba31a378a18ed3e775a4693f
PKG_BUILD_DIR:=$(BUILD_DIR)/psycopg2-$(PKG_VERSION)
-PKG_BUILD_DEPENDS:=python libpq python-setuptools
+PKG_BUILD_DEPENDS:=python libpq python/host
include $(INCLUDE_DIR)/package.mk
$(call include_mk, python-package.mk)
PKG_NAME:=boost
PKG_VERSION:=1.63.0
PKG_SOURCE_VERSION:=1_63_0
-PKG_RELEASE:=1
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)_$(PKG_SOURCE_VERSION).tar.bz2
PKG_SOURCE_URL:=https://sourceforge.net/projects/boost/files/boost/$(PKG_VERSION)
| - Boost.Locale |
| - Boost.Coroutine2 |
| - Boost.Fiber |
+| Also, due to hardware contraints, the following libs and those that are |
+| dependent, are disabled for some Targets. |
+| - Boost.Context |
+| - Disabled for -> avr32, octeon and netlogic. |
+| - Boost.Fiber |
+| - Disabled for -> ar7, rb532, brcm63xx.smp, brcm63xx, brcm47xx, |
+| brcm47xx.legacy, brcm2708_bcm2708, au1000, ath25, |
+| adm8668 and adm5120. |
-----------------------------------------------------------------------------
This package provides the following run-time libraries:
- container
- context
- coroutine (Deprecated - use Coroutine2)
- - - coroutine2 (Requires GCC v5 and up)
+ - - coroutine2 (Requires GCC v5 or newer)
- date_time
- exception
- filesystem
- - fiber (Requires GCC v5 and up)
+ - fiber (Requires GCC v5 or newer)
- graph
- - graph-parallel
- iostreams
config boost-libs-all
bool "Include all Boost libraries."
default m if ALL
- select PACKAGE_boost-libs
- select boost-test-pkg
- select boost-coroutine2
- select boost-graph-parallel
+ select PACKAGE_boost-container
+ select PACKAGE_boost-date_time
+ select PACKAGE_boost-iostreams
+ select PACKAGE_boost-math
+ select PACKAGE_boost-program_options
+ select PACKAGE_boost-serialization
+ select PACKAGE_boost-signals
+ select PACKAGE_boost-regex
+ select PACKAGE_boost-graph if PACKAGE_boost-regex
+ select PACKAGE_boost-system
+ select PACKAGE_boost-atomic if PACKAGE_boost-system
+ select PACKAGE_boost-chrono if PACKAGE_boost-system
+ select PACKAGE_boost-random if PACKAGE_boost-system
+ select PACKAGE_boost-filesystem if PACKAGE_boost-system
+ select PACKAGE_boost-locale if PACKAGE_boost-system
+ select PACKAGE_boost-timer if PACKAGE_boost-chrono
+ select PACKAGE_boost-thread if PACKAGE_boost-chrono&&PACKAGE_boost-atomic
+ select PACKAGE_boost-context if PACKAGE_boost-chrono&&PACKAGE_boost-thread
+ select PACKAGE_boost-coroutine if PACKAGE_boost-context
+ select PACKAGE_boost-fiber if boost-coroutine2
+ select PACKAGE_boost-log if PACKAGE_boost-chrono&&PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem&&PACKAGE_boost-regex
+ select PACKAGE_boost-wave if PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem
+ select PACKAGE_boost-python
+ select PACKAGE_boost-python3
+ select boost-test-pkg if PACKAGE_boost-system&&PACKAGE_boost-timer
+ select boost-coroutine2 if PACKAGE_boost-coroutine
+ select boost-graph-parallel if PACKAGE_boost-graph
+
config boost-test-pkg
+ depends on PACKAGE_boost-system&&PACKAGE_boost-timer
bool "Boost test package."
default m if ALL
select PACKAGE_boost-test
config boost-coroutine2
- depends on !@GCC_VERSION_4_8
+ depends on !@GCC_VERSION_4_8&&PACKAGE_boost-coroutine
bool "Boost couroutine2 support."
- select PACKAGE_boost-coroutine
- default n
+ default m if ALL
config boost-graph-parallel
+ depends on PACKAGE_boost-graph
bool "Boost parallel graph support."
- select PACKAGE_boost-graph
- default n
+ default m if ALL
$(foreach lib,$(BOOST_LIBS), \
config PACKAGE_boost-$(lib)
prompt "Boost $(lib) library."
default m if ALL
- $(if $(findstring locale,$(lib)),depends on BUILD_NLS,)\
+ $(if $(findstring graph,$(lib)),depends on PACKAGE_boost-regex,)\
+ $(if $(findstring atomic,$(lib)),depends on PACKAGE_boost-system,)\
+ $(if $(findstring chrono,$(lib)),depends on PACKAGE_boost-system,)\
+ $(if $(findstring random,$(lib)),depends on PACKAGE_boost-system,)\
+ $(if $(findstring filesystem,$(lib)),depends on PACKAGE_boost-system,)\
+ $(if $(findstring locale,$(lib)),depends on PACKAGE_boost-system&&BUILD_NLS,)\
+ $(if $(findstring timer,$(lib)),depends on PACKAGE_boost-chrono,)\
+ $(if $(findstring thread,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-atomic,)\
+ $(if $(findstring context,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-thread&&@(!TARGET_avr32&&!TARGET_octeon&&!TARGET_netlogic),)\
+ $(if $(findstring coroutine,$(lib)),depends on PACKAGE_boost-context,)\
+ $(if $(findstring fiber,$(lib)),depends on @boost-coroutine2&&@(!TARGET_ar7&&!TARGET_rb532&&!TARGET_brcm63xx_smp&&!TARGET_brcm63xx&&!TARGET_brcm47xx&&!TARGET_brcm47xx_legacy&&!TARGET_brcm2708_bcm2708&&!TARGET_au1000&&!TARGET_ath25&&!TARGET_adm8668&&!TARGET_adm5120),)\
+ $(if $(findstring log,$(lib)),depends on PACKAGE_boost-chrono&&PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem&&PACKAGE_boost-regex,)\
+ $(if $(findstring wave,$(lib)),depends on PACKAGE_boost-date_time&&PACKAGE_boost-thread&&PACKAGE_boost-filesystem,)\
$(if $(findstring python,$(lib)),depends on PACKAGE_$(lib),)
-
)
endmenu
$(call Package/boost/Default)
TITLE+= (test)
HIDDEN:=1
- DEPENDS+=+boost-system +boost-timer
endef
define Build/Configure
endef
# 1: short name
-# 2: dependencies on other boost libraries (short name)
+# 2: dependencies on other boost libraries (short name) - Deprecated
# 3: dependencies on other packages
# 4: conditional/inward dependencies
define DefineBoostLibrary
define Package/boost-$(1)
$(call Package/boost/Default)
TITLE+= ($(1))
- DEPENDS+= $$(foreach lib,$(2),+boost-$$(lib)) $(3) $(if $(4),@$(4),)
+ DEPENDS+= $(3) $(if $(4),@$(4),)
HIDDEN:=1
endef
endef
endef
-$(eval $(call DefineBoostLibrary,atomic,system,))
-$(eval $(call DefineBoostLibrary,chrono,system,))
-$(eval $(call DefineBoostLibrary,container,,))
-$(eval $(call DefineBoostLibrary,context,chrono system thread,))
-$(eval $(call DefineBoostLibrary,coroutine,system chrono context thread,))
-$(eval $(call DefineBoostLibrary,date_time,,))
-#$(eval $(call DefineBoostLibrary,exception,,))
-$(eval $(call DefineBoostLibrary,fiber,coroutine,,))
-$(eval $(call DefineBoostLibrary,filesystem,system,))
-$(eval $(call DefineBoostLibrary,graph,regex,))
-$(eval $(call DefineBoostLibrary,iostreams,,+zlib))
-$(eval $(call DefineBoostLibrary,locale,system,$(ICONV_DEPENDS),BUILD_NLS))
-$(eval $(call DefineBoostLibrary,log,system chrono date_time thread filesystem regex,))
-$(eval $(call DefineBoostLibrary,math,,))
-#$(eval $(call DefineBoostLibrary,mpi,,)) # OpenMPI does no exist in OpenWRT at this time.
-$(eval $(call DefineBoostLibrary,program_options,,))
+
+## If you are thinking in making changes to the following list, for some reason, the order of what follows matters.
+$(eval $(call DefineBoostLibrary,container,,,))
+$(eval $(call DefineBoostLibrary,date_time,,,))
+$(eval $(call DefineBoostLibrary,iostreams,,+zlib,))
+$(eval $(call DefineBoostLibrary,math,,,))
+$(eval $(call DefineBoostLibrary,program_options,,,))
+$(eval $(call DefineBoostLibrary,serialization,,,))
+$(eval $(call DefineBoostLibrary,signals,,,))
+
+$(eval $(call DefineBoostLibrary,regex,,,))
+$(eval $(call DefineBoostLibrary,graph,,,))
+
+$(eval $(call DefineBoostLibrary,system,,,))
+$(eval $(call DefineBoostLibrary,atomic,,,))
+$(eval $(call DefineBoostLibrary,chrono,,,))
+$(eval $(call DefineBoostLibrary,random,,,))
+$(eval $(call DefineBoostLibrary,filesystem,,,))
+$(eval $(call DefineBoostLibrary,locale,,$(ICONV_DEPENDS),BUILD_NLS))
+$(eval $(call DefineBoostLibrary,timer,,,))
+$(eval $(call DefineBoostLibrary,thread,,,))
+$(eval $(call DefineBoostLibrary,context,,,))
+$(eval $(call DefineBoostLibrary,coroutine,,,))
+$(eval $(call DefineBoostLibrary,fiber,,,))
+$(eval $(call DefineBoostLibrary,log,,,))
+$(eval $(call DefineBoostLibrary,wave,,,))
$(eval $(call DefineBoostLibrary,python,,,PACKAGE_python))
$(eval $(call DefineBoostLibrary,python3,,,PACKAGE_python3))
-$(eval $(call DefineBoostLibrary,random,system,))
-$(eval $(call DefineBoostLibrary,regex,,))
-$(eval $(call DefineBoostLibrary,serialization,,))
-$(eval $(call DefineBoostLibrary,signals,,))
-$(eval $(call DefineBoostLibrary,system,,))
-$(eval $(call DefineBoostLibrary,thread,system chrono atomic,))
-$(eval $(call DefineBoostLibrary,timer,chrono))
-$(eval $(call DefineBoostLibrary,wave,date_time thread filesystem,))
+
+#$(eval $(call DefineBoostLibrary,mpi,,)) # OpenMPI does no exist in OpenWRT at this time.
+#$(eval $(call DefineBoostLibrary,exception,,))
define Host/Compile
TARGET_LDFLAGS += -pthread -lrt
TARGET_CFLAGS += \
- $(if $(CONFIG_PACKAGE_boost-python), -I$(STAGING_DIR)/usr/include/python2.7/) \
- $(if $(CONFIG_PACKAGE_boost-python3), -I$(STAGING_DIR)/usr/include/python3.5/) \
$(if $(CONFIG_SOFT_FLOAT),-DBOOST_NO_FENV_H) -fPIC
EXTRA_CXXFLAGS += $(if $(CONFIG_GCC_VERSION_4_8),-std=gnu++11,-std=gnu++14)
comma := ,
+
define Build/Compile
$(info Selected Boost API $(BOOST_ABI) for architecture $(ARCH) and cpu $(CPU_TYPE) $(CPU_SUBTYPE))
( cd $(PKG_BUILD_DIR) ; \
echo "using gcc : $(ARCH) : $(GNU_TARGET_NAME)-gcc : <compileflags>\"$(TARGET_CFLAGS)\" <cxxflags>\"$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > tools/build/src/user-config.jam ; \
$(if $(CONFIG_PACKAGE_boost-python3), \
- echo "using python : 3.5 : $(STAGING_DIR_ROOT)/usr/bin/python3 : $(STAGING_DIR)/usr/include/python3.5/ ;" >> \
+ echo "using python : 3.6 : : $(STAGING_DIR)/usr/include/python3.6/ ;" >> \
tools/build/src/user-config.jam; \
) \
$(if $(CONFIG_PACKAGE_boost-python), \
- echo "using python : 2.7 : $(STAGING_DIR_ROOT)/usr/bin/python : $(STAGING_DIR)/usr/include/python2.7/ ;" >> \
+ echo "using python : 2.7 : : $(STAGING_DIR)/usr/include/python2.7/ ;" >> \
tools/build/src/user-config.jam; \
) \
b2 \
$(if $(or $(CONFIG_PACKAGE_boost-python),$(CONFIG_PACKAGE_boost-python3)),,--without-python), \
$(if $(CONFIG_PACKAGE_boost-$(lib)),,--without-$(lib))) \
) \
+ $(if $(CONFIG_PACKAGE_boost-python),python=2.7,) \
+ $(if $(CONFIG_PACKAGE_boost-python3),python=3.6,) \
$(if $(CONFIG_PACKAGE_boost-locale),boost.locale.iconv=on -sICONV_PATH=$(ICONV_PREFIX) boost.locale.posix=$(if $(USE_MUSL),on,off), \
boost.locale.iconv=off) \
\
--- /dev/null
+Index: boost_1_63_0/boost/test/impl/execution_monitor.ipp
+===================================================================
+--- boost_1_63_0.orig/boost/test/impl/execution_monitor.ipp
++++ boost_1_63_0/boost/test/impl/execution_monitor.ipp
+@@ -1375,7 +1375,7 @@ enable( unsigned mask )
+ #endif
+
+ return ~old_cw & BOOST_FPE_ALL;
+-#elif defined(__GLIBC__) && defined(__USE_GNU)
++#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
+ if (BOOST_FPE_ALL == BOOST_FPE_OFF)
+ /* Not Implemented */
+ return BOOST_FPE_OFF;
+@@ -1415,7 +1415,7 @@ disable( unsigned mask )
+ #endif
+
+ return ~old_cw & BOOST_FPE_ALL;
+-#elif defined(__GLIBC__) && defined(__USE_GNU)
++#elif defined(__GLIBC__) && defined(__USE_GNU) && !defined(BOOST_CLANG) && !defined(BOOST_NO_FENV_H)
+ if (BOOST_FPE_ALL == BOOST_FPE_OFF)
+ /* Not Implemented */
+ return BOOST_FPE_INV;
PKG_NAME:=icu4c
PKG_VERSION:=58.2
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-58_2-src.tgz
PKG_SOURCE_URL:=http://download.icu-project.org/files/$(PKG_NAME)/$(PKG_VERSION)
--prefix=$(STAGING_DIR_HOSTPKG)
define Build/InstallDev
- $(INSTALL_DIR) \
- $(1)/usr/include
-
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/include/* \
- $(1)/usr/include/
-
- $(INSTALL_DIR) \
- $(1)/usr/lib
-
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/lib/* \
- $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/include
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_DIR) $(2)/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/icu-config $(1)/usr/bin/
+ $(SED) 's,^\(prefix\|execprefix\)=.*,\1=$(STAGING_DIR)/usr,g' $(1)/usr/bin/icu-config
+ $(LN) $(STAGING_DIR)/usr/bin/icu-config $(2)/bin/
endef
define Host/Install
endef
define Package/icu/install
- $(INSTALL_DIR) \
- $(1)/usr/lib
-
- $(CP) \
- $(PKG_INSTALL_DIR)/usr/lib/*.so* \
- $(1)/usr/lib/
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so* $(1)/usr/lib/
endef
$(eval $(call BuildPackage,icu))
include $(TOPDIR)/rules.mk
PKG_NAME:=youtube-dl
-PKG_VERSION:=2016.11.27
+PKG_VERSION:=2017.02.17
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://yt-dl.org/downloads/$(PKG_VERSION)/
-PKG_MD5SUM:=2bb2c4ebf5335d69e03e32a0309abfba
+PKG_MD5SUM:=d38dbe099af22eb9af35b0e8b274dc4e
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
PKG_LICENSE:=Unlicense
include $(TOPDIR)/rules.mk
PKG_NAME:=adblock
-PKG_VERSION:=2.3.1
-PKG_RELEASE:=1
+PKG_VERSION:=2.4.0
+PKG_RELEASE:=2
PKG_LICENSE:=GPL-3.0+
PKG_MAINTAINER:=Dirk Brenken <dev@brenken.org>
* automatically selects uclient-fetch or wget as download utility (other tools like curl or aria2c are supported as well)
* automatically supports a wide range of router modes, even AP modes are supported
* full IPv4 and IPv6 support
+* supports tld compression (top level domain compression), this feature removes thousands of needless host entries from the block lists and lowers the memory footprint for the dns backends
* each block list source will be updated and processed separately
* block list source parsing by fast & flexible regex rulesets
* overall duplicate removal in separate block lists
* adb\_iface => restrict the procd interface trigger to a (list of) certain wan interface(s) or disable it at all (default: not set, disabled)
* adb\_fetch => full path to a different download utility, see example below (default: not set, use wget)
* adb\_fetchparm => options for the download utility, see example below (default: not set, use wget options)
+ * adb\_tldcomp => enable/disable tld compression (default: '1', enabled)
## Examples
<pre><code>
wget (default):
option adb_fetch="/usr/bin/wget"
- option adb_fetchparm="--no-config --quiet --tries=1 --no-cache --no-cookies --max-redirect=0 --timeout=5 --no-check-certificate -O"
+ option adb_fetchparm="--no-config --quiet --no-cache --no-cookies --max-redirect=0 --timeout=10 --no-check-certificate -O"
aria2c:
option adb_fetch '/usr/bin/aria2c'
- option adb_fetchparm '-q --max-tries=1 --timeout=5 --allow-overwrite=true --auto-file-renaming=false --check-certificate=false -o'
+ option adb_fetchparm '-q --timeout=10 --allow-overwrite=true --auto-file-renaming=false --check-certificate=false -o'
uclient-fetch:
option adb_fetch '/bin/uclient-fetch'
- option adb_fetchparm '-q --timeout=5 --no-check-certificate -O'
+ option adb_fetchparm '-q --timeout=10 --no-check-certificate -O'
curl:
option adb_fetch '/usr/bin/curl'
- option adb_fetchparm '-s --retry 1 --connect-timeout 5 --insecure -o'
+ option adb_fetchparm '-s --connect-timeout 10 --insecure -o'
</code></pre>
**receive adblock statistics via ubus:**
if [ $(/etc/init.d/adblock enabled; printf ${?}) -eq 0 ]
then
procd_open_instance "adblock"
- procd_set_param env adb_procd="true"
procd_set_param command "${adb_script}" "${@}"
procd_set_param stdout 1
procd_set_param stderr 1
stop_service()
{
- export adb_procd="true"
rc_procd "${adb_script}" stop
}
query()
{
- export adb_procd="true"
rc_procd "${adb_script}" query "${1}"
}
{
local iface="$(uci -q get adblock.global.adb_iface)"
- procd_open_trigger
- procd_add_config_trigger "config.change" "adblock" /etc/init.d/adblock start
if [ -z "${iface}" ]
then
procd_add_raw_trigger "interface.*.up" 1000 /etc/init.d/adblock start
procd_add_interface_trigger "interface.*.up" "${name}" /etc/init.d/adblock start
done
fi
- procd_close_trigger
+ procd_add_config_trigger "config.change" "adblock" /etc/init.d/adblock start
}
#
LC_ALL=C
PATH="/usr/sbin:/usr/bin:/sbin:/bin"
-adb_ver="2.3.1"
+adb_ver="2.4.0-2"
adb_enabled=1
adb_debug=0
adb_backup=0
+adb_tldcomp=1
adb_backupdir="/mnt"
adb_whitelist="/etc/adblock/adblock.whitelist"
adb_whitelist_rset="\$1 ~/^([A-Za-z0-9_-]+\.){1,}[A-Za-z]+/{print tolower(\"^\"\$1\"\\\|[.]\"\$1)}"
#
f_rmtemp()
{
- rm -f "${adb_tmpload}"
- rm -f "${adb_tmpfile}"
- rm -rf "${adb_tmpdir}"
+ if [ -d "${adb_tmpdir}" ]
+ then
+ rm -f "${adb_tmpload}"
+ rm -f "${adb_tmpfile}"
+ rm -rf "${adb_tmpdir}"
+ fi
}
# f_rmdns: remove dns related files & directories
then
logger -t "adblock-[${adb_ver}] ${class}" "Please check the online documentation 'https://github.com/openwrt/packages/blob/master/net/adblock/files/README.md'"
f_rmtemp
- f_rmdns
+ if [ "$(ls -dA "${adb_dnsdir}/${adb_dnsprefix}"* >/dev/null 2>&1)" ]
+ then
+ f_rmdns
+ f_dnsrestart
+ fi
exit 255
fi
fi
#
f_main()
{
- local enabled url cnt sum_cnt=0
- local src_name src_rset shalla_file shalla_archive list active_lists
+ local enabled url cnt sum_cnt=0 mem_total=0
+ local src_name src_rset shalla_archive list active_lists
local sysver="$(ubus -S call system board | jsonfilter -e '@.release.description')"
+ mem_total="$(awk '$1 ~ /^MemTotal/ {printf $2}' "/proc/meminfo" 2>/dev/null)"
f_log "info " "start adblock processing ..."
for src_name in ${adb_sources}
# download block list
#
- f_log "debug" "name: ${src_name}, enabled: ${enabled}, backup: ${adb_backup}, dns: ${adb_dns}, fetch: ${adb_fetch}"
+ f_log "debug" "name: ${src_name}, enabled: ${enabled}, backup: ${adb_backup}, dns: ${adb_dns}, fetch: ${adb_fetch}, memory: ${mem_total}"
if [ "${src_name}" = "blacklist" ]
then
cat "${url}" 2>/dev/null > "${adb_tmpload}"
elif [ "${src_name}" = "shalla" ]
then
shalla_archive="${adb_tmpdir}/shallalist.tar.gz"
- shalla_file="${adb_tmpdir}/shallalist.txt"
"${adb_fetch}" ${adb_fetchparm} "${shalla_archive}" "${url}" 2>/dev/null
adb_rc=${?}
if [ ${adb_rc} -eq 0 ]
then
- > "${shalla_file}"
for category in ${adb_src_cat_shalla}
do
- tar -xOzf "${shalla_archive}" BL/${category}/domains >> "${shalla_file}"
+ tar -xOzf "${shalla_archive}" BL/${category}/domains >> "${adb_tmpload}"
adb_rc=${?}
if [ ${adb_rc} -ne 0 ]
then
break
fi
done
- cat "${shalla_file}" 2>/dev/null > "${adb_tmpload}"
- rm -f "${shalla_file}"
fi
rm -f "${shalla_archive}"
rm -rf "${adb_tmpdir}/BL"
adb_rc=${?}
fi
- # check download result and prepare domain output (incl. list backup/restore)
+ # check download result and prepare domain output (incl. tld compression, list backup & restore)
#
if [ ${adb_rc} -eq 0 ] && [ -s "${adb_tmpload}" ]
then
awk "${src_rset}" "${adb_tmpload}" > "${adb_tmpfile}"
if [ -s "${adb_tmpfile}" ]
then
+ if [ ${adb_tldcomp} -eq 1 ]
+ then
+ awk -F "." '{for(f=NF;f > 1;f--) printf "%s.", $f;print $1}' "${adb_tmpfile}" | sort -u > "${adb_tmpload}"
+ awk '{if(NR==1){tld=$NF};while(getline){if($NF !~ tld"\\."){print tld;tld=$NF}}print tld}' "${adb_tmpload}" > "${adb_tmpfile}"
+ awk -F "." '{for(f=NF;f > 1;f--) printf "%s.", $f;print $1}' "${adb_tmpfile}" > "${adb_tmpload}"
+ else
+ sort -u "${adb_tmpfile}" > "${adb_tmpload}"
+ fi
+ mv -f "${adb_tmpload}" "${adb_tmpfile}"
f_list backup
else
f_list restore
then
if [ -s "${adb_tmpdir}/tmp.whitelist" ]
then
- grep -vf "${adb_tmpdir}/tmp.whitelist" "${adb_tmpfile}" | sort -u | eval "${adb_dnsformat}" > "${adb_dnsfile}"
+ grep -vf "${adb_tmpdir}/tmp.whitelist" "${adb_tmpfile}" | eval "${adb_dnsformat}" > "${adb_dnsfile}"
else
- sort -u "${adb_tmpfile}" | eval "${adb_dnsformat}" > "${adb_dnsfile}"
+ cat "${adb_tmpfile}" | eval "${adb_dnsformat}" > "${adb_dnsfile}"
fi
adb_rc=${?}
if [ ${adb_rc} -ne 0 ]
fi
done
- # sort/unique overall
+ # overall sort
#
for src_name in $(ls -dASr "${adb_tmpdir}/${adb_dnsprefix}"* 2>/dev/null)
do
- if [ -s "${adb_tmpdir}/blocklist.overall" ]
+ if [ ${mem_total} -ge 64000 ]
then
- sort "${adb_tmpdir}/blocklist.overall" "${adb_tmpdir}/blocklist.overall" "${src_name}" | uniq -u > "${adb_tmpdir}/tmp.blocklist"
- cat "${adb_tmpdir}/tmp.blocklist" > "${src_name}"
+ if [ -s "${adb_tmpdir}/blocklist.overall" ]
+ then
+ sort "${adb_tmpdir}/blocklist.overall" "${adb_tmpdir}/blocklist.overall" "${src_name}" | uniq -u > "${adb_tmpdir}/tmp.blocklist"
+ mv -f "${adb_tmpdir}/tmp.blocklist" "${src_name}"
+ fi
+ cat "${src_name}" >> "${adb_tmpdir}/blocklist.overall"
fi
- cat "${src_name}" >> "${adb_tmpdir}/blocklist.overall"
cnt="$(wc -l < "${src_name}")"
sum_cnt=$((sum_cnt + cnt))
list="${src_name/*./}"
#
mv -f "${adb_tmpdir}/${adb_dnsprefix}"* "${adb_dnsdir}" 2>/dev/null
chown "${adb_dns}":"${adb_dns}" "${adb_dnsdir}/${adb_dnsprefix}"* 2>/dev/null
+ f_rmtemp
f_dnsrestart
if [ "${adb_dnsup}" = "true" ]
then
\"dns_backend\":\"${adb_dns}\",
\"last_rundate\":\"$(/bin/date "+%d.%m.%Y %H:%M:%S")\",
\"system\":\"${sysver}\"}}}}"
- f_rmtemp
return 0
fi
f_log "error" "dns backend restart with active block lists failed (${sysver})"
# handle different adblock actions
#
-if [ "${adb_procd}" = "true" ]
-then
- f_envload
- case "${1}" in
- stop)
- f_rmtemp
- f_rmdns
- f_dnsrestart
- ;;
- restart)
- f_rmtemp
- f_rmdns
- f_envcheck
- f_main
- ;;
- suspend)
- f_switch suspend
- ;;
- resume)
- f_switch resume
- ;;
- query)
- f_query "${2}"
- ;;
- *)
- f_envcheck
- f_main
- ;;
- esac
-fi
+f_envload
+case "${1}" in
+ stop)
+ f_rmtemp
+ f_rmdns
+ f_dnsrestart
+ ;;
+ restart)
+ f_rmtemp
+ f_rmdns
+ f_envcheck
+ f_main
+ ;;
+ suspend)
+ f_switch suspend
+ ;;
+ resume)
+ f_switch resume
+ ;;
+ query)
+ f_query "${2}"
+ ;;
+ *)
+ f_envcheck
+ f_main
+ ;;
+esac
exit 0
PKG_NAME:=addrwatch
PKG_VERSION:=0.8
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-master.tar.gz
PKG_SOURCE_URL:=https://github.com/fln/addrwatch/releases/download/$(PKG_VERSION)/
$(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/addrwatch $(1)/usr/sbin/
$(INSTALL_BIN) ./files/addrwatch.init $(1)/etc/init.d/addrwatch
- $(INSTALL_CONF) ./files/addrwatch.config $(1)/etc/config/addrwatch$
+ $(INSTALL_CONF) ./files/addrwatch.config $(1)/etc/config/addrwatch
endef
$(eval $(call BuildPackage,addrwatch))
START=50
USE_PROCD=1
-. /lib/functions/network.sh
-
validate_section_addrwatch() {
uci_validate_section addrwatch addrwatch "${1}" \
'disabled:bool:0' \
}
start_service() {
+ . /lib/functions/network.sh
config_load 'addrwatch'
config_foreach start_instance 'addrwatch'
}
-menu "Aria2 configuration"
+menu "Aria2 Configuration"
depends on PACKAGE_aria2
choice
- prompt "SSL library"
+ prompt "SSL Library"
default ARIA2_OPENSSL
config ARIA2_OPENSSL
bool "GNUTLS"
config ARIA2_NOSSL
- bool "No SSL support"
+ bool "No SSL Support"
endchoice
config ARIA2_BITTORRENT
- bool "Enable bittorrent support"
+ bool "Enable Bittorrent Support"
depends on ARIA2_OPENSSL
default n
-config ARIA2_METALINK
- bool "Enable metalink support"
- default n
-
config ARIA2_SFTP
- bool "Enable sftp support"
+ bool "Enable SFTP Support"
default n
+config ARIA2_ASYNC_DNS
+ bool "Enable Async DNS Support"
+ default n
+
+config ARIA2_COOKIE
+ bool "Enable Firefox3/Chromium Cookie Support"
+ default n
+
+config ARIA2_METALINK
+ bool "Enable Metalink Support"
+ default n
+
choice
- prompt "XML library"
- default ARIA2_EXPAT
+ prompt "XML Library"
+ default ARIA2_LIBXML2
depends on ARIA2_METALINK
+config ARIA2_LIBXML2
+ bool "LIBXML2"
+
config ARIA2_EXPAT
bool "EXPAT"
-config ARIA2_LIBXML2
- bool "LIBXML2"
-
endchoice
endmenu
include $(TOPDIR)/rules.mk
PKG_NAME:=aria2
-PKG_VERSION:=1.30.0
+PKG_VERSION:=1.31.0
PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://github.com/aria2/aria2/releases/download/release-$(PKG_VERSION)/
-PKG_MD5SUM:=8c22f569d3fb9e42c5fd9a95173b9b5f
+PKG_HASH:=7b85619048b23406f241e38a5b1b8b0bc2cae9e80fd117810c2a71ecca813f8c
PKG_INSTALL:=1
PKG_MAINTAINER:=Imre Kaloz <kaloz@openwrt.org>, Hsing-Wang Liao <kuoruan@gmail.com>
ARIA2_OPENSSL \
ARIA2_GNUTLS \
ARIA2_BITTORRENT \
- ARIA2_METALINK \
ARIA2_SFTP \
+ ARIA2_ASYNC_DNS \
+ ARIA2_COOKIE \
+ ARIA2_METALINK \
ARIA2_EXPAT \
ARIA2_LIBXML2
SUBMENU:=File Transfer
TITLE:=lightweight download utility
URL:=https://aria2.github.io/
- DEPENDS:=+zlib +ARIA2_SFTP:libssh2 +ARIA2_LIBXML2:libxml2 +ARIA2_EXPAT:libexpat +libstdcpp +ARIA2_OPENSSL:libopenssl +ARIA2_GNUTLS:libgnutls
+ DEPENDS:=+zlib +libstdcpp +ARIA2_SFTP:libssh2 +ARIA2_ASYNC_DNS:libcares +ARIA2_COOKIE:libsqlite3 +ARIA2_LIBXML2:libxml2 +ARIA2_EXPAT:libexpat +ARIA2_OPENSSL:libopenssl +ARIA2_GNUTLS:libgnutls
endef
define Package/aria2/description
CONFIGURE_ARGS += \
--disable-nls \
$(if $(CONFIG_ARIA2_NOSSL),--disable,--enable)-ssl \
- $(if $(CONFIG_ARIA2_OPENSSL),--with,--without)-openssl \
- $(if $(CONFIG_ARIA2_GNUTLS),--with,--without)-gnutls \
$(if $(CONFIG_ARIA2_BITTORRENT),--enable,--disable)-bittorrent \
$(if $(CONFIG_ARIA2_METALINK),--enable,--disable)-metalink \
+ $(if $(CONFIG_ARIA2_OPENSSL),--with,--without)-openssl \
+ $(if $(CONFIG_ARIA2_GNUTLS),--with,--without)-gnutls \
$(if $(CONFIG_ARIA2_SFTP),--with,--without)-libssh2 \
+ $(if $(CONFIG_ARIA2_ASYNC_DNS),--with,--without)-libcares \
+ $(if $(CONFIG_ARIA2_COOKIE),--with,--without)-sqlite3 \
$(if $(CONFIG_ARIA2_LIBXML2),--with,--without)-libxml2 \
$(if $(CONFIG_ARIA2_EXPAT),--with,--without)-libexpat \
--without-libnettle \
--without-libgmp \
--without-libgcrypt \
- --without-libcares \
--without-libuv \
- --without-sqlite3 \
--with-libz
define Package/aria2/install
include $(TOPDIR)/rules.mk
PKG_NAME:=bitlbee
-PKG_VERSION:=3.4.2
+PKG_VERSION:=3.5.1
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://get.bitlbee.org/src/ \
http://distcache.FreeBSD.org/local-distfiles/brix/
-PKG_MD5SUM:=69c85554def74f314e3b6e390389a30b0e748f23ef37883e9d7545ee2c45ea57
+PKG_MD5SUM:=9636d7fd89ebb3756c13a9a3387736ca6d56ccf66ec0580d512f07b21db0fa69
PKG_MAINTAINER:=Nikil Mehta <nikil.mehta@gmail.com>
PKG_LICENSE:=GPL-2.0
include $(TOPDIR)/rules.mk
PKG_NAME:=fping
-PKG_VERSION:=3.13
+PKG_VERSION:=3.16
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://fping.org/dist/
-PKG_MD5SUM:=4bb28efd1cb3d1240ae551dadc20daa852b1ba71bafe32e49ca629c1848e5720
+PKG_MD5SUM:=2f753094e4df3cdb1d99be1687c0fb7d2f14c0d526ebf03158c8c5519bc78f54
PKG_MAINTAINER:=Nikil Mehta <nikil.mehta@gmail.com>
PKG_LICENSE:=BSD-4-Clause
#
-# Copyright (C) 2014-2016 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+# Copyright (C) 2014-2017 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
include $(TOPDIR)/rules.mk
PKG_NAME:=knot
-PKG_VERSION:=2.3.0
+PKG_VERSION:=2.3.3
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/
-PKG_MD5SUM:=7ca754f972fb07faa4f30e50d8a4385b
+PKG_HASH:=a929bce3b957a81776b1db7b43b0e4473339bf16be8dbba5abb4b0593bf43c94
PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
PKG_LICENSE:=GPL-3.0 LGPL-2.0 0BSD MIT OLDAP-2.8
define Package/knot-zonecheck/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/kzonecheck $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kzonecheck $(1)/usr/bin/
endef
define Package/knot-keymgr/install
+++ /dev/null
-From 84849be189c49ef9556bd84d5e5103317372e8a7 Mon Sep 17 00:00:00 2001
-From: Karel Slany <karel.slany@nic.cz>
-Date: Thu, 11 Aug 2016 11:39:39 +0200
-Subject: [PATCH] Added conversion to wire format when writing FNV64 hash
- values.
-
-Test on big-endian machines have been failing.
----
- src/libknot/cookies/alg-fnv64.c | 6 +++---
- tests/libknot/test_cookies-client.c | 20 ++++++++++----------
- tests/libknot/test_cookies-server.c | 20 ++++++++++----------
- 3 files changed, 23 insertions(+), 23 deletions(-)
-
-diff --git a/src/libknot/cookies/alg-fnv64.c b/src/libknot/cookies/alg-fnv64.c
-index 9989a4f..5e263c1 100644
---- a/src/libknot/cookies/alg-fnv64.c
-+++ b/src/libknot/cookies/alg-fnv64.c
-@@ -17,10 +17,10 @@
- #include <assert.h>
- #include <stdint.h>
- #include <stdlib.h>
--#include <string.h>
-
- #include "contrib/fnv/fnv.h"
- #include "contrib/sockaddr.h"
-+#include "contrib/wire.h"
- #include "libknot/attribute.h"
- #include "libknot/cookies/alg-fnv64.h"
- #include "libknot/rrtype/opt-cookie.h"
-@@ -80,7 +80,7 @@ static uint16_t cc_gen_fnv64(const struct knot_cc_input *input,
- assert(KNOT_OPT_COOKIE_CLNT == sizeof(hash_val));
-
- cc_len = sizeof(hash_val);
-- memcpy(cc_out, &hash_val, cc_len);
-+ wire_write_u64(cc_out, hash_val);
-
- return cc_len;
- }
-@@ -127,7 +127,7 @@ static uint16_t sc_gen_fnv64(const struct knot_sc_input *input,
- assert(SRVR_FNV64_HASH_SIZE == sizeof(hash_val));
-
- hash_len = sizeof(hash_val);
-- memcpy(hash_out, &hash_val, hash_len);
-+ wire_write_u64(hash_out, hash_val);
-
- return hash_len;
- }
-diff --git a/tests/libknot/test_cookies-client.c b/tests/libknot/test_cookies-client.c
-index 44be903..712dbba 100644
---- a/tests/libknot/test_cookies-client.c
-+++ b/tests/libknot/test_cookies-client.c
-@@ -110,7 +110,7 @@ int main(int argc, char *argv[])
- hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- {
-- uint8_t expected[] = { 0x74, 0x31, 0xf9, 0xa8, 0x03, 0xef, 0x15, 0xb1 };
-+ uint8_t expected[] = { 0xb1, 0x15, 0xef, 0x03, 0xa8, 0xf9, 0x31, 0x74 };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- }
-
-@@ -123,7 +123,7 @@ int main(int argc, char *argv[])
- hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- {
-- uint8_t expected[] = { 0x7c, 0x62, 0x25, 0xd2, 0x43, 0xdd, 0x09, 0xe7 };
-+ uint8_t expected[] = { 0xe7, 0x09, 0xdd, 0x43, 0xd2, 0x25, 0x62, 0x7c };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- }
-
-@@ -136,7 +136,7 @@ int main(int argc, char *argv[])
- hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- {
-- uint8_t expected[] = { 0x7c, 0x62, 0x25, 0xd2, 0x43, 0xdd, 0x09, 0xe7 };
-+ uint8_t expected[] = { 0xe7, 0x09, 0xdd, 0x43, 0xd2, 0x25, 0x62, 0x7c };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- }
-
-@@ -149,7 +149,7 @@ int main(int argc, char *argv[])
- hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- {
-- uint8_t expected[] = { 0x05, 0xa9, 0xd1, 0x08, 0x1b, 0x98, 0xe0, 0xaa };
-+ uint8_t expected[] = { 0xaa, 0xe0, 0x98, 0x1b, 0x08, 0xd1, 0xa9, 0x05 };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- }
-
-@@ -162,7 +162,7 @@ int main(int argc, char *argv[])
- hash_len = knot_cc_alg_fnv64.gen_func(&cc_in, hash, hash_len);
- ok(hash_len != 0 && hash_len == knot_cc_alg_fnv64.cc_size, "cookies: FNV64 client cookie output");
- {
-- uint8_t expected[] = { 0x05, 0xa9, 0xd1, 0x08, 0x1b, 0x98, 0xe0, 0xaa };
-+ uint8_t expected[] = { 0xaa, 0xe0, 0x98, 0x1b, 0x08, 0xd1, 0xa9, 0x05 };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 client cookie content");
- }
-
-@@ -179,7 +179,7 @@ int main(int argc, char *argv[])
- }
-
- {
-- uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+ uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
- ret = knot_cc_check(cookie, sizeof(cookie), NULL, &knot_cc_alg_fnv64);
- ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check no input");
- }
-@@ -190,7 +190,7 @@ int main(int argc, char *argv[])
- cc_in.secret_data = secret;
- cc_in.secret_len = sizeof(secret);
- {
-- uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+ uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
- ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, NULL);
- ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check no algorithm");
- }
-@@ -201,7 +201,7 @@ int main(int argc, char *argv[])
- cc_in.secret_data = secret;
- cc_in.secret_len = sizeof(secret);
- {
-- uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+ uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
- ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, &knot_cc_alg_fnv64);
- ok(ret == KNOT_EOK, "cookies: FNV64 client good cookie check");
- }
-@@ -212,7 +212,7 @@ int main(int argc, char *argv[])
- cc_in.secret_data = secret;
- cc_in.secret_len = sizeof(secret);
- {
-- uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xaf };
-+ uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x33 };
- ret = knot_cc_check(cookie, sizeof(cookie) - 1, &cc_in, &knot_cc_alg_fnv64);
- ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check invalid length");
- }
-@@ -223,7 +223,7 @@ int main(int argc, char *argv[])
- cc_in.secret_data = secret;
- cc_in.secret_len = sizeof(secret);
- {
-- uint8_t cookie[] = { 0x33, 0x0c, 0xa6, 0x80, 0x94, 0x17, 0xe5, 0xae };
-+ uint8_t cookie[] = { 0xaf, 0xe5, 0x17, 0x94, 0x80, 0xa6, 0x0c, 0x32 };
- ret = knot_cc_check(cookie, sizeof(cookie), &cc_in, &knot_cc_alg_fnv64);
- ok(ret == KNOT_EINVAL, "cookies: FNV64 client cookie check invalid cookie");
- }
-diff --git a/tests/libknot/test_cookies-server.c b/tests/libknot/test_cookies-server.c
-index 32001c1..66a54ba 100644
---- a/tests/libknot/test_cookies-server.c
-+++ b/tests/libknot/test_cookies-server.c
-@@ -28,10 +28,10 @@
- #include "libknot/rrtype/opt-cookie.h"
-
- const char *cookie_opts[] = {
-- "\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\xe0\xd9\x95\x4e\xbc\xc3\x99\x18", /* 8 octets long wrong server cookie. */
-- "\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\xe0\xd9\x95\x4e\xbc\xc3\x99\x19", /* 8 octets long OK server cookie. */
-- "\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\xc0\xbd\xdb\xec\x19\x78\x88\x38", /* 8B nonce 8B hash long wrong server cookie. */
-- "\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\xc0\xbd\xdb\xec\x19\x78\x88\x39" /* 8B nonce 8B hash long OK server cookie. */
-+ "\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x19\x99\xc3\xbc\x4e\x95\xd9\xdf", /* 8 octets long wrong server cookie. */
-+ "\x00\x0a" "\x00\x10" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x19\x99\xc3\xbc\x4e\x95\xd9\xe0", /* 8 octets long OK server cookie. */
-+ "\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x39\x88\x78\x19\xec\xdb\xbd\xbf", /* 8B nonce 8B hash long wrong server cookie. */
-+ "\x00\x0a" "\x00\x18" "\x00\x01\x02\x03\x04\x05\x06\x07" "\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x39\x88\x78\x19\xec\xdb\xbd\xc0"/* 8B nonce 8B hash long OK server cookie. */
- };
-
- #define ROPT(i) ((const uint8_t *)cookie_opts[(i)])
-@@ -193,7 +193,7 @@ int main(int argc, char *argv[])
- hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- ok(hash_len != 0, "cookies: FNV64 server cookie output");
- {
-- uint8_t expected[] = { 0x75, 0x45, 0x7c, 0x9a, 0xe0, 0x13, 0xa8, 0xea };
-+ uint8_t expected[] = { 0xea, 0xa8, 0x13, 0xe0, 0x9a, 0x7c, 0x45, 0x75 };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- }
-
-@@ -210,7 +210,7 @@ int main(int argc, char *argv[])
- hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- ok(hash_len != 0, "cookies: FNV64 server cookie output");
- {
-- uint8_t expected[] = { 0xc0, 0xbd, 0xdb, 0xec, 0x19, 0x78, 0x88, 0x39 };
-+ uint8_t expected[] = { 0x39, 0x88, 0x78, 0x19, 0xec, 0xdb, 0xbd, 0xc0 };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- }
-
-@@ -227,7 +227,7 @@ int main(int argc, char *argv[])
- hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- ok(hash_len != 0, "cookies: FNV64 server cookie output");
- {
-- uint8_t expected[] = { 0xe0, 0xd9, 0x95, 0x4e, 0xbc, 0xc3, 0x99, 0x19 };
-+ uint8_t expected[] = { 0x19, 0x99, 0xc3, 0xbc, 0x4e, 0x95, 0xd9, 0xe0 };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- }
-
-@@ -244,7 +244,7 @@ int main(int argc, char *argv[])
- hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- ok(hash_len != 0, "cookies: FNV64 server cookie output");
- {
-- uint8_t expected[] = { 0x4d, 0xde, 0xfa, 0x22, 0xb9, 0x0a, 0xcc, 0xd8 };
-+ uint8_t expected[] = { 0xd8, 0xcc, 0x0a, 0xb9, 0x22, 0xfa, 0xde, 0x4d };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- }
-
-@@ -261,7 +261,7 @@ int main(int argc, char *argv[])
- hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- ok(hash_len != 0, "cookies: FNV64 server cookie output");
- {
-- uint8_t expected[] = { 0xa0, 0x35, 0xe3, 0xe0, 0x78, 0x7a, 0x91, 0xaf };
-+ uint8_t expected[] = { 0xaf, 0x91, 0x7a, 0x78, 0xe0, 0xe3, 0x35, 0xa0 };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- }
-
-@@ -278,7 +278,7 @@ int main(int argc, char *argv[])
- hash_len = knot_sc_alg_fnv64.hash_func(&sc_in, hash, hash_len);
- ok(hash_len != 0, "cookies: FNV64 server cookie output");
- {
-- uint8_t expected[] = { 0x8e, 0xa3, 0xf8, 0x97, 0x84, 0x0a, 0x3d, 0x8b };
-+ uint8_t expected[] = { 0x8b, 0x3d, 0x0a, 0x84, 0x97, 0xf8, 0xa3, 0x8e };
- ok(sizeof(expected) == hash_len && 0 == memcmp(expected, hash, hash_len), "cookies: FNV64 server cookie content");
- }
-
---
-2.7.4
-
include $(TOPDIR)/rules.mk
PKG_NAME:=lighttpd
-PKG_VERSION:=1.4.42
+PKG_VERSION:=1.4.45
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://download.lighttpd.net/lighttpd/releases-1.4.x
-PKG_MD5SUM:=53c55d7e1dac7adec161cd5490491f6d
+PKG_MD5SUM:=a128e1eda76899ce3fd115efae5fe631
PKG_LICENSE:=BSD-3c
PKG_LICENSE_FILES:=COPYING
--- /dev/null
+From: Glenn Strauss <gstrauss@gluelogic.com>
+Subject: [PATCH] [mod_cgi] fix CGI local-redir w/ url.rewrite-once (fixes
+ #2793)
+
+x-ref:
+ "1.4.40 regression: broken redirect (using Location) between url.rewrite-once URLs"
+ https://redmine.lighttpd.net/issues/2793
+---
+ src/mod_cgi.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/src/mod_cgi.c
++++ b/src/mod_cgi.c
+@@ -560,8 +560,7 @@ static int cgi_demux_response(server *sr
+ }
+
+ connection_response_reset(srv, con); /*(includes con->http_status = 0)*/
+-
+- con->mode = DIRECT;
++ plugins_call_connection_reset(srv, con);
+ return FDEVENT_HANDLED_COMEBACK;
+ }
+ }
+@@ -780,7 +779,7 @@ static int cgi_recv_response(server *srv
+ /* if we get a IN|HUP and have read everything don't exec the close twice */
+ return HANDLER_FINISHED;
+ case FDEVENT_HANDLED_COMEBACK:
+- cgi_connection_close(srv, hctx);
++ /*cgi_connection_close(srv, hctx);*//*(already cleaned up and hctx is now invalid)*/
+ return HANDLER_COMEBACK;
+ case FDEVENT_HANDLED_ERROR:
+ log_error_write(srv, __FILE__, __LINE__, "s", "demuxer failed: ");
--without-pam
endif
-ifeq ($(CONFIG_OPENSSL_ENGINE),y)
+ifeq ($(CONFIG_OPENSSL_ENGINE_CRYPTO),y)
CONFIGURE_ARGS+= \
--with-ssl-engine
endif
ln -sfn $CHAP_SECRETS /etc/ppp/chap-secrets
procd_open_instance
- procd_set_param command $BIN -c $CONFIG -o $OPTIONS_PPTP
+ procd_set_param command $BIN -c $CONFIG --fg -o $OPTIONS_PPTP
procd_close_instance
}
include $(TOPDIR)/rules.mk
PKG_NAME:=unbound
-PKG_VERSION:=1.6.0
-PKG_RELEASE:=5
+PKG_VERSION:=1.6.1
+PKG_RELEASE:=1
PKG_LICENSE:=BSD-3-Clause
PKG_LICENSE_FILES:=LICENSE
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://www.unbound.net/downloads
-PKG_MD5SUM:=78409eccf7260d260b6463f85e59c66b
+PKG_HASH:=42df63f743c0fe8424aeafcf003ad4b880b46c14149d696057313f5c1ef51400
PKG_BUILD_DEPENDS:=libexpat
PKG_BUILD_PARALLEL:=1
. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5
+. IN DS 20326 8 2 E06D44B80B8F1D39A95C0B0D7C65D08458E880409BBC683457104237C7F8EC8D
+
if_fqdn="$ifdashname.$host_fqdn"
+ if [ -z "${ulaprefix%%:/*}" ] ; then
+ # Nonsense so this option isn't globbed below
+ ulaprefix="fdno:such:addr::/48"
+ fi
+
+
if [ "$ignore" -gt 0 ] ; then
mode="$UNBOUND_D_WAN_FQDN"
diff --git a/doc/example.conf.in b/doc/example.conf.in
-index 55bbc32..14452fa 100644
+index 83e7c5c..3ea2b28 100644
--- a/doc/example.conf.in
+++ b/doc/example.conf.in
-@@ -1,20 +1,82 @@
+@@ -1,9 +1,10 @@
-#
-# Example configuration file.
-#
--# See unbound.conf(5) man page, version 1.6.0.
+-# See unbound.conf(5) man page, version 1.6.1.
-#
-# this is a comment.
+##############################################################################
#Use this to include other text into the file.
#include: "otherfile.conf"
-
- # The server clause sets the main parameters.
+@@ -12,9 +13,71 @@
server:
-- # whitespace is not necessary, but looks cleaner.
+ # whitespace is not necessary, but looks cleaner.
- # verbosity number, 0 is least verbose. 1 is default.
+ # verbosity 1 is default
+ access-control: ::0/0 allow
+
+ # this limits TCP service but uses less buffers
-+ outgoing-num-tcp: 1
++ outgoing-num-tcp: 1
+ incoming-num-tcp: 1
+
+ # use somewhat higher port numbers versus possible NAT issue
PKG_NAME:=wireguard
-PKG_VERSION:=0.0.20170214
+PKG_VERSION:=0.0.20170223
PKG_RELEASE:=2
PKG_SOURCE:=WireGuard-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://git.zx2c4.com/WireGuard/snapshot/
-PKG_HASH:=1e4ee213d2a5ac672c952c59e9c64d6d7d5dc3e21c003aee30d75208237e8bf5
+PKG_HASH:=6d2c8cd29c4f9fb404546a4749ec050739a26b4a49b5864f1dec531377c3c50d
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=COPYING
$(call Build/Compile/Default)
endef
+define Package/wireguard/install
+ true
+endef
+
define Package/wireguard/description
$(call Package/wireguard/Default/description)
endef
proto_config_add_int "listen_port"
proto_config_add_int "mtu"
proto_config_add_string "preshared_key"
+ proto_config_add_string "fwmark"
available=1
no_proto_task=1
}
config_get addresses "${config}" "addresses"
config_get mtu "${config}" "mtu"
config_get preshared_key "${config}" "preshared_key"
+ config_get fwmark "${config}" "fwmark"
# create interface
ip link del dev "${config}" 2>/dev/null
if [ "${preshared_key}" ]; then
echo "PresharedKey=${preshared_key}" >> "${wg_cfg}"
fi
+ if [ "${fwmark}" ]; then
+ echo "FwMark=${fwmark}" >> "${wg_cfg}"
+ fi
config_foreach proto_wireguard_setup_peer "wireguard_${config}"
# apply configuration file
PKG_NAME:=collectd
PKG_VERSION:=5.7.1
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://collectd.org/files/ \
battery \
ceph \
cgroups \
- chrony \
cpusleep \
curl_json \
curl_xml \
apcups \
ascent \
bind \
+ chrony \
conntrack \
contextswitch \
cpu \
load \
logfile \
madwifi \
+ match_empty_counter \
+ match_hashed \
+ match_regex \
+ match_timediff \
+ match_value \
memory \
modbus \
mysql \
$(eval $(call BuildPlugin,apcups,apcups status input,apcups,))
$(eval $(call BuildPlugin,ascent,ascent status input,ascent,+PACKAGE_collectd-mod-ascent:libcurl +PACKAGE_collectd-mod-ascent:libxml2))
$(eval $(call BuildPlugin,bind,BIND server/zone input,bind,+PACKAGE_collectd-mod-bind:libcurl +PACKAGE_collectd-mod-bind:libxml2))
+$(eval $(call BuildPlugin,chrony,chrony status input,chrony,))
$(eval $(call BuildPlugin,conntrack,connection tracking table size input,conntrack,))
$(eval $(call BuildPlugin,contextswitch,context switch input,contextswitch,))
$(eval $(call BuildPlugin,cpu,CPU input,cpu,))
$(eval $(call BuildPlugin,load,system load input,load,))
$(eval $(call BuildPlugin,logfile,log files output,logfile,))
$(eval $(call BuildPlugin,madwifi,MadWifi status input,madwifi,))
+$(eval $(call BuildPlugin,match-empty-counter,empty-counter match,match_empty_counter,))
+$(eval $(call BuildPlugin,match-hashed,hashed match,match_hashed,))
+$(eval $(call BuildPlugin,match-regex,regex match,match_regex,))
+$(eval $(call BuildPlugin,match-timediff,timediff match,match_timediff,))
+$(eval $(call BuildPlugin,match-value,value match,match_value,))
#$(eval $(call BuildPlugin,mysql,MySQL status input,mysql,+PACKAGE_collectd-mod-mysql:libmysqlclient-r))
$(eval $(call BuildPlugin,memory,physical memory usage input,memory,))
$(eval $(call BuildPlugin,modbus,read variables through libmodbus,modbus,+PACKAGE_collectd-mod-modbus:libmodbus))
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=cryptodev-linux
-PKG_VERSION:=1.8
-PKG_RELEASE:=2
+PKG_VERSION:=1.8.git-2017-02-09
+PKG_RELEASE:=1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://download.gna.org/cryptodev-linux/
-PKG_MD5SUM:=02644cc4cd02301e0b503a332eb2f0b5
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+PKG_MIRROR_HASH:=627ce96e3ba66ca9c8e14f5d80193061fbe9d45cd8d4b69a1bf4dd5a2d50eed8
+PKG_SOURCE_URL:=https://github.com/cryptodev-linux/cryptodev-linux.git
+PKG_SOURCE_VERSION:=6818263667ca488f9b1c86e36ea624c4ea1c309f
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+++ /dev/null
-#
-# Copyright (C) 2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=luci-app-lxc
-PKG_RELEASE:=20161030
-
-PKG_LICENSE:=Apache-2.0
-
-PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/luci-app-lxc
- SECTION:=luci
- CATEGORY:=LuCI
- SUBMENU:=3. Applications
- TITLE:=LXC management Web UI
- DEPENDS:=+luci-mod-admin-full +lxc +lxc-create +liblxc +rpcd-mod-lxc +getopt +xz
- MAINTAINER:=Petar Koretic <petar.koretic@sartura.hr>
-endef
-
-define Package/luci-app-lxc/description
- This package will install LXC management Web UI.
-endef
-
-define Build/Prepare
-endef
-
-define Build/Configure
-endef
-
-define Build/Compile
-endef
-
-define Package/luci-app-lxc/install
- $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/
- $(INSTALL_BIN) \
- ./files/controller/lxc.lua \
- $(1)/usr/lib/lua/luci/controller/
-
- $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/
- $(INSTALL_DATA) \
- ./files/view/lxc.htm \
- $(1)/usr/lib/lua/luci/view/
-
- $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/
- $(INSTALL_BIN) \
- ./files/model/cbi/lxc.lua \
- $(1)/usr/lib/lua/luci/model/cbi/
-
- $(INSTALL_DIR) $(1)/etc/config/
- $(INSTALL_DATA) \
- ./files/lxc.config \
- $(1)/etc/config/lxc
-
- $(INSTALL_DIR) $(1)/www
- $(CP) -R \
- ./files/www/* \
- $(1)/www
-endef
-
-$(eval $(call BuildPackage,luci-app-lxc))
+++ /dev/null
---[[
-
-LuCI LXC module
-
-Copyright (C) 2014, Cisco Systems, Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Author: Petar Koretic <petar.koretic@sartura.hr>
-
-]]--
-
-module("luci.controller.lxc", package.seeall)
-
-require "ubus"
-local conn = ubus.connect()
-if not conn then
- error("Failed to connect to ubus")
-end
-
-
-function fork_exec(command)
- local pid = nixio.fork()
- if pid > 0 then
- return
- elseif pid == 0 then
- -- change to root dir
- nixio.chdir("/")
-
- -- patch stdin, out, err to /dev/null
- local null = nixio.open("/dev/null", "w+")
- if null then
- nixio.dup(null, nixio.stderr)
- nixio.dup(null, nixio.stdout)
- nixio.dup(null, nixio.stdin)
- if null:fileno() > 2 then
- null:close()
- end
- end
-
- -- replace with target command
- nixio.exec("/bin/sh", "-c", command)
- end
-end
-
-function index()
- page = node("admin", "services", "lxc")
- page.target = cbi("lxc")
- page.title = _("LXC Containers")
- page.order = 70
-
- page = entry({"admin", "services", "lxc_create"}, call("lxc_create"), nil)
- page.leaf = true
-
- page = entry({"admin", "services", "lxc_action"}, call("lxc_action"), nil)
- page.leaf = true
-
- page = entry({"admin", "services", "lxc_get_downloadable"}, call("lxc_get_downloadable"), nil)
- page.leaf = true
-
- page = entry({"admin", "services", "lxc_configuration_get"}, call("lxc_configuration_get"), nil)
- page.leaf = true
-
- page = entry({"admin", "services", "lxc_configuration_set"}, call("lxc_configuration_set"), nil)
- page.leaf = true
-
-end
-
-function lxc_get_downloadable()
- luci.http.prepare_content("application/json")
-
- local f = io.popen('uname -m', 'r')
- local target = f:read('*a')
- f:close()
- target = target:gsub("^%s*(.-)%s*$", "%1")
-
- local templates = {}
-
- local f = io.popen('lxc-create -n just_want_to_list_available_lxc_templates -t download -- --list', 'r')
-
- for line in f:lines() do
- local dist,version = line:match("^(%S+)%s+(%S+)%s+" .. target .. "%s+default%s+%S+$")
- if dist~=nil and version~=nil then templates[#templates + 1] = dist .. ":" .. version end
- end
-
- f:close()
- luci.http.write_json(templates)
-end
-
-function lxc_create(lxc_name, lxc_template)
- luci.http.prepare_content("text/plain")
-
- local uci = require("uci").cursor()
-
- local url = uci:get("lxc", "lxc", "url")
-
- if not pcall(dofile, "/etc/openwrt_release") then
- return luci.http.write("1")
- end
-
- local f = io.popen('uname -m', 'r')
- local target = f:read('*a')
- f:close()
- target = target:gsub("^%s*(.-)%s*$", "%1")
-
- local lxc_dist = lxc_template:gsub("(.*):(.*)", '%1')
- local lxc_release = lxc_template:gsub("(.*):(.*)", '%2')
-
- local data = conn:call("lxc", "create", { name = lxc_name, template = "download", args = { "--server", url, "--no-validate", "--dist", lxc_dist, "--release", lxc_release, "--arch", target } } )
-
- luci.http.write(data)
-end
-
-function lxc_action(lxc_action, lxc_name)
- luci.http.prepare_content("application/json")
-
- local data, ec = conn:call("lxc", lxc_action, lxc_name and { name = lxc_name} or {} )
-
- luci.http.write_json(ec and {} or data)
-end
-
-function lxc_get_config_path()
- local f = io.open("/etc/lxc/lxc.conf", "r")
- local content = f:read("*all")
- f:close()
- local ret = content:match('^%s*lxc.lxcpath%s*=%s*([^%s]*)')
- if ret then
- return ret .. "/"
- else
- return "/srv/lxc/"
- end
-end
-
-function lxc_configuration_get(lxc_name)
- luci.http.prepare_content("text/plain")
-
- local f = io.open(lxc_get_config_path() .. lxc_name .. "/config", "r")
- local content = f:read("*all")
- f:close()
-
- luci.http.write(content)
-end
-
-function lxc_configuration_set(lxc_name)
- luci.http.prepare_content("text/plain")
-
- local lxc_configuration = luci.http.formvalue("lxc_configuration")
-
- if lxc_configuration == nil then
- return luci.http.write("1")
- end
-
- local f, err = io.open(lxc_get_config_path() .. lxc_name .. "/config","w+")
- if not f then
- return luci.http.write("2")
- end
-
- f:write(lxc_configuration)
- f:close()
-
- luci.http.write("0")
-end
-
+++ /dev/null
-#
-# lxc uci configuration
-#
-
-config lxc 'lxc'
- option url 'virtualwrt.org/containers/'
+++ /dev/null
---[[
-
-LuCI LXC module
-
-Copyright (C) 2014, Cisco Systems, Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Author: Petar Koretic <petar.koretic@sartura.hr>
-
-]]--
-
-local fs = require "nixio.fs"
-
-m = Map("lxc", translate("LXC Containers"))
-
-if fs.access("/etc/config/lxc") then
- m:section(SimpleSection).template = "lxc"
-
- s = m:section(TypedSection, "lxc", translate("Options"))
- s.anonymous = true
- s.addremove = false
-
- s:option(Value, "url", translate("Containers URL"))
-end
-
-return m
+++ /dev/null
-<%#
-
-LuCI LXC module
-
-Copyright (C) 2014, Cisco Systems, Inc.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Author: Petar Koretic <petar.koretic@sartura.hr>
-
--%>
-
-<fieldset class="cbi-section">
- <legend><%:Available Containers%></legend>
- <div class="cbi-section-node">
- <table id="t_lxc_list" class="cbi-section-table">
- <tr class="cbi-section-table-titles">
- <th class="cbi-section-table-cell"><%:Name%></th>
- <th class="cbi-section-table-cell"><%:Status%></th>
- <th class="cbi-section-table-cell"><%:Actions%></th>
- </tr>
- </table>
- </div>
-</fieldset>
-
-<fieldset class="cbi-section">
- <span id="lxc-list-output"></span>
-</fieldset>
-
-<hr/>
-<fieldset class="cbi-section">
- <legend><%:Create New Container%></legend>
- <div class="cbi-section-node">
- <table id="t_lxc_create" class="cbi-section-table">
- <tr class="cbi-section-table-titles">
- <th class="cbi-section-table-cell"><%:Name%></th>
- <th class="cbi-section-table-cell"><%:Template%></th>
- <th class="cbi-section-table-cell"><%:Actions%></th>
- </tr>
- <tr id="tr_holder">
- <td>
- <input type="text" id="tx_name" placeholder="<%:Enter new name%>" value='' />
- </td>
- <td>
- <select id="s_template" class="cbi-input-select cbi-button">
- </select>
- </td>
- <td>
- <input type="button" id="bt_create" value="<%:Create%>" onclick="lxc_create(tr_holder)" class="cbi-button cbi-button-add" />
- <span id="lxc-add-loader" style="display:inline-block; width:16px; height:16px; margin:0 5px"></span>
- </td>
- </tr>
- </table>
- </div>
-</fieldset>
-
-<fieldset class="cbi-section">
- <span id="lxc-add-output"></span>
-</fieldset>
-
-<hr/>
-
-<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
-<script type="text/javascript">//<![CDATA[
-
- window.img = { "red" : "<%=resource%>/cbi/red.gif", "green" : "<%=resource%>/cbi/green.gif", "purple" : "<%=resource%>/cbi/purple.gif" }
- window.states = { "STOPPED" : "red", "RUNNING" : "green", "FROZEN" : "purple"}
-
- var t_lxc_list = document.getElementById('t_lxc_list');
- var loader_html = '<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" width="16" height="16" style="vertical-align:middle" /> ';
- var timeout_msg = 0
- var output_list = document.getElementById("lxc-list-output")
- var output_add = document.getElementById("lxc-add-output")
- var loader_add = document.getElementById("lxc-add-loader")
-
- function lxc_create(tr)
- {
- var lxc_name = tr.querySelector("#tx_name").value.trim()
- var lxc_template = tr.querySelector("#s_template").value
- var bt_create = tr.querySelector("#bt_create")
-
- if (t_lxc_list.querySelector("[data-id='" + lxc_name + "']") != null)
- return info_message(output_add, "Container with that name already exists!", 4000)
-
- bt_create.disabled = true
- output_add.innerHTML = ''
-
- if (!lxc_name || !lxc_name.length)
- {
- bt_create.disabled = false
- return info_message(output_add, "Name cannot be empty!", 4000)
- }
-
- loading(loader_add)
-
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_create/' + '%h/%h'.format(lxc_name, lxc_template) , null,
- function(x)
- {
- bt_create.disabled = false
- loading(loader_add, 0)
-
- if (!x)
- info_message(output_add, "Container creation failed!")
- })
- }
-
- function lxc_create_template(lxc_name, lxc_state)
- {
- var info_row = t_lxc_list.querySelector("#empty")
- if (info_row)
- t_lxc_list.deleteRow(1)
-
- var actions = ''
- actions += '<input type="button" onclick="action_handler(this)" data-action="start" value="<%:Start%>" class="cbi-button cbi-button-apply" />'
- actions+= '<input type="button" onclick="action_handler(this)" data-action="stop" value="<%:Stop%>" class="cbi-button cbi-button-reset" />'
- actions+= '<input type="button" onclick="action_handler(this)" data-action="destroy" value="<%:Delete%>" class="cbi-button cbi-button-remove" />'
- actions+= ' <select class="cbi-input-select cbi-button" onchange="action_more_handler(this)">\
- <option selected disabled>more</option>\
- <option>configure</option>\
- <option>freeze</option>\
- <option>unfreeze</option>\
- <option>reboot</option>\
- </select>'
- actions+= '<span data-loader style="display:inline-block; width:16px; height:16px; margin:0 5px"></span>'
-
- var row = t_lxc_list.insertRow(-1)
- var cell = row.insertCell(-1)
- cell.innerHTML = '%q%h%q'.format("<strong>", lxc_name, "</strong>")
- cell.width = "30%"
- cell.setAttribute("data-id", lxc_name)
-
- cell = row.insertCell(-1)
- cell.width = "20%"
- cell.innerHTML = "<img src='"+window.img[lxc_state]+"'/>"
-
- cell = row.insertCell(-1)
- cell.width = "50%"
- cell.innerHTML = actions
- }
-
- function action_handler(self)
- {
- var action = self.getAttribute("data-action");
-
- var bt_action = self
- var lxc_name = self.parentNode.parentNode.children[0].getAttribute('data-id')
- var status_img = self.parentNode.parentNode.querySelector('img')
- var loader = self.parentNode.querySelector('[data-loader]')
-
- bt_action.disabled = true
-
- if (action == "stop")
- {
- loading(loader)
-
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(action, lxc_name), null,
- function(x, ec)
- {
- loading(loader, 0)
- bt_action.disabled = false
-
- if (!x || ec)
- return info_message(output_list,"Action failed!")
-
- set_status(status_img, "red")
-
- });
- }
-
- else if (action == "start")
- {
- loading(loader)
-
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(action, lxc_name), null,
- function(x, data)
- {
- loading(loader, 0)
- bt_action.disabled = false
-
- //FIXME: uncomment after fixing 'lxc-start'
- if (!x /*|| ec */)
- return info_message(output_list,"Action failed!")
-
- //FIXME: uncomment after fixing 'lxc-start'
- //set_status(status_img, "green")
- });
- }
-
- else if (action == "destroy")
- {
- if (!confirm("This will completely remove LXC container from the disk. Are you sure? (container will be stopped if running)"))
- return
-
- loading(loader)
-
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(action, lxc_name), null,
- function(x, ec)
- {
- loading(loader, 0)
- bt_action.disabled = false
-
- if (!x || ec)
- return info_message(output_list,"Action failed!")
-
- var row = self.parentNode.parentNode
- row.parentNode.removeChild(row)
-
- });
- }
- }
-
- function lxc_configure_handler(self)
- {
- var td = self.parentNode
- var textarea = td.querySelector('[data-id]')
- var lxc_name = textarea.getAttribute('data-id')
- var lxc_configuration = textarea.value
-
- new XHR().post('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_configuration_set/' + lxc_name, "lxc_configuration=" + encodeURIComponent(lxc_configuration) ,
- function(x)
- {
- if (!x || x.responseText != "0")
- return info_message(output_list,"Action failed!")
-
- info_message(output_list,"LXC configuration updated")
- var row = td.parentNode
- row.parentNode.removeChild(row)
- })
- }
-
- function lxc_rename_template(lxc_name)
- {
- var h = '\
- <input data-id="'+ lxc_name + '" type="text" placeholder="Enter new name" /> \
- <input data-id="bt_confirm" onclick="lxc_rename_handler(this)" type="button" class="cbi-button" value="Confirm" />'
-
- return h
- }
-
- function lxc_configure_template(lxc_name, lxc_configuration)
- {
- var h = '\
- <textarea data-id="'+ lxc_name + '" rows="20" style="width:100%">'+ lxc_configuration +'</textarea> \
- <input data-id="bt_confirm" onclick="lxc_configure_handler(this)" type="button" class="cbi-button" value="Confirm" />'
-
- return h
- }
-
- function action_more_handler(self)
- {
- var lxc_name = self.parentNode.parentNode.querySelector('[data-id]').getAttribute('data-id')
- var loader = self.parentNode.parentNode.querySelector('[data-loader]')
-
- var option = self.options[self.selectedIndex].text
-
- self.value = "more"
-
- switch (option)
- {
- case "configure":
- var tr = document.createElement('tr')
- var row = self.parentNode.parentNode
- var next_row = row.nextSibling
- if (next_row && next_row.getAttribute('data-action') !== null)
- row.parentNode.removeChild(next_row)
-
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_configuration_get/' + lxc_name, null,
- function(x)
- {
- tr.innerHTML="<td colspan='" + row.cells.length + "'>" + lxc_configure_template(lxc_name, x.responseText) + "</td>"
- tr.setAttribute('data-action','')
- row.parentNode.insertBefore(tr, row.nextSibling)
- })
-
- break
-
- case "freeze":
- var tr = self.parentNode.parentNode
- var img = tr.querySelector('img')
- if(img.getAttribute('src') != window.img["green"])
- return info_message(output_list,"Container is not running!")
-
- loading(loader)
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(option, lxc_name), null,
- function(x, ec)
- {
- loading(loader, 0)
- if (!x || ec)
- return info_message(output_list,"Action failed!")
-
- set_status(img, "purple")
- })
-
- break
-
- case "unfreeze":
- var tr = self.parentNode.parentNode
- var img = tr.querySelector('img')
-
- if(img.getAttribute('src') != window.img["purple"])
- return info_message(output_list,"Container is not frozen!")
-
- loading(loader)
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(option, lxc_name), null,
- function(x, ec)
- {
- loading(loader, 0)
- if (!x || ec)
- return info_message(output_list,"Action failed!")
-
- set_status(img, "green")
- })
-
- break
-
- case "reboot":
- var tr = self.parentNode.parentNode
- var img = tr.querySelector('img')
- if(img.getAttribute('src') != window.img["green"])
- return info_message(output_list,"Container is not running!")
-
- if (!confirm("Are you sure?"))
- return
-
- loading(loader)
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/' + '%h/%h'.format(option, lxc_name), null,
- function(x, ec)
- {
- loading(loader, 0)
- if (!x || ec)
- return info_message(output_list,"Action failed!")
-
- info_message(output_list,"LXC rebooted")
- })
- break
- }
-
- }
-
- function set_empty(t_lxc_list)
- {
- if (document.getElementById('empty') !== null)
- return
-
- var row_count = t_lxc_list.rows.length;
- while(--row_count) t_lxc_list.deleteRow(row_count);
-
- var row = t_lxc_list.insertRow(-1);
- row.id = 'empty'
- var cell = row.insertCell(0);
- cell.colSpan = 4;
- cell.innerHTML = '<em><br />There are no containers available yet.</em>';
- }
-
- function lxc_list_update()
- {
- XHR.poll(4, '<%=luci.dispatcher.build_url("admin", "services")%>/lxc_action/list', null,
- function(x, data)
- {
- if (!x) return;
-
- var lxc_count = Object.keys(data).length
- if (!data || !lxc_count)
- return set_empty(t_lxc_list)
-
- if (document.getElementById('empty') !== null)
- t_lxc_list.deleteRow(1);
-
- var lxcs = t_lxc_list.querySelectorAll('td[data-id]')
- var lxc_name_table = {}
- for (var i = 0, len = lxcs.length; i < len; i++)
- {
- var lxc_name = lxcs[i].getAttribute('data-id')
- if (!(lxc_name in data))
- {
- var row = t_lxc_list.querySelector("[data-id='" + lxc_name + "']").parentNode
- row.parentNode.removeChild(row)
- continue
- }
-
- lxc_name_table[lxc_name] = lxcs[i].parentNode.querySelector('img')
- }
-
- for(var key in data)
- {
- var lxc_name = key
- var state = window.states[data[key]]
-
- if (!(lxc_name in lxc_name_table))
- lxc_create_template(lxc_name, state)
-
- else if (state != get_status(lxc_name_table[lxc_name]))
- set_status(lxc_name_table[lxc_name], state)
- }
-
- })
- }
-
- function loading(elem, state)
- {
- state = (typeof state === 'undefined') ? 1 : state
-
- if (state === 1)
- elem.innerHTML = loader_html
- else
- setTimeout(function() { elem.innerHTML = ''}, 1000)
- }
-
- function set_status(elem, state)
- {
- state = (typeof state === 'undefined') ? 1 : state
-
- setTimeout(function() { elem.setAttribute('src', window.img[state])}, 300)
- }
-
- function get_status(elem)
- {
- var src = elem.getAttribute('src')
-
- for (var i in img)
- {
- if (img[i] == src)
- return i
- }
- }
-
- function info_message(output, msg, timeout)
- {
- timeout = timeout || 3000
- output.innerHTML = msg
- clearTimeout(timeout_msg)
- timeout_msg = setTimeout(function(){ output.innerHTML=""}, timeout);
- }
-
- lxc_list_update()
-
- new XHR().get('<%=luci.dispatcher.build_url("admin", "services")%>/lxc_get_downloadable', null,
- function(x, data)
- {
- if (!x) return;
-
- var lxc_count = Object.keys(data).length
- if (!data || !lxc_count) return;
- var select = document.getElementById("s_template");
- for(var key in data)
- {
- var option = document.createElement('option');
- option.value = data[key];
- option.text = data[key].replace(/[_:]/g, ' ');
- select.add(option, -1);
- }
- })
-
-//]]></script>
include $(TOPDIR)/rules.mk
PKG_NAME:=mksh
-PKG_VERSION:=52c
+PKG_VERSION:=54
PKG_RELEASE:=1
PKG_MAINTAINER:=Thorsten Glaser <tg@mirbsd.org>
PKG_LICENSE:=MirOS
PKG_SOURCE:=$(PKG_NAME)-R$(PKG_VERSION).tgz
-PKG_SOURCE_URL:=http://www.mirbsd.org/MirOS/dist/mir/mksh
-PKG_MD5SUM:=cc3884e02314447e7b4a3073b8d65d1e
+PKG_SOURCE_URL:=http://www.mirbsd.org/MirOS/dist/mir/mksh \
+ http://pub.allbsd.org/MirOS/dist/mir/mksh/
+PKG_MD5SUM:=be0a6fb93b4a5f927bcc1893bb6692f8
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
-Refreshed for mksh-r52c, based on tg's patch
+Refreshed for mksh-r54, based on tg's patch
From 23712cea8e2a623fd952eb781df0011c501703d0 Mon Sep 17 00:00:00 2001
From: Thorsten Glaser <tg@mirbsd.org>
\alias doch='sudo mksh -c "$(\builtin fc -ln -1)"'
\command -v rot13 >/dev/null || \alias rot13='tr \
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ \
-@@ -601,4 +602,8 @@
+@@ -600,4 +601,8 @@
\unset p
include $(TOPDIR)/rules.mk
PKG_NAME:=nano
-PKG_VERSION:=2.7.4
+PKG_VERSION:=2.7.5
PKG_RELEASE:=1
PKG_LICENSE:=GPL-3.0+
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=@GNU/nano
-PKG_MD5SUM:=c011c7f9e47cb1da27d4e7cc8b56ec6a
-PKG_HASH:=752170643039e2c95a433de357f0c70a8c4c4c561a90a7e7259a63e225b659b9
+PKG_MD5SUM:=002703e368e07882f75e304c8860d83d
+PKG_HASH:=a64d24e6bc4fc448376d038f9a755af77f8e748c9051b6f45bf85e783a7e67e4
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
include $(TOPDIR)/rules.mk
PKG_NAME:=vim
-PKG_VERSION:=7.4
-PKG_RELEASE:=3
-VIMVER:=74
+PKG_VERSION:=8.0.069
+PKG_RELEASE:=4
+VIMVER:=80
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=ftp://ftp.vim.org/pub/vim/unix/
-PKG_MD5SUM:=607e135c559be642f210094ad023dc65
+PKG_MD5SUM:=457543a7754b0d3c1c0aa4d4c3bb4070
PKG_MAINTAINER:=Marko Ratkaj <marko.ratkaj@sartura.hr>
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(VIMVER)
TITLE+= (Normal)
endef
+
+define Package/vim-fuller
+ $(call Package/vim/Default)
+ TITLE+= (Big)
+endef
+
define Package/vim-runtime
$(call Package/vim/Default)
TITLE+= (runtime files)
(Normal build)
endef
+
+define Package/vim-fuller/description
+ Vim is an almost compatible version of the UNIX editor Vi.
+ (Big build)
+endef
+
define Package/vim-runtime/description
Vim is an almost compatible version of the UNIX editor Vi.
(Runtime files)
endef
endif
+ifneq ($(CONFIG_PACKAGE_vim-fuller),)
+define Build/Compile/vim-fuller
+ $(call Build/Configure/Default, \
+ --with-features=big \
+ --enable-multibyte \
+ )
+ +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
+ DESTDIR="$(PKG_INSTALL_DIR)" all
+ $(CP) $(PKG_BUILD_DIR)/src/$(PKG_NAME) $(PKG_BUILD_DIR)/vim_big
+endef
+endif
+
+
+
ifneq ($(CONFIG_PACKAGE_xxd),)
define Build/Compile/xxd
+$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
define Build/Compile
$(call Build/Compile/vim)
$(call Build/Compile/vim-full)
+$(call Build/Compile/vim-fuller)
$(call Build/Compile/vim-runtime)
$(call Build/Compile/xxd)
endef
$(INSTALL_CONF) ./files/vimrc.full $(1)/usr/share/vim/vimrc
endef
+
+define Package/vim-fuller/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/vim_big $(1)/usr/bin/vim
+ $(INSTALL_DIR) $(1)/usr/share/vim
+ $(CP) -r $(PKG_INSTALL_DIR)/usr/share/vim/vim$(VIMVER) $(1)/usr/share/vim
+ $(INSTALL_CONF) ./files/vimrc.full $(1)/usr/share/vim/vimrc
+endef
+
+
+
define Package/vim-runtime/install
$(CP) $(PKG_INSTALL_DIR)/* $(1)
rm -rf $(1)/usr/share/vim/vim$(VIMVER)/doc
$(eval $(call BuildPackage,vim))
$(eval $(call BuildPackage,vim-full))
+$(eval $(call BuildPackage,vim-fuller))
$(eval $(call BuildPackage,vim-runtime))
$(eval $(call BuildPackage,vim-help))
$(eval $(call BuildPackage,xxd))
+++ /dev/null
---- a/src/auto/configure
-+++ b/src/auto/configure
-@@ -12294,37 +12294,8 @@ _ACEOF
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
- $as_echo_n "checking uint32_t is 32 bits... " >&6; }
--if test "$cross_compiling" = yes; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check uint32_t when cross-compiling." >&5
--$as_echo "$as_me: WARNING: cannot check uint32_t when cross-compiling." >&2;}
--else
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--#ifdef HAVE_STDINT_H
--# include <stdint.h>
--#endif
--#ifdef HAVE_INTTYPES_H
--# include <inttypes.h>
--#endif
--main() {
-- uint32_t nr1 = (uint32_t)-1;
-- uint32_t nr2 = (uint32_t)0xffffffffUL;
-- if (sizeof(uint32_t) != 4 || nr1 != 0xffffffffUL || nr2 + 1 != 0) exit(1);
-- exit(0);
--}
--_ACEOF
--if ac_fn_c_try_run "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: assuming ok" >&5
- $as_echo "ok" >&6; }
--else
-- as_fn_error "WRONG! uint32_t not defined correctly." "$LINENO" 5
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
--
-
- bcopy_test_prog='
- #include "confdefs.h"