Go Back   Cockos Incorporated Forums > REAPER Forums > ReaScript, JSFX, REAPER Plug-in Extensions, Developer Forum

Reply
 
Thread Tools Display Modes
Old 01-13-2019, 05:05 PM   #721
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

I would love to add my Ultraschall-API to ReaPack and I have some questions about adding my own github-repo to the ReaPack-Package-Manager and I hope, you can help.

First some general questions about it:
1. I intend to add at some point an extension-plugin, like the JS-plugin or SWS. As far as I understood, the JS-plugin can be installed via ReaPack. How does it do it? Can ReaPack unregister the plugin and runtime, install the new version and reregister it?
I tried to remove an old version of a plugin to install a new one while Reaper is running with a restart of Reaper after installation, but Reaper "blocks" the plugin by accessing it while it runs(which is logical, as Reaper is using it).
I wonder now, how ReaPack does this for the JS-Plugin?

2. I would need to install my API into the UserPlugins-folder, not the scripts-folder. Does the ReaPack-manager allow me to do that?


Now some questions about the process of adding my repo:
1. Is there a full explanation, how to do that? Some kind of manual? I just found one X-Raym wrote, but it is some time since he wrote it, so I guess, some information is outdated.

2. I read somewhere, that there's a tool, that creates the .xml-file needed by ReaPack, but where can I find it? I found on the ReaPack-site(https://reapack.com/upload) only a way to add files to the official ReaPack-repo.
Even though this would be possible to do, it would be too impractical, as I add bugfixes quite often and don't want to upload it every few days to the ReaPack-repo, but rather add my own repo instead.
Where can I find that tool and a manual to use it? And does it support a complex folder-structure with dozens of files as well?


Hope, you can help me with that.
Cheers and great work on the Package-Manager. It's one of the tools I thought "this is fantastic" the first time I ran it
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 01-13-2019, 10:39 PM   #722
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by mespotine View Post
How does it do it? Can ReaPack unregister the plugin and runtime, install the new version and reregister it?
I tried to remove an old version of a plugin to install a new one while Reaper is running with a restart of Reaper after installation, but Reaper "blocks" the plugin by accessing it while it runs(which is logical, as Reaper is using it).
I wonder now, how ReaPack does this for the JS-Plugin?
REAPER must be restarted for the new version to be loaded, but I think you're referring to Windows' limitations disallowing writing to running executables. ReaPack works around that by moving the running .dll to a temporary location on that OS. (Overwriting or deleting running executables is allowed on Unix-like systems.)

Quote:
Originally Posted by mespotine View Post
2. I would need to install my API into the UserPlugins-folder, not the scripts-folder. Does the ReaPack-manager allow me to do that?
Mark either entire packages or individual files to go in UserPlugins as being of the "extension" type. I find it odd to have Lua scripts outside of the Scripts directory, however ReaPack-installed script files must be in a subdirectory named after the repository (eg. "Scripts/Ultraschall/api.lua"). Extension files do not have this requirement.

Quote:
Originally Posted by mespotine View Post
Now some questions about the process of adding my repo:
1. Is there a full explanation, how to do that? Some kind of manual? I just found one X-Raym wrote, but it is some time since he wrote it, so I guess, some information is outdated.

I read somewhere, that there's a tool, that creates the .xml-file needed by ReaPack, but where can I find it? Where can I find that tool and a manual to use it?
The tool is reapack-index. Its user guide is at https://github.com/cfillion/reapack-index/wiki. The XML index format itself is documented at https://github.com/cfillion/reapack/wiki/Index-Format.

https://reapack.com/upload, as a GUI editor, can help generate the metadata headers for reapack-index (just don't click on "Create pull request" if you want to use your own repository instead ).

Quote:
Originally Posted by mespotine View Post
And does it support a complex folder-structure with dozens of files as well?
I see your API .zip contains a few empty directories (eg. in 3rd_party_for_everyone). ReaPack, reapack-index, and git all only deals with actual files. Using an empty hidden file named ".gitkeep" or ".keep" is common.

Last edited by cfillion; 01-13-2019 at 10:47 PM.
cfillion is offline   Reply With Quote
Old 01-16-2019, 08:15 AM   #723
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

@cfillion

Thanks for your answers

