Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: If you're sick of unnecessary forced updates... (Read 4646 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

If you're sick of unnecessary forced updates...

I'm sick of being forced for to waste time updating to new versions of foobar for no noticeable "improvements", and also, Mr. Dev Person, if you're reading, it's my computer not yours, I decide when to update my stuff not you.

So I've solved my problem. I run Linux for everything, but even in the glory that is Linux there is still no decent music player. Thus, I run foobar through WINE, and shockingly, it runs amazingly well.

Code: [Select]
# yum -y install libfaketime
$ LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 FAKETIME="@2018-05-01 04:44:00" ~/bin/foobar2000/foobar2000.exe
Kablamo! No more forced updates. Now I can sit back and enjoy my tunes.
I'm sure there's a way to do this in Windows, but I'm a Linux guy. So hopefully someone will reply here with a Windows method too.

This is actually now part of a larger script which I have bound to a keyboard shortcut for starting foobar, or bringing it to the front or hiding the window, which maybe some other Linux user here will find useful:

Code: [Select]
#!/bin/bash
#   Written 2018 Matthew Headlee <mmh@matthewheadlee.com> (http://matthewheadlee.com/).
#
#   This file is start-foobar.sh.
#   You can redistribute  it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3.

ifoobar2000PID="$(pgrep foobar2000.exe)"
iActiveWindowPID="$(xdotool getactivewindow getwindowpid)"

#Start foobar2000 if not running.
if [ -z "${ifoobar2000PID}" ]; then
    #Faketime used to prevent built-in application time-bomb.
    LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 FAKETIME="@2018-05-01 04:44:00" exec "${HOME}/bin/foobar2000/foobar2000.exe"
#If foobar2000 is hidden in systray, unminimize and bring to front:
elif [ "$(xdotool search --all --onlyvisible --pid "${ifoobar2000PID}" --name 'foobar2000' | wc -l)" -eq 0 ]; then
    xdotool search --all --pid "${ifoobar2000PID}" --name 'foobar2000' windowmap windowactivate > /dev/null
#If foobar2000 is open, but not the active window, bring to front:
elif [ "${iActiveWindowPID}" -ne "${ifoobar2000PID}" ]; then
    xdotool search --all --pid "${ifoobar2000PID}" --name 'foobar2000' windowraise windowactivate > /dev/null
#If foobar2000 is open and active, minimize to tray.
else
    xdotool search --all --onlyvisible --pid "${ifoobar2000PID}" --name 'foobar2000' windowunmap > /dev/null
fi






Re: If you're sick of unnecessary forced updates...

Reply #1
Only beta versions expire and the reason for that is to prevent people from running bugged builds. If you looked at changelogs you'd see each build fixes issues. It's quite ridiculous to run a beta but refuse to run the newest build.

Re: If you're sick of unnecessary forced updates...

Reply #2
It's quite ridiculous to run a beta but refuse to run the newest build.
I disagree, a plugin I want requires the v1.4 builds. So I have no option to run v1.3 and configure it the way I want.

A better option would be to have foobar notify me that maybe I "should" update, but not flat out refuse to run, and there should be an option to disable the notification or silence it for a time period.


Re: If you're sick of unnecessary forced updates...

Reply #3
Cool, another hack to work around in the application core, a totally frozen clock.

Re: If you're sick of unnecessary forced updates...

Reply #4
why is this even a topic your intelligent enough to mess with foobars core functions yet fail to understand what " beta" means let me help

" Beta phase generally begins when the software is feature complete but likely to contain a number of known or unknown bugs. Software in the beta phase will generally have many more bugs in it than completed software, as well as speed/performance issues and may still cause crashes or data loss. The focus of beta testing is reducing impacts to users, often incorporating usability testing. The process of delivering a beta version to the users is called beta release and this is typically the first time that the software is available outside of the organization that developed it. Beta version software is often useful for demonstrations and previews within an organization and to prospective customers. Some developers refer to this stage as a preview, preview release, prototype, technical preview / technology preview (TP), or early access. Some software is kept in perpetual beta, where new features and functionality are continually added to the software without establishing a final "stable" release."
and just to be sure in simplistic terms suck it up buttercup or don't use the software

