mirror of
				https://github.com/yuzu-emu/liftinstall.git
				synced 2025-11-04 04:35:07 +00:00 
			
		
		
		
	Merge lat9nq's changes
This commit is contained in:
		
						commit
						d8df3b3114
					
				| 
						 | 
					@ -1,15 +1,6 @@
 | 
				
			||||||
#!/usr/bin/env bash
 | 
					#!/usr/bin/env bash
 | 
				
			||||||
cd /liftinstall || exit 1
 | 
					cd /liftinstall || exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# setup NodeJS
 | 
					 | 
				
			||||||
curl -sL https://deb.nodesource.com/setup_12.x | bash -
 | 
					 | 
				
			||||||
# setup Yarn
 | 
					 | 
				
			||||||
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
 | 
					 | 
				
			||||||
echo "deb https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
apt-get update
 | 
					 | 
				
			||||||
apt-get install -y libwebkit2gtk-4.0-dev libssl-dev nodejs yarn
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
yarn --cwd ui
 | 
					yarn --cwd ui
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cargo build
 | 
					cargo build --release
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								.travis/exec.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.travis/exec.sh
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,4 @@
 | 
				
			||||||
 | 
					#!/bin/bash -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# the UID for the container yuzu user is 1027
 | 
				
			||||||
 | 
					docker run -u root -v $(pwd):/liftinstall -t yuzuemu/build-environments:linux-liftinstall /bin/bash /liftinstall/.travis/build.sh
 | 
				
			||||||
| 
						 | 
					@ -1,2 +1,2 @@
 | 
				
			||||||
name = "yuzu"
 | 
					name = "yuzu"
 | 
				
			||||||