Quote:
Mark either entire packages or individual files to go in UserPlugins as being of the "extension" type. I find it odd to have Lua scripts outside of the Scripts directory, however ReaPack-installed script files must be in a subdirectory named after the repository (eg. "Scripts/Ultraschall/api.lua"). Extension files do not have this requirement.
So if I understood right, I can have ultraschall_api.lua in the UserPlugins-folder if I upload it as extension, while as script-upload, it must be in a subfolder, right?

Quote:
I see your API .zip contains a few empty directories (eg. in 3rd_party_for_everyone). ReaPack, reapack-index, and git all only deals with actual files. Using an empty hidden file named ".gitkeep" or ".keep" is common.
Thanks, added to my repo


Another question, how do you add JSFX-plugins into a running Reaper? Does Reaper need to be restarted for them to be added?

And a final question: what kinds of things can't be added using ReaPack-packagemanager? If I wanted to install the contents of a ReaperConfigZip-file from a repo using ReaPack rather than having to use ReaperConfigZip-file, what could I install and what would be missing?
e.g. could I add ini-files as well, that are stored in the RessourcesFolder?

I'm asking, as we think about using ReaPack for our Ultraschall-development.
We switched to managing the development-branch in git, however our betatesters are usually not that experienced with git to install the repo into a portable Reaper-version.
We would love to give betatesters an easy way of updating their beta-versions of Ultraschall using ReaPack.

Currently, we still would rely on building a ReaperConfigZip-file but this isn't flexible enough to represent the latest changes in the repo and slows down the pace of beta-testing...
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...

Last edited by Meo-Ada Mespotine; 01-16-2019 at 08:23 AM.
Meo-Ada Mespotine is offline   Reply With Quote
Old 01-16-2019, 08:57 AM   #724
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by mespotine View Post
So if I understood right, I can have ultraschall_api.lua in the UserPlugins-folder if I upload it as extension, while as script-upload, it must be in a subfolder, right?
That's right. The type determines the root installation directory. You can choose the type of a package and optionally override it per-file (so, if you want it to be displayed as such, you could make a "Script" package install some "extension" files in UserPlugins).

Quote:
Originally Posted by mespotine View Post
Another question, how do you add JSFX-plugins into a running Reaper? Does Reaper need to be restarted for them to be added?
Only extension plugins require a restart. REAPER detects newly added JSFX automatically.

Quote:
Originally Posted by mespotine View Post
And a final question: what kinds of things can't be added using ReaPack-packagemanager? If I wanted to install the contents of a ReaperConfigZip-file from a repo using ReaPack rather than having to use ReaperConfigZip-file, what could I install and what would be missing?
e.g. could I add ini-files as well, that are stored in the RessourcesFolder?
ReaPack packages can currently write files into the AutomationItems, ColorThemes, Data, Effects, LangPack, MIDINoteNames, ProjectTemplates, reaper_www_root, Scripts, TrackTemplates and UserPlugins directories. Writing directly to the resource directory is not allowed (unsafe, especially considering many users choose to install everything).

I'm not sure how well externally overwriting an .ini while REAPER is running would work as some settings are kept in memory...

Last edited by cfillion; 01-16-2019 at 09:10 AM.
cfillion is offline   Reply With Quote
Old 01-16-2019, 09:21 AM   #725
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Ah, sounds good.

Would it be an option to add an API-function to ReaPack, that allows me programmatically install a ReaPack-package?
Like reaper.ReaPack_InstallPackage(string xml_file) ?

That way, I could install our git and do the rest with ini-files manually within one script, but I would need to know first, whether it was installed.
With such a function, I would be able to know that within my script.
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 01-16-2019, 09:29 AM   #726
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

There is no API to manage individual packages, however you can configure your repository to install every packages it contains and synchronize. GetOwner can detect whether a package is installed.

You can also open the package browser with a filter of your choice pre-filled (BrowsePackage(searchPattern)).

(Alternatively, maybe the .ini-copying script could be included along with the rest, only waiting to be manually run after installation?)

Last edited by cfillion; 01-16-2019 at 09:38 AM.
cfillion is offline   Reply With Quote
Old 01-20-2019, 08:04 PM   #727
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Is it mandatory to have a versions-tag in all my files? For instance, I have several .txt-files, whose functionality will break when I add a version-tag into it, as they are no MIDI-name-files.