Re: If you're sick of unnecessary forced updates...

Reply #5
Son I am disappoint.

If you are going to patch things, do them properly. Don't use code injection, do proper binary patching like a Real Man. Or add it to some component that internally does hacks to begin with....

Only lamers hook things, instead of patching/unpacking/devirtualizing...................................

Make sure to patch the protection on ABX logs too, because hey, its your RAM, amirite?

And since its your RAM, dont use proprietary software to begin with. You need control, hence believe in the Stallman/Arch Way.

Quote
I disagree, a plugin I want requires the v1.4 builds.

So, instead of contacting the developer, you did your own hacks. Wonderful.  ::)

Re: If you're sick of unnecessary forced updates...

Reply #6
You don't even need to protect against patching for the beta, I won't describe what it does here, just know that it doesn't protect the expiration code. The only things that are really protected are quite a number of the English strings, as it was originally the firm belief that a lot of the technical terms do not translate very well, especially to languages like German and Polish.

Wait for a stable 1.4 if you must, but remember that the betas do fly fast. It's not like the expiration is without warning. You have a full eight weeks after the release before the expiration kicks in. I usually check for updates more often than that, but do know that the method used by the installer to hook into the installed copy does not trigger the expiration, mainly because someone discovered it could bug out upgrade installs.

Re: If you're sick of unnecessary forced updates...

Reply #7
Why hello there, this is Mr Dev Person speaking.

Some of the beta versions carried unfinished versions of new features as well as partial/incomplete implementations of new SDK interfaces. We do not want them in circulation for any longer than necessary, as they will create support headache not just for me but for the component makers also ( "why doesn't feature X work on old fb2k beta version Y? I'm not updating because blah blah blah" ) .

I am as enraged by forced updates as you are, and no stable version of foobar2000 will ever require you to update to be able to run it again. If you do not want to update frequently, please go use a stable version.

That said, I might indeed replace the beta expiration thing with something you can dismiss if you really don't want to update *now*, but I will have to make it reappear once in a while, for the above reasons.
Microsoft Windows: We can't script here, this is bat country.

Re: If you're sick of unnecessary forced updates...

Reply #8
It's quite ridiculous to run a beta but refuse to run the newest build.
I disagree, a plugin I want requires the v1.4 builds. So I have no option to run v1.3 and configure it the way I want.

So, instead of contacting the developer, you did your own hacks. Wonderful.  ::)

I mean, obviously on the one hand the OP comes across as pretty forward though I know at least one component maker (was it kode?) that updated all their components to only work with v1.4 betas (hats off for maintaining them btw) but seem to remember some topic where a user was looking for the v1.3 versions of them and can't recall if anything eventuated. I managed to grab a few I hadn't downloaded of the v1.3 versions from archive.org.

Personally haven't tried v1.4 yet but I suppose if components are updated to only work with a version that has an expiry for use that could be an issue for some during this beta period.

Re: If you're sick of unnecessary forced updates...

Reply #9
To the OP: Any plugin have its older versions, available on the net. Why not just search for them or ask in forum for upload? Kode's, mudlord's and Case's plugins are not new to foobar, so their older versions will work with last stable 1.3.17 foobar. Case even maintained separate builds repository for 1.4 only and pre 1.4 versions (not sure if he continues). So many ways to avoid time consuming hacking... Or maybe that's just your favorite hobby, then fine.

Re: If you're sick of unnecessary forced updates...

Reply #10
To the OP: In short, If you're sick of unnecessary forced updates... just use stable release. (or have some respect for the devs and have patience to wait for next stable release)
Somewhere, there's someone dying in a foreign land
Meanwhile, the world is crying stupidity of man
Tell me why, tell me why

Re: If you're sick of unnecessary forced updates...

Reply #11
I'm curious how the expiration is such a big problem? It's several weeks after release, the installer downloads quickly, and updating can be performed with a press of a button. Or if updating is annoying, it could be scripted to run in silent mode with /S parameter.