target_url = "https://raw.githubusercontent.com/yuzu-emu/liftinstall/master/config.linux.v2.toml"
 | 
					target_url = "https://raw.githubusercontent.com/yuzu-emu/liftinstall/master/config.linux.v3.toml"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										58
									
								
								config.linux.v3.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								config.linux.v3.toml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,58 @@
 | 
				
			||||||
 | 
					installing_message = "Reminder: yuzu is an <b>experimental</b> emulator. Stuff will break!"
 | 
				
			||||||
 | 
					hide_advanced = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[authentication]
 | 
				
			||||||
 | 
					# Base64 encoded version of the public key for validating the JWT token. Must be in DER format
 | 
				
			||||||
 | 
					pub_key_base64 = "MIIBCgKCAQEAs5K6s49JVV9LBMzDrkORsoPSYsv1sCXDtxjp4pn8p0uPSvJAsbNNmdIgCjfSULzbHLM28MblnI4zYP8ZgKtkjdg+Ic5WQbS5iBAkf18zMafpOrotTArLsgZSmUfNYt0SOiN17D+sq/Ov/CKXRM9CttKkEbanBTVqkx7sxsHVbkI6tDvkboSaNeVPHzHlfAbvGrUo5cbAFCB/KnRsoxr+g7jLKTxU1w4xb/pIs91h80AXV/yZPXL6ItPM3/0noIRXjmoeYWf2sFQaFALNB2Kef0p6/hoHYUQP04ZSIL3Q+v13z5X2YJIlI4eLg+iD25QYm9V8oP3+Xro4vd47a0/maQIDAQAB"
 | 
				
			||||||
 | 
					# URL to authenticate against. This must return a JWT token with their permissions and a custom claim patreonInfo with the following structure
 | 
				
			||||||
 | 
					# "patreonInfo": { "linked": false, "activeSubscription": false }
 | 
				
			||||||
 | 
					# If successful, the frontend will use this JWT token as a Bearer Authentication when requesting the binaries to download
 | 
				
			||||||
 | 
					auth_url = "https://api.yuzu-emu.org/jwt/installer/"
 | 
				
			||||||
 | 
					    [authentication.validation]
 | 
				
			||||||
 | 
					    iss = "citra-core"
 | 
				
			||||||
 | 
					    aud = "installer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[packages]]
 | 
				
			||||||
 | 
					name = "yuzu Early Access"
 | 
				
			||||||
 | 
					description = "Preview release with the newest features for the supporters."
 | 
				
			||||||
 | 
					icon = "thicc_logo_installer__ea_shadow.png"
 | 
				
			||||||
 | 
					requires_authorization = true
 | 
				
			||||||
 | 
					# puts a "new" ribbon the package select
 | 
				
			||||||
 | 
					is_new = true
 | 
				
			||||||
 | 
					    [packages.extended_description]
 | 
				
			||||||
 | 
					    no_action_description = "Thank you for your support!"
 | 
				
			||||||
 | 
					    # Displayed when the package has no authentication for the user
 | 
				
			||||||
 | 
					    need_authentication_description = "Click here to sign in with your yuzu account for Early Access"
 | 
				
			||||||
 | 
					    # Displayed when the package has an authentication, but the user has not linked their account
 | 
				
			||||||
 | 
					    need_link_description = "You are signed in, but you need to link your Patreon account! Click here for more details"
 | 
				
			||||||
 | 
					    # Displayed when the package has an authentication, but the user has not linked their account
 | 
				
			||||||
 | 
					    need_subscription_description = "You are signed in, but you need to link your Patreon account! Click here for more details"
 | 
				
			||||||
 | 
					    # Displayed when the package has an authentication, but the user has not linked their account
 | 
				
			||||||
 | 
					    need_reward_tier_description = "You are signed in, but are not backing an eligible reward tier! Click here for more details"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    [packages.source]
 | 
				
			||||||
 | 
					    name = "patreon"
 | 
				
			||||||
 | 
					    match = "^yuzu-linux-[0-9]*-[0-9a-f]*.tar.xz$"
 | 
				
			||||||
 | 
					        [packages.source.config]
 | 
				
			||||||
 | 
					        repo = "earlyaccess"
 | 
				
			||||||
 | 
					    [[packages.shortcuts]]
 | 
				
			||||||
 | 
					    name = "yuzu Early Access"
 | 
				
			||||||
 | 
					    relative_path = "yuzu-linux-early-access/yuzu-early-access.AppImage"
 | 
				
			||||||
 | 
					    description = "Launch yuzu Early Access"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[packages]]
 | 
				
			||||||
 | 
					name = "yuzu"
 | 
				
			||||||
 | 
					description = "Includes frequent updates to yuzu with all the latest reviewed and tested features."
 | 
				
			||||||
 | 
					icon = "thicc_logo_installer_shadow.png"
 | 
				
			||||||
 | 
					default = true
 | 
				
			||||||
 | 
					    [packages.source]
 | 
				
			||||||
 | 
					    name = "github"
 | 
				
			||||||
 | 
					    match = "^yuzu-linux-[0-9]*-[0-9a-f]*.tar.xz$"
 | 
				
			||||||
 | 
					        [packages.source.config]
 | 
				
			||||||
 | 
					        repo = "yuzu-emu/yuzu-mainline"
 | 
				
			||||||
 | 
					    [[packages.shortcuts]]
 | 
				
			||||||
 | 
					    name = "yuzu"
 | 
				
			||||||
 | 
					    relative_path = "yuzu-linux-mainline/yuzu-mainline.AppImage"
 | 
				
			||||||
 | 
					    description = "Launch yuzu"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,6 +98,7 @@ pub struct InstallerFramework {
 | 
				
			||||||
    // If we just completed an uninstall, and we should clean up after ourselves.
 | 
					    // If we just completed an uninstall, and we should clean up after ourselves.
 | 
				
			||||||
    pub burn_after_exit: bool,
 | 
					    pub burn_after_exit: bool,
 | 
				
			||||||
    pub launcher_path: Option<String>,
 | 
					    pub launcher_path: Option<String>,
 | 
				
			||||||
 | 
					    pub is_windows: bool,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Contains basic properties on the status of the session. Subset of InstallationFramework.
 | 
					/// Contains basic properties on the status of the session. Subset of InstallationFramework.
 | 
				
			||||||
| 
						 | 
					@ -457,6 +458,7 @@ impl InstallerFramework {
 | 
				
			||||||
            is_launcher: false,
 | 
					            is_launcher: false,
 | 
				
			||||||
            burn_after_exit: false,
 | 
					            burn_after_exit: false,
 | 
				
			||||||
            launcher_path: None,
 | 
					            launcher_path: None,
 | 
				
			||||||
 | 
					            is_windows: cfg!(windows),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -501,6 +503,7 @@ impl InstallerFramework {
 | 
				
			||||||
            is_launcher: false,
 | 
					            is_launcher: false,
 | 
				
			||||||
            burn_after_exit: false,
 | 
					            burn_after_exit: false,
 | 
				
			||||||
            launcher_path: None,
 | 
					            launcher_path: None,
 | 
				
			||||||
 | 
					            is_windows: cfg!(windows),
 | 
				
			||||||
        })
 | 
					        })
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -405,7 +405,7 @@ mod natives {
 | 
				
			||||||
        target: &str,
 | 
					        target: &str,
 | 
				
			||||||
        args: &str,
 | 
					        args: &str,
 | 
				
			||||||
        working_dir: &str,
 | 
					        working_dir: &str,
 | 
				
			||||||
        _exe_path: &str,
 | 
					        exe_path: &str,
 | 
				
			||||||
    ) -> Result<String, String> {
 | 
					    ) -> Result<String, String> {
 | 
				
			||||||
        // FIXME: no icon will be shown since no icon is provided
 | 
					        // FIXME: no icon will be shown since no icon is provided
 | 
				
			||||||
        let data_local_dir = dirs::data_local_dir();
 | 
					        let data_local_dir = dirs::data_local_dir();
 | 
				
			||||||
| 
						 | 
					@ -422,10 +422,10 @@ mod natives {
 | 
				
			||||||
                        ));
 | 
					                        ));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                };
 | 
					                };
 | 
				
			||||||
                path.push(format!("{}.desktop", slugify(name))); // file name
 | 
					                path.push(format!("yuzu-maintenance-tool_{}.desktop", slugify(name))); // file name
 | 
				
			||||||
                let desktop_file = format!(
 | 
					                let desktop_file = format!(
 | 
				
			||||||
                    "[Desktop Entry]\nName={}\nExec=\"{}\" {}\nComment={}\nType=Application\nPath={}\n",
 | 
					                "[Desktop Entry]\nType=Application\nName={}\nExec=\"{}\" {}\nComment={}\nPath={}\nIcon=yuzu\n",
 | 
				
			||||||
                    name, target, args, description, working_dir
 | 
					                name, target, args, description, working_dir
 | 
				
			||||||
                );
 | 
					                );
 | 
				
			||||||
                let desktop_f = File::create(path);
 | 
					                let desktop_f = File::create(path);
 | 
				
			||||||
                let mut desktop_f = match desktop_f {
 | 
					                let mut desktop_f = match desktop_f {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,8 @@ use crate::logging::LoggingErrors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#[cfg(windows)]
 | 
					#[cfg(windows)]
 | 
				
			||||||
use crate::native::create_desktop_shortcut;
 | 
					use crate::native::create_desktop_shortcut;
 | 
				
			||||||
 | 
					#[cfg(target_os = "linux")]
 | 
				
			||||||
 | 
					use crate::native::create_shortcut;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub struct InstallDesktopShortcutTask {
 | 
					pub struct InstallDesktopShortcutTask {
 | 
				
			||||||
    pub name: String,
 | 
					    pub name: String,
 | 
				
			||||||
| 
						 | 
					@ -95,6 +97,16 @@ impl Task for InstallDesktopShortcutTask {
 | 
				
			||||||
                &starting_dir,
 | 
					                &starting_dir,
 | 
				
			||||||
                exe_path,
 | 
					                exe_path,
 | 
				
			||||||
            )?);
 | 
					            )?);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #[cfg(target_os = "linux")]
 | 
				
			||||||
 | 
					            installed_files.push(create_shortcut(
 | 
				
			||||||
 | 
					                &shortcut.name,
 | 
				
			||||||
 | 
					                &shortcut.description,
 | 
				
			||||||
 | 
					                tool_path,
 | 
				
			||||||
 | 
					                &format!("--launcher \"{}\"", exe_path),
 | 
				
			||||||
 | 
					                &starting_dir,
 | 
				
			||||||
 | 
					                exe_path,
 | 
				
			||||||
 | 
					            )?);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Update the installed packages shortcuts information in the database
 | 
					        // Update the installed packages shortcuts information in the database
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -56,7 +56,7 @@
 | 
				
			||||||
      </p>
 | 
					      </p>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="is-right-floating is-bottom-floating">
 | 
					    <div class="is-right-floating is-bottom-floating" v-scroll>
 | 
				
			||||||
      <p class="control">
 | 
					      <p class="control">
 | 
				
			||||||
        <b-button type="is-primary is-medium" :loading="loading" v-on:click="verify_token">{{ $t('auth.verify') }}</b-button>
 | 
					        <b-button type="is-primary is-medium" :loading="loading" v-on:click="verify_token">{{ $t('auth.verify') }}</b-button>
 | 
				
			||||||
      </p>
 | 
					      </p>
 | 
				
			||||||
| 
						 | 
					@ -186,6 +186,13 @@ export default {
 | 
				
			||||||
      this.verification_opened = true
 | 
					      this.verification_opened = true
 | 
				
			||||||
      this.blink_error()
 | 
					      this.blink_error()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  directives: {
 | 
				
			||||||
 | 
					      scroll: {
 | 
				
			||||||
 | 
					          inserted: function (el) {
 | 
				
			||||||
 | 
					              el.scrollIntoView()
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <p>{{ $t('complete.where_to_find') }}</p>
 | 
					                <p>{{ $t('complete.where_to_find') }}</p>
 | 
				
			||||||
                <br>
 | 
					                <br>
 | 
				
			||||||
                <img src="../assets/how-to-open.png" alt="Where yuzu is installed"/>
 | 
					                <img src="../assets/how-to-open.png" alt="Where yuzu is installed"  v-if="$root.$data.metadata.is_windows"/>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div v-else>
 | 
					            <div v-else>
 | 
				
			||||||
                <h4 class="subtitle">{{ $t('complete.uninstalled', {'name': $root.$data.attrs.name}) }}</h4>
 | 
					                <h4 class="subtitle">{{ $t('complete.uninstalled', {'name': $root.$data.attrs.name}) }}</h4>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,9 +30,12 @@
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="tile is-child is-6 box clickable-box" v-if="!$root.$data.metadata.preexisting_install"  v-on:click.capture.stop="installDesktopShortcut = !installDesktopShortcut">
 | 
					        <div class="tile is-child is-6 box clickable-box" v-if="!$root.$data.metadata.preexisting_install"  v-on:click.capture.stop="installDesktopShortcut = !installDesktopShortcut">
 | 
				
			||||||
          <h4>{{ $t('select_packages.options') }}</h4>
 | 
					          <h4>{{ $t('select_packages.options') }}</h4>
 | 
				
			||||||
          <b-checkbox v-model="installDesktopShortcut">
 | 
					          <b-checkbox v-model="installDesktopShortcut" v-if="$root.$data.metadata.is_windows">
 | 
				
			||||||
            {{ $t('select_packages.option_shortcut') }}
 | 
					            {{ $t('select_packages.option_shortcut') }}
 | 
				
			||||||
          </b-checkbox>
 | 
					          </b-checkbox>
 | 
				
			||||||
 | 
					          <b-checkbox v-model="installDesktopShortcut" v-if="!$root.$data.metadata.is_windows">
 | 
				
			||||||
 | 
					            Create Shortcut
 | 
				
			||||||
 | 
					          </b-checkbox>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <div class="subtitle is-6" v-if="!$root.$data.metadata.preexisting_install && advanced">{{ $t('select_packages.location') }}</div>
 | 
					        <div class="subtitle is-6" v-if="!$root.$data.metadata.preexisting_install && advanced">{{ $t('select_packages.location') }}</div>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue