Commit graph

8017 commits

Author SHA1 Message Date
Jools Wills
e1b1549e90 ports - added rp_module_repo information for ports that can currently support it
Note: ioquake3 uses "main" as the default branch
2021-02-15 23:54:13 +00:00
Jools Wills
b160838a47 system - add subversion as a dependency 2021-02-15 23:54:13 +00:00
Jools Wills
c4e6d77727 packages - force update for source if module date is newer then install date
With binaries, if we update a scriptmodule, we can rebuild or update the date on the binaries to force
an update. However, with the source installs, if the remote repository is not updated, an update won't
happen until it does. This could be an issue in a situation where we notice a bug in the module. In this
case we check if the module date is newer than the install date - and if so, we force an update.
2021-02-15 23:54:13 +00:00
Jools Wills
a07d8ed569 packages / setup - re-implement rp_getPackageInfo as rp_loadPackageInfo
Previously we eval's the return of getPackageInfo so the package variables could be created
locally to the function. However, due to the use of a subshell we couldn't cache anything in a variable
for use later.

The functions is now renamed to rp_loadPackageInfo and loads the package information into __mod_info[ID/FIELD]

eg. __mod_info[ID/pkg_origin] will contain the retropie.pkg origin field for the installed module

It also uses just grep to load the data rather than our existing ini functions for performance. As it's not
considered a user editable file, performance is key here, as we need this data when traversing the
RetroPie-Setup menus.

If a full load of a retropie.pkg is done, __mod_info[ID/pkg_info] is set to 1, as a cache flag so the data can be
reused without reloading on an additional call. rp_SetPackageInfo will clear this flag

Optional parameters for rp_loadPackageInfo can choose individual fields but if used the data won't be
cached, but it can be a lot faster - we use this to grab pkg_origin for the section menus in RetroPie-Setup.
2021-02-15 23:54:13 +00:00
Jools Wills
80ae339cd7 tools - inital tools module with repo_check function
This allows checking of rp_module_repo variables and testing repositories
2021-02-15 23:54:13 +00:00
Jools Wills
ac5da4ecca packages - split off md_* vars setting to function
This allows it to be used manually for loading module variables - eg in administration scripts
2021-02-15 23:54:13 +00:00
Jools Wills
0fecb55bf6 supplementary - add rp_module_repo info for some of the supplementary packages that should with it 2021-02-15 23:54:13 +00:00
Jools Wills
2cfcdc4765 emulators - added rp_module_repo for emulators using source archives 2021-02-15 23:54:13 +00:00
Jools Wills
e3b8a2c48b dosbox / vice - added rp_module_repo for these modules that use subversion 2021-02-15 23:54:13 +00:00
Jools Wills
b965f21e46 emulators - added rp_module_repo to emulators using git
Also fixed hatari licence link
2021-02-15 23:54:13 +00:00
Jools Wills
7bcdc6a956 libretrocores - added rp_module_repo to all libretro cores
Also use new location for lr-meseon repo due to repository move
2021-02-15 23:54:13 +00:00
Jools Wills
6b0055ae3c setup - adjust logic to support source version checking 2021-02-15 23:54:13 +00:00
Jools Wills
2b1895f5db helpers - allow gitPullOrClone to be used without parameters if md_module_repo is set 2021-02-15 23:54:13 +00:00
Jools Wills
b79ad04667 packages - add support for basic source versioning
These changes allow storing of source repo information in retropie.pkg as well as the ability
to check for a new version. To do this, repository information needs to be moved to the variable
md_module_repo in the format

md_module_repo="TYPE URL BRANCH COMMIT"

Currently types of file, git, or svn are suppported.

If using file the BRANCH and COMMIT are not used.
If using svn the BRANCH should be - and the COMMIT is the SVN revision.

This information is split up and provided to the module in the form of

md_repo_type
md_repo_url
md_repo_branch
md_repo_commit
2021-02-15 23:54:13 +00:00
Jools Wills
fcb80cbe2c packages - fix md_build cleaning logic when __persistent_repos is set
Previously if set and if md_build contained a git repository, it would reset it, to undo any patches we
may have so they get reapplied after next git update. However, if there wasn't a .git folder in md_build it would
still remove the folder, rather than leave it behind. Adjusted the logic to fix this, but this code is very old
and was a quick "hack" so needs revisiting with upcoming packaging changes.
2021-02-14 03:12:03 +00:00
Jools Wills
4fc2e4ee9e packages - only do an additional check on module ids on 3rd party repos
Doing an additional grep on every module to check if it duplicated an additional module_id, added
more overhead than was ideal. However we can just do the check on 3rd party repos, which brings performance
back to how it was pretty much, and will have a slight overhead if a user has a 3rd party repo added
2021-02-08 01:35:35 +00:00
Jools Wills
5e73e8f1f3
Merge pull request #3307 from joolswills/dialog_colours
setup - change colours around to work with other terminals
2021-02-08 00:34:03 +00:00
Jools Wills
52dca5dd1d setup - change colours around to work with other terminals
On the Raspberry Pi console, bold text results in a lighter colour, rather than actually being bold.

One user (it may not be a common issue) reported on their terminal that they couldn't see installed
packages. This was due to our "bold white" for installed applications which ended up being bold grey on a grey
background - so they couldn't see what was installed without hovering over it.

We don't colour installed packages now - but add unavailable packages as red.