As far as I understand, the version-tag is only necessary for the generating of the xml-file but once it is generated, it's not necessary anymore.
Meaning, I could add this version-information manually somehow into the xml-file instead leaving it out of the TXT-files, right?

And as far as I understood, I can put my files somewhere else too, like on localhost to experiment with it, right?

Edit:
The last answer I can give myself: Yes, I can put them somewhere else, even on a localhost, installation to test around before putting something into the net
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...

Last edited by Meo-Ada Mespotine; 01-20-2019 at 08:54 PM.
Meo-Ada Mespotine is offline   Reply With Quote
Old 01-21-2019, 01:17 AM   #728
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

@version is only required for the package files (files describing a package to reapack-index using metadata). If these .txt files are not packages themselves, but are instead part of some other package, they don't need anything (reapack-index will give a warning unless they have @noindex, but will ultimately ignore them nevertheless).

Yes, you can manually edit the .xml file. As for localhost: yes, and file:// URIs are also supported (on the ReaPack side).
cfillion is offline   Reply With Quote
Old 01-22-2019, 10:14 AM   #729
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Thanks for all your answers(and I hope you don't mind more questions from me )

What element in the xml-file triggers the updating-process in the ReaPack-Manager? I suppose, a changed/added version-element tells the plugin "there's an update to consider"?
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 01-22-2019, 10:34 AM   #730
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

"Synchronize packages" updates when a version whose number is higher than the installed one is found in the XML index. Fox example:

Code:
> reaper.ReaPack_CompareVersions('1.0', '1.0.1')
{-1, ""} -- 1.0.1 is higher: update

> reaper.ReaPack_CompareVersions('2.0', '1.0.1')
{1,  ""} -- lower: do nothing

> reaper.ReaPack_CompareVersions('1.2.3', '1.2.3.0')
{0,  ""} -- same: do nothing

> reaper.ReaPack_CompareVersions('1.0beta', '1.0')
{-1, ""} -- 1.0 is higher: update

> reaper.ReaPack_CompareVersions('1.0', '2.0beta')
{-1, ""} -- 2.0beta is higher: see below
There are additional rules for handling pre-releases (versions containing alphabetical segments). Pre-releases are not automatically updated to unless the current version is also a pre-release and there are no stable releases in between.

Last edited by cfillion; 01-22-2019 at 10:44 AM.
cfillion is offline   Reply With Quote
Old 01-28-2019, 10:41 AM   #731
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

So when in doubt, I should do a quick check for a versionstring using ReaPack_CompareVersions to be safe. Good to know


Another thing, is there a way to run the synchronize-procedure(including a possible auto-install) programmatically or is it only useable by the user, clicking the synchronize-button/menuentry?

And a little Feature-Request:
Would it be possible to add a way to automatically run a script after installing an extension?
For example, Lokasenna's Gui-Lib needs a script to be run before I can use his Gui-Lib, to store some of the paths needed by his Gui-Lib. I think, it would be better, if this could be done automatically by automatically running such a script, to make it more user-friendly.
I think a simple, register this startup-script, run it once and unregister it again would be the easiest way to do it.

For myself, I need it to automatically register some of my scripts into the reaper-kb.ini. I want to add it using proper ActionCommandIDs and description-texts, which can't be done in any other way than putting it into the ini-file and after that restarting Reaper. This would be in-line with the need of restarting Reaper after installing an extension.
This could also solve my problem I described in some posts above, where I wanted to replace the ini-files in the ressources-folder, which could be done by me then automatically, before restarting Reaper.

The other option, using __startup.lua in the Scripts-folder isn't an option, as I can't know, if a user has such a script already which would be overwritten by me that way...
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 02-09-2019, 02:01 PM   #732
juliansader
Human being with feelings
 
Join Date: Jul 2009
Posts: 3,714
Default

I would like to include mouse cursor files with some of my scripts, but I am not sure about the Provide syntax that I should use.

I have tried the following (intended to install the cur file from ReaTeam/ReaScripts/MIDI editor/ into the same directory as the script), but it doesn't seem to work:
Code:
Provides: 
  [main=midi_editor,midi_inlineeditor] .
  "js_Mouse editing - Slice notes.cur"
juliansader is offline   Reply With Quote
Old 02-09-2019, 07:52 PM   #733
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by mespotine View Post
Another thing, is there a way to run the synchronize-procedure(including a possible auto-install) programmatically or is it only useable by the user, clicking the synchronize-button/menuentry?
Code:
reaper.Main_OnCommand(reaper.NamedCommandLookup('_REAPACK_SYNC'), 0)
Quote:
Originally Posted by juliansader View Post
I would like to include mouse cursor files with some of my scripts, but I am not sure about the Provide syntax that I should use.

I have tried the following (intended to install the cur file from ReaTeam/ReaScripts/MIDI editor/ into the same directory as the script), but it doesn't seem to work:
Code:
Provides: 
  [main=midi_editor,midi_inlineeditor] .
  "js_Mouse editing - Slice notes.cur"
Remove the quotes. You can use https://reapack.com/upload to upload the files and have the provides tag generated automatically for you.

Also it would be better to avoid putting js_ and .lua in the package display name (at some point in the future I'll do a repository-wide metadata cleanup).

Last edited by cfillion; 02-09-2019 at 08:29 PM.
cfillion is offline   Reply With Quote
Old 02-14-2019, 10:58 PM   #734
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

ReaPack v1.2.2rc3

Should be released as stable in a few days.

Added:
  • implement SHA-256 checksum verification for downloaded files
  • browser: add "Synchronize packages" to the menu [p=2084579]
  • browser: add "Upload packages" action to the menu opening https://reapack.com/upload
  • receipt: annotate installation type and previous version
Fixed:
  • import: fix possible crash after downloading indexes
cfillion is offline   Reply With Quote
Old 02-20-2019, 06:39 AM   #735
Meo-Ada Mespotine
Human being with feelings
 
Meo-Ada Mespotine's Avatar
 
Join Date: May 2017
Location: Leipzig
Posts: 6,621
Default

Is there a way to tell the user, which requirements are there for a ReaPack in the index.xml-file?
Like "I need SWS version x.x.x to be installed" or "JS-Plugin version x.y.z" or something?

I haven't found something like that and would love to signal that during installation. Maybe including the possibility to open the websites(SWS)/add ReaPacks(JS-Extension) that holds the feature would be cool.
But at least a dialog that says needs feature x.y.z. to be installed to work properly..
__________________
Use you/she/her.Ultraschall-Api Lua Api4Reaper - Donate, if you wish

On vacation for the time being...
Meo-Ada Mespotine is offline   Reply With Quote
Old 02-20-2019, 09:30 PM   #736
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

There is no support for dependencies yet (there won't be a 1.3 until I do this–and much rewrites). For now scripts have to check themselves.

https://gist.github.com/cfillion/347...b9533204c765f3

Quote:
Originally Posted by mespotine View Post
But at least a dialog that says needs feature x.y.z. to be installed to work properly..
This would be easier to do than a dependency system. (If you or someone know C++ and have time to spare, contributions are welcome.)

Last edited by cfillion; 02-20-2019 at 09:46 PM.
cfillion is offline   Reply With Quote
Old 02-22-2019, 11:02 AM   #737
Sexan
Human being with feelings
 
Sexan's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 4,596
Default

is there a way to use reapack index via visual studio code (not a big problem thru cmd just asking)?

EDIT1: it works out of the box...for some reason terminal would not recognize some cmd commands and git-bash also (unknown reapack-index bla bla bla), but know it somehow works

and more important question how can I link two scripts to be downloaded? I have GUI and core script,never uploaded like this before

EDIT2: I guess its @provide but nothing is happening
Code:
--[[
 * eaScript Name: Sexan_Track_versions_v2_gui.lua
 * About: Protools style playlist, track versions (Cubase)
 * Author: SeXan
 * Licence: GPL v3
 * REAPER: 5.0
 * Extensions: SWS, JS API
 * Version: 0.0.1
 * Provides  
    [nomain] Sexan_Track_versions_core.lua
--]]
whats wrong here?

Last edited by Sexan; 02-22-2019 at 01:55 PM.
Sexan is offline   Reply With Quote
Old 02-22-2019, 04:53 PM   #738
Tod
Human being with feelings
 
Tod's Avatar
 
Join Date: Jan 2010
Location: Kalispell
Posts: 14,745
Default

I had a problem with my main Reaper program, so first I exported my configuration file, then deleted the "Reaper.ini" file. Then started Reaper
and imported my configurations file.

Now I don't have ReaPack in my menu, although the reapack.dll is in my UserPlugins folder.

How do I get ReaPack back in my "Extensions" menu?
Tod is offline   Reply With Quote
Old 02-22-2019, 08:41 PM   #739
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by Sexan View Post
whats wrong here?
The last line is not decorated the same way as the other lines. The parser allows the use of any decoration style, but it must be consistent (at least per-tag). You can also use https://reapack.com/upload/reascript as a way to generate and experiment with valid header tags.

Code:
-- @description Track versions v2
-- @author SeXan
-- @version 0.0.1
-- @provides Sexan_Track_versions_core.lua
-- @about Protools style playlist, track versions (Cubase)

--[[ (these are not reapack-index tags)
 * Licence: GPL v3
 * REAPER: 5.0
 * Extensions: SWS, JS API
--]]
Quote:
Originally Posted by Tod View Post
How do I get ReaPack back in my "Extensions" menu?
Are the ReaPack actions still present in the Action List? If so, the Extensions menu was likely customized. You can add ReaPack's actions back into it using REAPER's Customize menus/toolbars window. Otherwise, it may be a 32-bit vs 64-bit mismatch causing ReaPack to not be loaded?

Last edited by cfillion; 02-22-2019 at 08:49 PM.
cfillion is offline   Reply With Quote
Old 02-23-2019, 02:04 AM   #740
Sexan
Human being with feelings
 
Sexan's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 4,596
Default

It still does not download second/core script...its "Tracks versions v2" on reapack if you wanna test. Do I need to enter some path or something? right now its located on local repo my documents/git/repo/alpha
Sexan is offline   Reply With Quote
Old 02-23-2019, 02:36 AM   #741
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Version 0.0.1 was already released so reapack-index didn't modify it. You can use the --amend option to allow editing existing releases. To rescan the git commit that fixed the header (debc068) and replace the existing v0.0.1:

Code:
reapack-index --amend --scan debc068
https://i.imgur.com/oGHZzPB.png

Last edited by cfillion; 02-23-2019 at 02:44 AM.
cfillion is offline   Reply With Quote
Old 02-23-2019, 04:08 AM   #742
Sexan
Human being with feelings
 
Sexan's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 4,596
Default

Oh yeah,now it works thank you... I was using amend wrong way... One more question, how do I know which is that "ID" of the script (debc068)?
Sexan is offline   Reply With Quote
Old 02-23-2019, 04:29 AM   #743
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Usually it would be used as just "reapack-index --amend". "--scan commit-id-or-path" is only useful for re-scanning a commit, a file, or a whole directory that had already been indexed.

debc068 (shorthand for the full SHA-1 hash: debc068cf76ebd729475274825c77298dc58485a) represents the git commit that fixed the @provides tag. I got it using git log. If you're using a git client integrated into VSCode, it should be accessible with that too. It's also visible on GitHub.

https://git-scm.com/book/en/v2/Git-B...Commit-History

Last edited by cfillion; 02-23-2019 at 04:40 AM.
cfillion is offline   Reply With Quote
Old 02-23-2019, 04:39 AM   #744
Sexan
Human being with feelings
 
Sexan's Avatar
 
Join Date: Jun 2009
Location: Croatia
Posts: 4,596
Default

Thank you very much!
Sexan is offline   Reply With Quote
Old 02-23-2019, 10:49 AM   #745
Tod
Human being with feelings
 
Tod's Avatar
 
Join Date: Jan 2010
Location: Kalispell
Posts: 14,745
Default

Quote:
Originally Posted by cfillion View Post
Are the ReaPack actions still present in the Action List? If so, the Extensions menu was likely customized. You can add ReaPack's actions back into it using REAPER's Customize menus/toolbars window. Otherwise, it may be a 32-bit vs 64-bit mismatch causing ReaPack to not be loaded?
Thanks cfillion, yes I still see some of the scripts in the Action list. There's aslo a "reaper_reapack64.dll" file sitting
in the "UserPlugins" folder, however there are no ".dylib" or ".so" files with it like the other dll files.

There's also a reapack.ini file in the main Reaper folder.

One thing I see missing is a "Reaper.ini" file, could that have something to do with it. I recently removed it because I thought
it was corrupted, but I thought Reaper would automatically rebuild it. I guess it doesn't.

What do you think?
Tod is offline   Reply With Quote
Old 02-23-2019, 08:39 PM   #746
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

I meant ReaPack's own actions, not the script themselves (https://i.imgur.com/na1KYoT.png). .dylib are for macOS and .so are for Linux.

Are you sure you're looking at the right resource path (given reaper.ini isn't created there, I'm guessing it may be somewhere else)? Options > Show REAPER resource path in explorer/finder will open the current one (if you're not already opening it using that).
cfillion is offline   Reply With Quote
Old 02-24-2019, 01:38 PM   #747
Tod
Human being with feelings
 
Tod's Avatar
 
Join Date: Jan 2010
Location: Kalispell
Posts: 14,745
Default

Quote:
Originally Posted by cfillion View Post
I meant ReaPack's own actions, not the script themselves (https://i.imgur.com/na1KYoT.png). .dylib are for macOS and .so are for Linux.
Thanks cfillion, good to know about the extensions.

Regarding ReaPack's own actions, those actions are not in the actions list for this install.

However, they are in the action list for another portable install that aslo has ReaPack in the menu. From the ones shown in that picture, I've got all
but "ReaPack: About..." and "ReaPack: Upload pachages" in the actions list. However, I can't find those actions in the folder for that portable install.
Where would they be located, I've searched the main folder but can't find them anywhere?

Also, I still can't find the Reaper.ini file in Reaper install I'm working with. Reaper seems to work fine without it.

Heh heh, I'm thoroughly confused cfillion.
Tod is offline   Reply With Quote
Old 02-24-2019, 04:51 PM   #748
Tod
Human being with feelings
 
Tod's Avatar
 
Join Date: Jan 2010
Location: Kalispell
Posts: 14,745
Default

Just to let you know I managed to get things fixed and working.

What I did was update to the latest Reaper. Scared the heck out of me at first because it totally overwrote my
configuration, and put me back to a totally raw default Reaper. Luckily I had just saved/exported my config file
yesterday so no harm done. That's never happened to me before, what about you folks.

At any rate I'm good to go again.
Tod is offline   Reply With Quote
Old 02-24-2019, 10:43 PM   #749
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Latest ReaPack crashes Reaper 5.97 (as well as the latest dev v5.97+dev0224a, I tried both) upon starting Reaper. (Moving the *.so file out of userplugins, Reaper starts fine.) Reaper for Linux. More info about my system in my signature.
JamesPeters is offline   Reply With Quote
Old 02-24-2019, 11:53 PM   #750
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Try running REAPER from gdb and get a backtrace. Please send me the entire output.

Code:
gdb reaper -ex 'set pagination off' -ex run -ex bt -ex quit
cfillion is offline   Reply With Quote
Old 02-25-2019, 12:12 AM   #751
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Output:

Code:
GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from reaper...(no debugging symbols found)...done.
Starting program: /home/james/opt/REAPER/reaper 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffcdf61700 (LWP 9537)]
[New Thread 0x7fffcd760700 (LWP 9538)]
[New Thread 0x7fffccf5f700 (LWP 9539)]
swell: dlopen() failed: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.11' not found (required by /home/james/.config/REAPER/UserPlugins/reaper_reapack64.so)
Error loading /home/james/.config/REAPER/UserPlugins/reaper_reapack64.so: (null)

Thread 1 "reaper" received signal SIGSEGV, Segmentation fault.
0x00007ffff7de4c7c in ?? () from /lib64/ld-linux-x86-64.so.2
#0  0x00007ffff7de4c7c in ?? () from /lib64/ld-linux-x86-64.so.2
#1  0x00007ffff7decde1 in ?? () from /lib64/ld-linux-x86-64.so.2
#2  0x00007ffff7de8644 in ?? () from /lib64/ld-linux-x86-64.so.2
#3  0x00007ffff7dec609 in ?? () from /lib64/ld-linux-x86-64.so.2
#4  0x00007ffff79b8ee9 in ?? () from /lib/x86_64-linux-gnu/libdl.so.2
#5  0x00007ffff7de8644 in ?? () from /lib64/ld-linux-x86-64.so.2
#6  0x00007ffff79b9531 in ?? () from /lib/x86_64-linux-gnu/libdl.so.2
#7  0x00007ffff79b8f82 in dlopen () from /lib/x86_64-linux-gnu/libdl.so.2
#8  0x00007ffff76e57bb in snd_dlopen () from /usr/lib/x86_64-linux-gnu/libasound.so.2
#9  0x00007ffff76e0ced in ?? () from /usr/lib/x86_64-linux-gnu/libasound.so.2
#10 0x00007ffff76e138d in snd_config_update_r () from /usr/lib/x86_64-linux-gnu/libasound.so.2
#11 0x00007ffff76e187a in snd_config_update_ref () from /usr/lib/x86_64-linux-gnu/libasound.so.2
#12 0x00007ffff76feb6a in snd_pcm_open () from /usr/lib/x86_64-linux-gnu/libasound.so.2
#13 0x0000000000419f67 in ?? ()
#14 0x000000000041a650 in ?? ()
#15 0x000000000088474e in ?? ()
#16 0x00000000008867ae in ?? ()
#17 0x000000000071658a in ?? ()
#18 0x00007ffff65ff8b9 in ?? () from /home/james/opt/REAPER/libSwell.so
#19 0x00000000006ae981 in ?? ()
#20 0x00000000004136bf in ?? ()
#21 0x00007ffff6a8f2e1 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#22 0x00000000004187ea in _start ()
A debugging session is active.

	Inferior 1 [process 9532] will be killed.

Quit anyway? (y or n) y
I checked and I have libstdc++-6-dev installed. Version 6.3.0-18+deb9u1 (That includes libstdc++.so.6, but I don't know what specific version.)
JamesPeters is offline   Reply With Quote
Old 02-25-2019, 12:58 AM   #752
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

ReaPack 1.2.2 requires GCC 7.1's libstdc++ or newer. MX Linux 18 (Debian Stretch) only provides GCC 6.3's libstdc++. The crash appears to be unrelated.

You could try installing a newer libstdc++ from Debian Buster (gcc-8-base then libstdc++6). Of course these are not officially supported by the distribution.

Last edited by cfillion; 02-25-2019 at 01:12 AM.
cfillion is offline   Reply With Quote
Old 02-25-2019, 01:57 AM   #753
JamesPeters
Human being with feelings
 
Join Date: Aug 2011
Location: Near a big lake
Posts: 3,943
Default

Thanks for the info but I'd rather not mess with dependencies. I've learned my lesson on that already.

I browsed to your releases directory, put version 1.2.1 back in my userplugins folder, then "pinned" it for now (until my distro gets those particular libraries updated).

Last edited by JamesPeters; 02-25-2019 at 11:48 AM.
JamesPeters is offline   Reply With Quote
Old 03-03-2019, 03:50 PM   #754
lb0
Human being with feelings
 
Join Date: Apr 2014
Posts: 4,171
Default

The online upload system is a thing of beauty. Well done on that!

So a few basic questions to start.

From what I can gather having looked at it - all files end up in the ReaTeam Scripts/ folder.

My Stripper script requires a lot of resource files - a basic set provided in a zip file in github - and typically I keep everything in Scripts/LBX folder.

As far as I can see - it would not be possible using this tool to keep the files in my preferred folder?


Secondly - as mentioned - the resources are currently nicely wrapped up in a zip file on github - is there any way to have this unpack to a specific location - or would I need to add each file manually to github and then add one-by-one those required by the script and place them in their specific location?

I'm not overly fussed where the actual main Lua script file ends up - it's more the location of the resources I would ideally keep in their current location - otherwise current users who choose to install via Reapack will require that they move their current resource folder (not the end of the world though!).

Another question - users of Stripper add files manually to these resources (new control graphics files/background graphics/created strips etc) - but any update to the script via Reapack must obviously leave all these resources in place and only add (merge) anything new. Typically they would download the resources once - and then any further updates are *usually* just to the main script file. There are occasions when new resource files need to be added to the resources though (If I change the skins etc). Is it possible to manage all this?

I think I can see that if I say put my main script in ReaTeam Scripts/Various/LBX/ folder and the resources in ReaTeam Scripts/Various/LBX/LBXCS_resources/ it would be acceptable if I cannot use the current location I use.

So my main query is can the zip file be unpacked - or does each file need to be separate. And when updating via Reapack - will all current files in the resources folder remain there (as would be required) - with only new or updated files being added/overwritten?

Thanks!
__________________
Projects - Reascripts - Lua:
Smart Knobs 2 | LBX Stripper | LBX Floating FX Positioner
Donate via Paypal | LBX Tools Website
lb0 is offline   Reply With Quote
Old 03-04-2019, 12:41 AM   #755
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,688
Default

IMHO, the uploads done to ReaPack in this way should be "there to stay". Hence they should completely be a in a "Reaper managed" repository.

-Michael
mschnell is online now   Reply With Quote
Old 03-04-2019, 01:44 PM   #756
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

Quote:
Originally Posted by lb0 View Post
My Stripper script requires a lot of resource files - a basic set provided in a zip file in github - and typically I keep everything in Scripts/LBX folder.

As far as I can see - it would not be possible using this tool to keep the files in my preferred folder?
There's a few options for locating the resource files. It could be installed in the Data directory: reaper.GetResourcePath() .. '/Data/LBXCS resources/'. The script could look for it relative to itself: ({reaper.get_action_context()})[2]:match('^(.+)/') .. '/LBXCS resources'. The only way to get rid of the "ReaTeam Scripts" root directory in the Scripts folder would be to maintain your own repository (XML index).

Quote:
Originally Posted by lb0 View Post
So my main query is can the zip file be unpacked - or does each file need to be separate.
The contents of the package must be explicitly set. (I see the archive has empty folders: because ReaPack–like git–deals with "real" files, these can be achieved by adding a hidden empty file inside–usually ".keep".).

The file hierarchy on the repository can differ from what is installed. https://i.imgur.com/l2EZ9BZ.gif

Quote:
Originally Posted by lb0 View Post
And when updating via Reapack - will all current files in the resources folder remain there (as would be required) - with only new or updated files being added/overwritten?
ReaPack only overwrites files that are explicitly listed as being part of an installed package. Files manually created alongside the package's files are kept, even after uninstalling it.

Last edited by cfillion; 03-04-2019 at 01:52 PM.
cfillion is offline   Reply With Quote
Old 03-04-2019, 04:08 PM   #757
lb0
Human being with feelings
 
Join Date: Apr 2014
Posts: 4,171
Default

Quote:
Originally Posted by cfillion View Post
...
ReaPack only overwrites files that are explicitly listed as being part of an installed package. Files manually created alongside the package's files are kept, even after uninstalling it.
Thanks for your responses. I think the Data directory would be an obvious location for the resources, and still fit in with the ReaTeams setup.

And good to know any manually added files will stay put.

I shall look into further.

It would be easy to create empty folders when Stripper starts if necessary - that will prevent me needing to provide dummy files just to get the structure correct.

I'll just need to unpack the zip file into folders in github I guess and add each file in turn via your online tool. Fortunately the basic setup is only just over a hundred files - wouldn't want to be manually adding much more than that
__________________
Projects - Reascripts - Lua:
Smart Knobs 2 | LBX Stripper | LBX Floating FX Positioner
Donate via Paypal | LBX Tools Website
lb0 is offline   Reply With Quote
Old 04-03-2019, 09:24 AM   #758
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

This is sort of a cosmetic question...

Everytime I update or add a script in my local repo I
- first commit the script changes
- do reapack-index
- do a 'update index' commit - which clutters Git history a bit
- push

So, this time I've tried to squash both commits (script changes + update index) before pushing, but obviously it didn't work:

https://forum.cockos.com/showpost.ph...&postcount=606

Is there a correct way to do this or does it need to be two separate commits?
nofish is offline   Reply With Quote
Old 04-03-2019, 11:20 AM   #759
cfillion
Human being with feelings
 
cfillion's Avatar
 
Join Date: May 2015
Location: Québec, Canada
Posts: 4,937
Default

It needs to be separate commits because the download URLs must have the commit that last changed the script to allow downloading any indexed version. Then the index must also be committed to be released. The index can be hosted outside of the repository, in another repository or a secondary branch though.
cfillion is offline   Reply With Quote
Old 04-03-2019, 11:42 AM   #760
nofish
Human being with feelings
 
nofish's Avatar
 
Join Date: Oct 2007
Location: home is where the heart is
Posts: 12,096
Default

Got it, thanks.
nofish is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 03:26 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.