This will of course break my router if the latest build is bad - which I expect to occur quite often. Any thoughts on how to decrease the risk of using a bad build?
Currently considering a heuristic based on how long the latest build has existed (e.g. more than 10 days should mean nothing horribly wrong with the build in general).
Currently considering a heuristic based on how long the latest build has existed (e.g. more than 10 days should mean nothing horribly wrong with the build in general).
Good idea. Something like below that defaults to zero and prevents showing bleeding edge builds.
#EDDUP_WAIT_FOR_DAYS=7
If you do something general please share and all could benefit.
Last edited by yoyoma2 on Thu Mar 14, 2024 12:27; edited 1 time in total
--- easyddup.sh 2024-03-14 08:31:01.774393075 +0100
+++ easyddup.ageverify.sh 2024-03-14 08:33:53.391410260 +0100
@@ -225,6 +225,14 @@
exit 0
fi
selection=$(echo "$builds" | tail -n +$fid | head -n 1)
+ if [ "$EDDUP_AUTO_SELECT_LATEST" == "Y" ] && [ "$EDDUP_AUTO_SELECT_MIN_AGE" -gt "0" ]; then
+ selection_date=$(echo "$selection" | awk -F'-' '{print $3"-"$1"-"$2}')
+ age_seconds=$(( $(date '+%s') - $(date -d "$selection_date" '+%s') ))
+ if [ "$age_seconds" -lt "$EDDUP_AUTO_SELECT_MIN_AGE" ]; then
+ echo "EDDUP_AUTO_SELECT_MIN_AGE is $EDDUP_AUTO_SELECT_MIN_AGE and age is $age_seconds. Quitting"
+ exit 0
+ fi
+ fi
selected_revision=${selection##*r}
if [ $buildno -gt $selected_revision ] && \
[ "$EDDUP_AUTO_SELECT_LATEST" == "Y" -o "$EDDUP_AUTO_SELECT_LATEST" == "y" ];then
And then this in the ini
Code:
EDDUP_AUTO_SELECT_MIN_AGE=259200 #72h in seconds
This version only affects auto updates and prevents the update if the release is too new.
I decided against hiding releases from users as it would not make a difference as they would just see broken releases later (unless the broken release was pulled), this would not help my auto-update scenario.
I realize that this may not match other use cases, so feel free to adapt this.
Also, any reason for not using github? would be nice
Include @Mrutin's feature that allows EDDUP_AUTO_SELECT_LATEST to have a waiting period to avoid automatically installing potentially bad builds. See easyddup.ini.sample for example use:
Code:
EDDUP_AUTO_SELECT_MIN_AGE=259200 #72h in seconds
Thank you @Mrutin, great idea and implementation!
Upgrade automatically with checknewversion.sh or download/install manually.
Last edited by yoyoma2 on Thu Mar 14, 2024 12:49; edited 55 times in total
_________________ "The woods are lovely, dark and deep,
But I have promises to keep,
And miles to go before I sleep,
And miles to go before I sleep." - Robert Frost
"I am one of the noticeable ones - notice me" - Dale Frances McKenzie Bozzio
Posted: Thu May 09, 2024 19:22 Post subject: Re: Download location for latest eassyddupe?
JavaOops wrote:
I have the old 0.9 version. Where do we get the latest version from?
You have 0.9 so you still have to manually update once but version 0.9.1 and beyond has a self update feature built into checknewversion.sh. Page 15 of this thread explains how to enable it (find EASYDDUPSELFUPDATE).
Trick:
Once you have the self-update capable current version 0.9.5 you can pretend to have 0.9.4 with:
Code:
echo 0.9.4 > VERSION.txt
If self-update is configured correctly the following with bring VERSION.txt back to 0.9.5
Code:
# checknewversion.sh
Upgrading easyddup from version 0.9.4 to version 0.9.5
Getting latest easyddup package from dd-wrt forum.
Installing and running new easyddup version 0.9.5
The checknewversion.sh script now fails to login to the forum to update easyddup even with the proper credentials. The forum server must be more strict than before. This used to be a fatal error but now the script will continue and still provide email notification about new dd-wrt versions.
Setting the following in your checknewversion.ini file will avoid error messages.
EASYDDUPSELFUPDATE=N
I don't think auto-updating easyddup is worth the effort of fixing this.
The checknewversion.sh script now fails to login to the forum to update easyddup even with the proper credentials. The forum server must be more strict than before. This used to be a fatal error but now the script will continue and still provide email notification about new dd-wrt versions.
Setting the following in your checknewversion.ini file will avoid error messages.
EASYDDUPSELFUPDATE=N
I don't think auto-updating easyddup is worth the effort of fixing this.
Added a USERAGENT variable to checknewversion.ini.sample and easyddup self-updates work again. Users still need to get this version manually and make sure their checknewversion.ini has the USERAGENT line from the sample file for future self-updates to work.
@yoyoma2:
Regarding the config EDDUP_EXPECTED_FW_SIZE_MAX in easyddup.ini, do you think it's a good idea to implement the following:
- if EDDUP_EXPECTED_FW_SIZE_MAX=somenumber then everything is as previous versions,
- if EDDUP_EXPECTED_FW_SIZE_MAX=auto then the max allowed fw size is dynamically retrieved from the output of 'cat /proc/mtd'
Reason: I can't remember for which router, but I had to manually increase the EDDUP_EXPECTED_FW_SIZE_MAX a few times for the increasing fw file size to pass the check. Hard-coding a number may not be a good idea because the developer may quietly adjust the partition size in the future.