rmcrackan / Libation

Libation: Liberate your Library
GNU General Public License v3.0
2.51k stars 135 forks source link

Mac beta #327

Closed rmcrackan closed 1 year ago

rmcrackan commented 2 years ago

The original Libation is Windows only. We recently did a massive rewrite of the whole UI to make it cross platform. We have some VMs running linux that we can test on but we have no access to a mac. In theory, I should be able to use this same code with some different publish steps and then it will work on mac also.

I need mac people to tell me if it works for them. I know nothing about using a mac. I wouldn't even know if my output file was correct. Further complicating things, I don't know if the Intel/M1/M2 thing matters.

jarbus-4 commented 2 years ago

Hello! I'm a Mac user (Intel) and would like to use Libation, but I have no idea how to set it up. Is there a guide, and if there isn't, would someone mind explaining how to do so? I'd also be more than willing to help test anything once it's up and running; I have extremely limited programming experience so I might need some hand-holding, but I'd be happy to try.

Mbucari commented 2 years ago

@jarbus-4 There's currently no user-friendly way to run Libation on mac. I'm working on a better deployment solution, but I don't have one yet. Just keep watching Reddit and I'm sure @rmcrackan aka darchangel will post when we got something better to deliver.

jarbus-4 commented 2 years ago

@Mbucari Will do, thanks!

rmcrackan commented 2 years ago

@Mbucari Yup. I directed @jarbus-4 to this thread from reddit. I assume as we make progress that it'll end up here and it never hurts to have another person willing to try out our ideas as they progress.

RE using a different folder for appsettings.json: it's going to be a delicate undertaking. Its location has been stable since the beginning and assumptions have been made. Getting that change wrong could brick the app. Off the top of my head though, I could change this like

Hopefully this won't block anything you're doing since it's location is abstracted away by Configuration

rmcrackan commented 2 years ago

Sure, we could try that.

You'll probably also need to add Libation's programs files directory to the path environment variable, just in case the current working directory is not the programs files directory.

Not a bad idea, but when would it not be? To my knowledge, we never set working directory to anything else.

That is unless you have some opposition to using ApplicationData on Windows.

I really hate how AppData is a hidden directory. I like the idea of: if the average user doesn't want an app around anymore, including mine, they can just delete a folder or 2 and it's 100% off their system. No "uninstaller" magic, hidden folders, or opaque registry settings.

Mbucari commented 2 years ago

Not a bad idea, but when would it not be?

If you execute a program from the command line, the process' current working directory is the command line's current directory.

I deleted the post where I wrote all that because, after rereading it and rereading your suggestion, I just liked yours better. Seems simpler. I still think we should still always make an attempt to load appsettings.json from the program files directory in case somebody is trying to use it as a portable app, but otherwise I think I prefer your solution.

rmcrackan commented 2 years ago

