docker-makemkv icon indicating copy to clipboard operation
docker-makemkv copied to clipboard

[Feature request/Bug] Add support for faketime (e.g. setting it july)

Open Ley21 opened this issue 4 months ago • 8 comments

Idea

Hi, can you maybe extend your image by adding faketime or similar tool, so it is possible to set it to july. Currently it seems that the developer is not active anymore (r/makemkv explains more here) and without modifing the system time the image will not boot up.

Thanks

Ley21 avatar Aug 06 '25 06:08 Ley21

There is also a lot of activity on the MakeMKV forum (https://forum.makemkv.com/forum/viewforum.php?f=1) related to the situation. I will monitor this and will implement something if needed.

jlesage avatar Aug 06 '25 11:08 jlesage

I just came here to request the same. It's been much longer than usual for the beta key to be invalid, and no one has heard from the developer. The payment processor has suspended the ability to purchase keys, and he hasn't even responded to them about permanent keys that would get around the problem for people wanting to buy a key.

bjaurelio avatar Aug 08 '25 02:08 bjaurelio

I agree this is not a normal situation.

I did have a look at the MakeMKV subreddit (https://www.reddit.com/r/makemkv/) and Billy (https://www.reddit.com/user/billycar11/), which I think is a moderator, seems to be confidant that this is not the end of MakeMKV.

jlesage avatar Aug 08 '25 12:08 jlesage

I was trying to figure this out, but couldn't get it working. Initially building my own container, but then attempting to use environment variables to get the job done.

  • INSTALL_PACKAGES=libfaketime (capability of the underlying alpine linux container)
  • FAKETIME_DONT_FAKE_MONOTONIC=1 (since MakeMKV is java based?)
  • LD_PRELOAD="/usr/lib/faketime/libfaketime.so.1"
  • FAKETIME="-15d"
  • CONTAINER_DEBUG=1

Currently get an error popup that says... NO_ANSWER_FROM_MAKEMKVCON

If I open a sh in the container and type date, then the date is rolled back 15 days as expected.

debug log in appdata doesn't tell me anything

iridium13 avatar Aug 08 '25 14:08 iridium13

I've tried doing the same thing and spent a bit of time digging, and it seems that for some reason when running makemkvcon with faketime it returns a segmentation fault and crashes, and the gui version relies on makemkvcon to function. When researching that problem, I found that building libfaketime instead of using the version packaged with alpine might help, though I've yet to test it

Tsspidermine avatar Aug 09 '25 02:08 Tsspidermine

I feel like it might be some issue with musl libc vs glibc and dynamic loading.

  • makemkvcon uses glibc from /opt/makemkv/lib as the interpreter.
  • makemkv uses musl libc

Was playing around with gcompat to try to make it work, but I don't actually know what I'm doing haha

iridium13 avatar Aug 09 '25 15:08 iridium13

Building the libfaketime from source doesn't help either

FROM jlesage/makemkv:v25.08.1

RUN apk add build-base git
RUN git clone https://github.com/wolfcw/libfaketime /usr/local/src/libfaketime
WORKDIR /usr/local/src/libfaketime
RUN make && make install

# Library is in
# - /usr/local/lib/faketime/libfaketimeMT.so.1
# - /usr/local/lib/faketime/libfaketime.so.1

# Build the image just to store the file
FROM scratch
COPY --from=0 /usr/local/lib/faketime/libfaketimeMT.so.1 /faketime.so

FROM jlesage/makemkv:v25.08.1
COPY --from=1 /faketime.so /lib/faketime.so
ENV LD_PRELOAD=/lib/faketime.so
ENV FAKETIME="-15d"
ENV DONT_FAKE_MONOTONIC=1

ziporah avatar Aug 12 '25 10:08 ziporah

FYI, a new beta key has been published. Just restart the container to automatically fetch it.

jlesage avatar Aug 13 '25 04:08 jlesage

I think datefudge will work. It doesn't have a LD_PRELOAD mode so it's gonna be a little bit more difficult to set up and I'm too lazy to investigate (not to mention there's currently no need for it anyway). I'll take a look once the key expires and hasn't been renewed in multiple days (unless of course somebody beats me to it).

Anuskuss avatar Dec 08 '25 01:12 Anuskuss