EpicForever:
I have most of my components available for both the 1.4 series and older 1.1-1.3 series, some special ones like Bookmark File that I made for someone on request or alternative TAK decoder that perhaps only I use aren't compiled with older SDK.
But 1.4 SDK doesn't bring such features that forces people to only target it. Should be possible for anyone to make a 1.3 version on request.

Re: If you're sick of unnecessary forced updates...

Reply #12
Why hello there, this is Mr Dev Person speaking.
...snip...
That said, I might indeed replace the beta expiration thing with something you can dismiss if you really don't want to update *now*, but I will have to make it reappear once in a while, for the above reasons.

Hello Peter,

I understand the desire from a developer point-of-view about wanting all users running latest versions for support reasons. At the same time, from a user's perspective, purposely breaking software that otherwise, was working perfectly ten minutes ago because some timer rolled over, leaves a bad taste in my mouth.

For the beta's I can understand a repeating update nagger, but it would be really nice to not be forced to update immediately.

Several times now I've been in the middle of doing other things and I attempt to pause or switch tracks (through the executable /pause switch (bound to a hotkey (linux...))) and instead I get the update warning, which means I have to drop everything I'm doing to deal with foobar2000 stuff.

To the other posters: yes, updating is easy, but it totally breaks my focus on whatever else I happen to be working on... Hence my dirty clock hack, it was just one-interruption-too-many that day and I decided I didn't want to deal with the problem again.


Re: If you're sick of unnecessary forced updates...

Reply #13
I might indeed replace the beta expiration thing with something you can dismiss if you really don't want to update *now*, but I will have to make it reappear once in a while

Several times now I've been in the middle of doing other things and I attempt to pause or switch tracks (through the executable /pause switch (bound to a hotkey (linux...))) and instead I get the update warning, which means I have to drop everything I'm doing to deal with foobar2000 stuff.

Maybe it's better to disable update check if foobar2000 instance just sends a message to the main foobar2000?

Re: If you're sick of unnecessary forced updates...

Reply #14
OP, why are using beta in the first place? You haven't yet explained that part. You comment you're sick of no noticeable improvements but still continue to use beta versions? That's what beta does, tiny incremental improvements until Peter is satisfied for a stable release. I bet if you switched from 1.3 stable to 1.4 stable you'll notice it. All of what beta releases are seems to be not for you yet you stick with them and complain about it.
You're sick of being forced? Nobody is forcing you, it's your choice. I don't think  you have any right to complain about it.

 

Re: If you're sick of unnecessary forced updates...

Reply #15
They already explained it. They're using a component that someone forcibly designated for 1.4 or newer. I know two other developers who release components with such settings. One of them does it for unknown reasons, and the other, @mudlord , has released a single component update that requires new SDK features to properly reconfigure DSPs from Default UI element inserts in real time.

I also made some changes to some of my inputs, to support the new priority control, and thus also removed previous code which would detect redundant inputs of the same format and disable certain inputs automatically if multiple components were installed. Now, if you lack the 1.4 update, the redundant components will just fight each other depending on the randomized order on program startup.

Re: If you're sick of unnecessary forced updates...

Reply #16
Several times now I've been in the middle of doing other things and I attempt to pause or switch tracks (through the executable /pause switch (bound to a hotkey (linux...))) and instead I get the update warning, which means I have to drop everything I'm doing to deal with foobar2000 stuff.

Maybe it's better to disable update check if foobar2000 instance just sends a message to the main foobar2000?
Valid point, I'll get that changed ASAP, it must indeed be annoying as hell. Thanks for pointing it out.

[ Note that strictly speaking it's not an update check as it does not actually check anything else than the system time. ]

[[ EDIT ]]
If you pass /quiet in the command line, like this:
foobar2000.exe /quiet /play
... the expiration check will be suppressed. This works in current foobar2000 beta versions already.
The /quiet switch essentially prevents foobar2000 application from fully starting up or showing any UI and is meant to be combined with other switches.
Microsoft Windows: We can't script here, this is bat country.