@mkb79 , @Mbucari , @derekgottlieb -- can you instruct @pakiyabhai how to install on OSX? ( #365 )

boringpapa commented 2 years ago

Yes Pls !!

mkb79 commented 2 years ago

@rmcrackan @pakiyabhai Download the latest macOS release from the Releases page. Open the Terminal app and switch to the downloaded folder (the zip should be extracted automatically). Then follow these steps and run ./Libation. This way I get Libation running!

boringpapa commented 2 years ago

Awesome !!

It works

Wallah

jarbus-4 commented 2 years ago

Thanks! This works like a charm, ridiculously fast too

rmcrackan commented 2 years ago

Thanks everyone. I add this to the installation guide here

RandmTask commented 2 years ago

Hi

A couple of observations:

  1. It takes about 9 seconds to first boot up on an M1 MacBook Air
  2. There is a typo for 'Audible' as Autible in the settings (see attached picture)
  3. Had the following error (see attached txt file): libation error.txt Screen Shot 2022-09-06 at 8 14 46 pm

On a side note, there seems to be a typo on https://github.com/rmcrackan/Libation too, where it asks to tip you at Palpal.me instead of Paypal :)

Otherwise, everything is running great so far!

RandmTask commented 2 years ago

Suggestion:

Almost all apps in macOS when you right click on a file you have a 'Show in Finder' option. It took a few times clicking around to see that clicking on the traffic light will locate the file, might be a little confusing for some users

Would be great to have a right click menu with 'Show in Finder' and other such options as 'Edit Metadata'/'Get Info'/'Remove Download'/,'Show Audible webpage'. I'm new to Libation so I couldn't find if any of these are feature yet.

EDIT: After playing around with the app for quite a while, I discovered the tag button, that I missed as it did not open full screen initially

You could probably do away with the tags button and just double click on the title, author, book series etc to bring up the tag menu? Also single click on any cell in any column (including the cells in the tag column) to edit them?

rmcrackan commented 2 years ago

typo ... Autible

Fixed. Thanks

Palpal.me

That url is correct. If you don't believe me, try it lol

right click menu

Good suggestions

You could probably do away with the tags button and just double click on the title, author, book series etc to bring up the tag menu?

I don't like the lack of discoverability of requiring a double click

Also single click on any cell in any column (including the cells in the tag column) to edit them?

There are none where we currently allow editing. This is the info straight from audible.

Mbucari commented 2 years ago

Sorry I've been away. I'll try to finish up work on the app package after the US Open is over!

On Tue, Sep 6, 2022 at 10:55 AM rmcrackan @.***> wrote:

typo ... Autible

Fixed. Thanks

Palpal.me

That url is correct. If you don't believe me, try it lol

right click menu

Good suggestions

You could probably do away with the tags button and just double click on the title, author, book series etc to bring up the tag menu?

I don't like the lack of discoverability of requiring a double click

Also single click on any cell in any column (including the cells in the tag column) to edit them?

There are none where we currently allow editing. This is the info straight from audible.

— Reply to this email directly, view it on GitHub https://github.com/rmcrackan/Libation/issues/327#issuecomment-1238413372, or unsubscribe https://github.com/notifications/unsubscribe-auth/AI6YRKV5EE334IWESG5BABDV45ZOJANCNFSM545GNG6A . You are receiving this because you were mentioned.Message ID: @.***>

-- Michael Bucari

RandmTask commented 2 years ago

I don't like the lack of discoverability of requiring a double click

Noted. Perhaps that could just trigger the tags popup anyway in addition to the tags column itself?

RandmTask commented 2 years ago

Download/Decrypt settings on macOS

Some suggestions:

  1. Custom File Naming and other fields look like they can be edited inline, without clicking on the edit button.

Preferable behaviour would be to edit it inline without clicking on the edit button. If not, perhaps a grey color to indicate that they are not directly editable fields?

  1. Double clicking on a field will insert that into the naming mask where the cursor last was. ie. Quickly insert an tag or - by clicking on it

Doesn't really change much for users once a user has already set it up, might be useful for new users

rmcrackan commented 2 years ago

Sorry I've been away

No worries. I know you know this but for the benefit of anyone else reading:

Part of the reason that Libation is free to users is so the creators/maintainers are also free to work on it as much or as little as they want and whenever they want. We always work to keep Libation high quality. However, there's no expectation of when we work. This is a passion project; no one wants a 2nd job.

Perhaps that could just trigger the tags popup anyway in addition to the tags column itself?

That's a good idea.

fields look like they can be edited inline, without clicking on the edit button.

I don't want to allow editing on templates without the form which has all the info on it. It's too nuanced to do blind. That said, double-clicking could be another way in addition to the edit button.

@Mbucari I see what RandmTask means about "look like they can be edited inline". In Classic, readonly textboxes which users can select/copy from are grey-ed out. In Chardonnay, the functionality is the same but they look just like editable textboxes.

Quickly insert an tag or - by clicking on it

This would indeed be cool. tbh it's pretty far down the list in terms of priority -- it's a nice-to-have on a small feature that only power users touch anyway. Whether we do it or not though, I really like how you're getting me to think in terms of giving more power to the mouse.

Mbucari commented 2 years ago

@rmcrackan

In Classic, readonly textboxes which users can select/copy from are grey-ed out.

Add this style to Assets/LibationStyles.xaml inside <Styles></Styles>

<Style Selector="TextBox[IsReadOnly=true]">
    <Setter Property="Background" Value="LightGray" />
    <Setter Property="CaretBrush" Value="#00000000" />
</Style>
rmcrackan commented 2 years ago

@Mbucari perfect. Gracias!

mettavi commented 1 year ago

Awesome !!

It works

  • Download Latest edition in downloads folder
  • Extract and rename folder to Libation
  • in terminal type cd and then drag your folder of libation to terminal so it looks like cd/users/YourName/Downloads/Libation
  • Type following commands
  • chmod +x ./Libation
  • sudo spctl --add --label "Libation" ./Libation
  • ./Libation

Wallah

I don't know why this isn't working for me. I'm still getting many verification errors using this method.

The only thing that works is: sudo spctl --master-disable, which disables Gatekeeper for the whole computer.

I'm on MacOS Monterey 12.6.

mefistos commented 1 year ago

I am having same issue as @scop22. My mac is preventing loads of files from running because they are not verified and potentionally malware. I tried going through the installation guide but it doesnt help. The only way to run it is to disable Gatekeeper which is a nono.

I am on MacOS Monterey 12.6 using the latest version released 8.4.5

edit: just tested 8.4.4 following same installation guide and it works no problem.

mettavi commented 1 year ago

That's funny, I just tried 8.4.4 and had the same problem.

joseph-holland commented 1 year ago

Hi, Just had this same issue but was able to work around it by doing this:

Disable the block sudo spctl --master-disable

Launch Libation and login, etc. and allow the rules to update then re-enable the block. sudo spctl --master-enable

Once gatekeeper reenabled you can open Libation again without it being blocked.

Found this info here: https://www.reddit.com/r/MacOS/comments/c68gh9/solution_for_all_apps_not_opening_in_catalina/

kfbest commented 1 year ago

Hi, Just had this same issue but was able to work around it by doing this:

Disable the block sudo spctl --master-disable

Launch Libation and login, etc. and allow the rules to update then re-enable the block. sudo spctl --master-enable

Once gatekeeper reenabled you can open Libation again without it being blocked.

Found this info here: https://www.reddit.com/r/MacOS/comments/c68gh9/solution_for_all_apps_not_opening_in_catalina/

wow - what incredible timing I had... I haven't run Libation in months, but decided to run it since I bought a bunch on the recent sale. I just tried the new Mac beta and had trouble with Gatekeeper. Thanks for finding this solution!

@rmcrackan / @Mbucari - could this get added to the install guide?

rmcrackan commented 1 year ago

@kfbest Great idea! Added

CryptoJones commented 1 year ago

@rmcrackan The new multiplatform UI changes are amazing! Do you still need help beta testing mac stuff? Anything I can do to assist?

rmcrackan commented 1 year ago

@CryptoJones : Thanks! @Mbucari put in a ton of work to get cross platform working. If you find any Mac bugs please post them here. Other than that, I think the last thing we really need to work out is how to get it to easily install on Mac without having to make the user do so much. The 'it just works' Apple marketing is utter BS when it comes to creating software -- they could scarcely make it more difficult. Also since neither Mbucari nor myself own a Mac, we have to rely on the kindness of others to figure out this weirdness.

kfbest commented 1 year ago

@rmcrackan / @Mbucari - how are you guys compiling the Mac app? Seems that getting the Gatekeeper certificate requires running XCode on a Mac and paying the annual fee - so probably wont be able to get away with that.

The biggest challenge I’ve seen is that with all the various DLLs, each one is flagging as a unique “app” that triggers a warning in Gatekeeper. Even after doing the process discussed above, I still get a few DLLs getting blocked. Thankfully it seems like I’m still able to download (and hopefully decrypt) my books.

mefistos commented 1 year ago

I have the same issue as @kfbest. Essentially I have to disable Gatekeeper everytime I run the app.

rmcrackan commented 1 year ago

@kfbest I'm compiling using native .net build tools. As you described: Apple punishes anyone who doesn't do things their way under the flimsy guise of protecting you. It's the identical garbage that Microsoft pulls every decade or so. For some reason though, people come out in droves to bash MS but Apple gets called out much more infrequently.

RandmTask commented 1 year ago

It doesn't seem to write the Narrator to the Composer field, PLEX, Prologue and others use this to determine the Narrator. Can this be fixed or implemented if its not a bug?

garlik82 commented 1 year ago

Hey guys. getting this error. Unhandled exception. System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (0x8007000B)

Running Mac OS Ventura on a MacBook Air M1. Thanks in advance

kfbest commented 1 year ago

Hey guys. getting this error. Unhandled exception. System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (0x8007000B)

Running Mac OS Ventura on a MacBook Air M1. Thanks in advance

Getting same error. Here is the "Problem Report" that pops up after it crashes.

crashlog.txt

What is interesting is that I was able to get it to run before I downloaded the latest version. I "think" it was 8.4.6 that was running. Going to go thru and download the last few releases to see which ones work.

kfbest commented 1 year ago

Seems to be an issue with v8.6.3. I'm able to run and download new books with 8.5.1. Guess something about the #396 issue doesn't like Mac

rmcrackan commented 1 year ago

@kfbest What were you doing when it crashed? The #396 feature was a minor addition that only happens if you use it. However recently there was a major framework upgrade. I'm worried that's the issue. If so, this could be a big problem.

kfbest commented 1 year ago

Ah - ok. I only mention 396 since that was the only thing noted in the rev notes for latest release.

It wouldn’t even start. As soon as executing the “./Libation” from terminal, it crashed.

Cheers, Kaleb Best On Dec 9, 2022 at 11:30 AM -0500, rmcrackan @.***>, wrote:

@kfbest What were you doing when it crashed? The #396 feature was a minor addition that only happens if you use it. However recently there was a major framework upgrade. I'm worried that's the issue. If so, this could be a big problem. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

rmcrackan commented 1 year ago

@kfbest I don't own a mac so this essentially untestable by me. I'll try to do a new release soon. I can't imagine that it will help though. If you know any mac-based C# programmers with an interest in audiobooks, please send them our way.

@Mbucari So much for being almost done with beta

CryptoJones commented 1 year ago

@rmcrackan I have been using macs since my employer gave me one, and I love Libation and used to be a .NET Dev in a previous life.

rmcrackan commented 1 year ago

@CryptoJones For real? Oh hell yeah, let's do this! Can you see if you can run these on a mac? You shouldn't have to do much. @kfbest couldn't even get 8.6.3 to run at all.

@pixil98 You mentioned in that other PR thread that you're on a mac. Do the .net 7 builds work for you?

pixil98 commented 1 year ago

I have an Intel mac for work. They run in so far as I'm able to launch them to test that the build pipeline ran correctly. I normally use the Linux cli at home.

garlik82 commented 1 year ago

@CryptoJones For real? Oh hell yeah, let's do this! Can you see if you can run these on a mac? You shouldn't have to do much. @kfbest couldn't even get 8.6.3 to run at all.

  • Last version on .net 6: v8.5.1
  • First version on .net 7: v8.6.3

@pixil98 You mentioned in that other PR thread that you're on a mac. Do the .net 7 builds work for you?

8.5.1 runs.

rmcrackan commented 1 year ago

@kfbest Can you outline what you did? Maybe @CryptoJones , @pixil98 , or @garlik82 can see what they do differently

billyhigdon commented 1 year ago

Ran into the same issues as the others with the latest release. I had initial difficulties launching because of spctl - which seems to be an expected issue

Failed to load /Users/billy/Desktop/Libation/libhostfxr.dylib, error: dlopen(/Users/billy/Desktop/Libation/libhostfxr.dylib, 1): no suitable image found.  Did find:
    /Users/billy/Desktop/Libation/libhostfxr.dylib: code signature in (/Users/billy/Desktop/Libation/libhostfxr.dylib) not valid for use in process using Library Validation: library load disallowed by system policy
The library libhostfxr.dylib was found, but loading it from /Users/billy/Desktop/Libation/libhostfxr.dylib failed
  - Installing .NET prerequisites might help resolve this problem.
     https://go.microsoft.com/fwlink/?linkid=2063366

after running the --master-disable i no longer got that message, however I got the

System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (0x8007000B)

I'm running an older late 2012 intel iMac w/ Catalina 10.15.7.

Downloading 8.5.1 worked perfectly for me (still had to master disable).

Happy to help out with testing if needed, not so C# oriented though :(

rmcrackan commented 1 year ago

@kfbest (sorry to keep pinging you with @'s ) see if @billyhigdon 's suggestion works for you

kfbest commented 1 year ago

@kfbest (sorry to keep pinging you with @'s ) see if @billyhigdon 's suggestion works for you

he's getting the same error that garlik82 and I were getting (System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (0x8007000B))

hutattedonmyarm commented 1 year ago

I don't own a mac so this essentially untestable by me. I'll try to do a new release soon. I can't imagine that it will help though. If you know any mac-based C# programmers with an interest in audiobooks, please send them our way.

I own a M1 based Mac and did C# / dotnet dev for a bit as well

pixil98 commented 1 year ago

I just tested v8.6.3 and it didn't run on my Mac. Can folks with Macs test this custom build of 8.6.4.1 https://github.com/pixil98/Libation/suites/9793897057/artifacts/471109736? It's built with an updated pipeline that uses Linux instead of Windows and it seems to run correctly for me. As a bonus it also comes with the binaries already set as executable.

garlik82 commented 1 year ago

I just tested v8.6.3 and it didn't run on my Mac. Can folks with Macs test this custom build of 8.6.4.1 https://github.com/pixil98/Libation/suites/9793897057/artifacts/471109736? It's built with an updated pipeline that uses Linux instead of Windows and it seems to run correctly for me. As a bonus it also comes with the binaries already set as executable.

It works. Thanks :)