This can always be changed later also if needed of course.
2021-02-08 00:31:39 +00:00
Jools Wills
c5e56d864f
Merge pull request #3303 from cmitu/themes-update
esthemes: 2 more themes from @lipebello
2021-02-02 18:30:44 +00:00
cmitu
78839d940b esthemes: 2 more themes from @lipebello 2021-02-02 15:07:53 +02:00
Jools Wills
968df7e453 packages - only run _update_hooks for modules that are enabled for the current system 2021-02-02 05:42:54 +00:00
Jools Wills
f6c01bad67 packages - use id instead of mod_id for consistency with other functions
Some of these old functions will be reworked in the future with some planned packaging improvements
2021-02-02 05:40:54 +00:00
Jools Wills
23047ac145 packages - some var declaration cleanups / fixes 2021-02-02 04:20:11 +00:00
Jools Wills
e95fa96632 helpers - remove unneeded helper_libs array and add missing local helper var 2021-02-02 04:15:37 +00:00
Jools Wills
4902a43749 setup - show built date in UTC format 2021-02-01 05:15:08 +00:00
Jools Wills
d3516ce272 packages - use iso-8601 date format for packages
although it works as it is currently due to the flexibility of the unix "date" command, we should
standardise dates so we don't end up with different formats in the configs depending on webserver output etc.
2021-02-01 03:27:30 +00:00
Jools Wills
1f84556f96 packages - fix CR line end character in retropie.pkg date for binaries
Curl headers outputs as CRLF rather than LF. Remove styled output from curl (as a precaution), and
strip CR's via tr before piping to grep, but also just use grep for processing via perl regexp (-P).
2021-02-01 02:19:55 +00:00
Jools Wills
500b97084b setup - make sure we clear last_type so it's not set on later iterations of loop 2021-01-31 22:47:45 +00:00
Jools Wills
e9fb042271 lr-puae / lr-vice - move to optional packages 2021-01-31 22:43:52 +00:00
Jools Wills
92726d5a10 added ext/* to .gitignore to ignore 3rd party repos 2021-01-31 22:32:34 +00:00
Jools Wills
da34399ea4 packages - fix md_data path for 3rd party repos 2021-01-31 22:17:26 +00:00
Jools Wills
cd653cc8c1 setup - fix up module vendor / type headings to use vendor in check
This fixes cases where only the script vendor changes rather than just the type of package, which
could mean a heading is missed.
2021-01-31 22:11:15 +00:00
Jools Wills
9969a0607a retropie-setup - bump version to 4.7.7 2021-01-30 02:53:41 +00:00
Jools Wills
398c0971bc
Merge pull request #3298 from joolswills/3rd_party_repos_v2
packages - allow adding of 3rd party module repos
2021-01-30 02:46:02 +00:00
Jools Wills
51c4f1af53 lr-mame2003-plus - move to optional packages 2021-01-27 23:33:01 +00:00
Jools Wills
8ac3438244 lr-mame2003 / lr-mame2003-plus - remove invalid core options
* samples core option is now removed
 * dcs-speedhack is renamed to dcs_speedhack but also enabled by default soo not needed
2021-01-27 23:23:39 +00:00
Jools Wills
f2e2422566 packages / setup - make sure module ids are unique
Do a grep to extract the rp_module_id before sourcing a file and check if it has already been used.
We don't want additional modules overriding existing, or accidental duplication.

Store the path of a module in __mod_info(ID/path)

Display any info/error messages when launching setup as otherwise they wouldn't be seen - they are
shown otherwise at the end of retropie_packages.sh.
2021-01-27 04:47:30 +00:00
Jools Wills
e7a63336ff quake3 - rework configure code
Removed usermod as we check this in setup.sh

Re-order to avoid doing install tasks on removal
2021-01-27 03:00:15 +00:00
Jools Wills
6d61130c6e configedit - adjust cancel labels in sub menus to "Back" and main menu to "Exit" 2021-01-27 02:52:41 +00:00
Jools Wills
9e2a3dba32 abuse - remove as non working
Original module required game data from Debian. Debian has since removed this data to due licence issues.
Having tested adjusting the module to use manually installed game data, at least on the RPI4 it doesn't seem
to work correctly, with some screen corruption and input issues.

If someone wants to take a look at this again, it can be re-added
2021-01-27 02:32:46 +00:00
Jools Wills
a20f2e63f2 setup - make headings blue 2021-01-26 03:22:08 +00:00
Jools Wills
c71ddc7288 helpers - only try and rm $dest on download failure if not using stdout and file exists 2021-01-26 03:15:29 +00:00
Jools Wills
8fe4d254e8 packages / setup - add vendor to module info and display in setup
Used to separate 3rd party packages from RetroPie ones. Added some extra menu items in setup showing
above each type like a heading with

---- VENDOR - TYPE ----

Where:
 * VENDOR is RetroPie or the name of the folder the 3rd party repo is installed in
 * TYPE is the module/package type such as emulator, libretrocore, port etc

Some users have found the ordering of the menus confusing and this should help with that also.

3rd party packages always appear at the end of a section
2021-01-26 03:00:15 +00:00
Jools Wills
48080d2d13 packages - allow adding of 3rd party module repos
3rd party repositories can be checked out to RetroPie-Setup/ext

Repositories should be structured so you have:

ext/REPOSITORY/scriptmodules

Modules are only read from the following subfolders of scriptmodules
 * emulators
 * libretrocores
 * ports
 * supplementary
 * admin
2021-01-26 02:15:01 +00:00
Jools Wills
c4527d433b packages - don't fail to load modules if installed in a path containing a space 2021-01-26 02:08:09 +00:00
Jools Wills
120f0ec3d1 retropie-setup - bump version to 4.7.6
The version was bumped to 4.7.5 just after the 3rd_party_repos PR was merged. However this had a major
bug due to the change in way modules were scanned causing the md_type to contain a full path. It was reverted
minutes after merging, but in case anyone accidentally updated to it, I am bumping again which may help
identify if a user did an update during this short window
2021-01-26 01:31:57 +00:00
Jools Wills
98f8f8891c
Merge pull request #3297 from RetroPie/revert-3295-3rd_party_repos
Revert "packages - allow adding of 3rd party module repos"
2021-01-26 00:53:54 +00:00
Jools Wills
23c4f72303
Revert "packages - allow adding of 3rd party module repos" 2021-01-26 00:52:27 +00:00
Jools Wills
833df9069c retropie-setup - bump version to 4.7.5 2021-01-26 00:42:44 +00:00
Jools Wills
f421c7dbab
Merge pull request #3296 from joolswills/module_info_merge_arrays
Merge module arrays and include all modules in setup
2021-01-26 00:41:36 +00:00