Compare commits

...

10 Commits

Author SHA1 Message Date
Aiden McClelland
e06b068033 Merge branch 'master' of github.com:Start9Labs/start-os into next/patch 2024-06-03 10:06:46 -06:00
Matt Hill
c832b5d29e Update README.md (#2630)
* Update README.md

* Update README.md
2024-05-29 20:07:36 +00:00
Lucy
df777c63fe fix type for query params (#2611) 2024-04-23 20:02:11 +00:00
Lucy
e9c9a67365 update registry upload to take id for new admin permissions (#2605) 2024-04-18 11:35:38 -06:00
Aiden McClelland
2b88555028 Merge branch 'master' of github.com:Start9Labs/start-os into next/patch 2024-04-01 14:46:17 -06:00
Aiden McClelland
ac080edb02 automatically accept clearing the log tree on btrfs repair (#2580) 2024-03-29 20:03:36 +00:00
Aiden McClelland
5e580f9372 Update firmware.json 2024-03-06 22:30:18 +00:00
Aiden McClelland
d44de670cd Add socat to base dependencies (#2544) 2023-12-20 22:20:01 +00:00
J H
cb63025078 chore: Initial commit for the bump to 0.3.5.2 (#2541)
* chore: Initial commit for the bump

* wip(fix): build

* chore: Update the os welcome page to include the previous release of the 0.3.5.1
2023-12-20 14:58:24 -07:00
J H
685e865b42 fix: Docker stopping will include a timeout (#2540)
* fix sdk build script

* fix: Docker stopping will include a timeoute

So the timeout that was included in the original is not working therefore we move to a doublinig with a timeout

* fix: Adding in the missing suggestions that Aiden has poinited out

* Update install-sdk.sh

* Update install-sdk.sh

---------

Co-authored-by: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com>
Co-authored-by: Aiden McClelland <me@drbonez.dev>
2023-12-19 10:16:18 -07:00
16 changed files with 79 additions and 13 deletions

View File

@@ -48,7 +48,8 @@
<br />
## Running StartOS
There are multiple ways to get started with StartOS:
> [!WARNING]
> StartOS is in beta. It lacks features. It doesn't always work perfectly. Start9 servers are not plug and play. Using them properly requires some effort and patience. Please do not use StartOS or purchase a server if you are unable or unwilling to follow instructions and learn new concepts.
### 💰 Buy a Start9 server
This is the most convenient option. Simply [buy a server](https://store.start9.com) from Start9 and plug it in.

View File

@@ -41,6 +41,7 @@ qemu-guest-agent
rsync
samba-common-bin
smartmontools
socat
sqlite3
squashfs-tools
sudo

View File

@@ -7,7 +7,7 @@
"semver-prefix": "PureBoot-Release-",
"semver-range": "<28.3"
},
"url": "https://source.puri.sm/firmware/releases/-/raw/master/librem_mini_v2/custom/pureboot-librem_mini_v2-basic_usb_autoboot_blob_jail-Release-28.3.rom.gz",
"url": "https://source.puri.sm/firmware/releases/-/raw/98418b5b8e9edc2bd1243ad7052a062f79e2b88e/librem_mini_v2/custom/pureboot-librem_mini_v2-basic_usb_autoboot_blob_jail-Release-28.3.rom.gz",
"shasum": "5019bcf53f7493c7aa74f8ef680d18b5fc26ec156c705a841433aaa2fdef8f35"
}
]

2
core/Cargo.lock generated
View File

@@ -4924,7 +4924,7 @@ dependencies = [
[[package]]
name = "start-os"
version = "0.3.5-rev.1"
version = "0.3.5-rev.2"
dependencies = [
"aes",
"async-compression",

View File

@@ -14,7 +14,7 @@ keywords = [
name = "start-os"
readme = "README.md"
repository = "https://github.com/Start9Labs/start-os"
version = "0.3.5-rev.1"
version = "0.3.5-rev.2"
license = "MIT"
[lib]

View File

@@ -1,3 +1,4 @@
use std::io::Cursor;
use std::path::Path;
use tokio::process::Command;
@@ -23,8 +24,8 @@ pub async fn btrfs_check_repair(logicalname: impl AsRef<Path>) -> Result<Require
Command::new("btrfs")
.arg("check")
.arg("--repair")
.arg("--force")
.arg(logicalname.as_ref())
.input(Some(&mut Cursor::new(b"y\n")))
.invoke(crate::ErrorKind::DiskManagement)
.await?;

View File

@@ -29,7 +29,15 @@ impl ManagerSeed {
)
.await
{
Err(e) if e.kind == ErrorKind::NotFound => (), // Already stopped
Err(e) if e.kind == ErrorKind::NotFound => {
tracing::info!(
"Command for package {command_id} should already be stopped",
command_id = &self.manifest.id
);
} // Already stopped
Err(e) if e.kind == ErrorKind::Timeout => {
tracing::warn!("Command for package {command_id} had to be timed out, but we have dropped which means it should be killed", command_id = &self.manifest.id);
} // Already stopped In theory
a => a?,
}
Ok(())

View File

@@ -71,12 +71,14 @@ async fn do_upload(
mut url: Url,
user: &str,
pass: &str,
pkg_id: &str,
body: Body,
) -> Result<(), Error> {
url.set_path("/admin/v0/upload");
let req = httpc
.post(url)
.header(header::ACCEPT, "text/plain")
.query(&[("id", pkg_id)])
.basic_auth(user, Some(pass))
.body(body)
.build()?;
@@ -178,6 +180,7 @@ pub async fn publish(
registry.clone(),
&user,
&pass,
&pkg.id,
Body::wrap_stream(file_stream),
)
.await?;

View File

@@ -113,6 +113,7 @@ pub async fn stop_container(
signal: Option<Signal>,
) -> Result<(), Error> {
let mut cmd = Command::new(CONTAINER_TOOL);
let mut cmd = cmd.timeout(timeout);
cmd.arg("stop");
if let Some(dur) = timeout {
cmd.arg("-t").arg(dur.as_secs().to_string());

View File

@@ -15,8 +15,9 @@ mod v0_3_4_3;
mod v0_3_4_4;
mod v0_3_5;
mod v0_3_5_1;
mod v0_3_5_2;
pub type Current = v0_3_5_1::Version;
pub type Current = v0_3_5_2::Version;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone)]
#[serde(untagged)]
@@ -28,6 +29,7 @@ enum Version {
V0_3_4_4(Wrapper<v0_3_4_4::Version>),
V0_3_5(Wrapper<v0_3_5::Version>),
V0_3_5_1(Wrapper<v0_3_5_1::Version>),
V0_3_5_2(Wrapper<v0_3_5_2::Version>),
Other(emver::Version),
}
@@ -50,6 +52,7 @@ impl Version {
Version::V0_3_4_4(Wrapper(x)) => x.semver(),
Version::V0_3_5(Wrapper(x)) => x.semver(),
Version::V0_3_5_1(Wrapper(x)) => x.semver(),
Version::V0_3_5_2(Wrapper(x)) => x.semver(),
Version::Other(x) => x.clone(),
}
}
@@ -176,6 +179,7 @@ pub async fn init(db: &PatchDb, secrets: &PgPool) -> Result<(), Error> {
Version::V0_3_4_4(v) => v.0.migrate_to(&Current::new(), db.clone(), secrets).await?,
Version::V0_3_5(v) => v.0.migrate_to(&Current::new(), db.clone(), secrets).await?,
Version::V0_3_5_1(v) => v.0.migrate_to(&Current::new(), db.clone(), secrets).await?,
Version::V0_3_5_2(v) => v.0.migrate_to(&Current::new(), db.clone(), secrets).await?,
Version::Other(_) => {
return Err(Error::new(
eyre!("Cannot downgrade"),
@@ -215,6 +219,7 @@ mod tests {
Just(Version::V0_3_4_4(Wrapper(v0_3_4_4::Version::new()))),
Just(Version::V0_3_5(Wrapper(v0_3_5::Version::new()))),
Just(Version::V0_3_5_1(Wrapper(v0_3_5_1::Version::new()))),
Just(Version::V0_3_5_2(Wrapper(v0_3_5_2::Version::new()))),
em_version().prop_map(Version::Other),
]
}

View File

@@ -0,0 +1,32 @@
use async_trait::async_trait;
use emver::VersionRange;
use sqlx::PgPool;
use super::VersionT;
use super::{v0_3_4::V0_3_0_COMPAT, v0_3_5_1};
use crate::prelude::*;
const V0_3_5_2: emver::Version = emver::Version::new(0, 3, 5, 2);
#[derive(Clone, Debug)]
pub struct Version;
#[async_trait]
impl VersionT for Version {
type Previous = v0_3_5_1::Version;
fn new() -> Self {
Version
}
fn semver(&self) -> emver::Version {
V0_3_5_2
}
fn compat(&self) -> &'static VersionRange {
&V0_3_0_COMPAT
}
async fn up(&self, _db: PatchDb, _secrets: &PgPool) -> Result<(), Error> {
Ok(())
}
async fn down(&self, _db: PatchDb, _secrets: &PgPool) -> Result<(), Error> {
Ok(())
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "startos-ui",
"version": "0.3.5.1",
"version": "0.3.5.2",
"author": "Start9 Labs, Inc",
"homepage": "https://start9.com/",
"scripts": {

View File

@@ -1,6 +1,6 @@
{
"name": null,
"ack-welcome": "0.3.5.1",
"ack-welcome": "0.3.5.2",
"marketplace": {
"selected-url": "https://registry.start9.com/",
"known-hosts": {

View File

@@ -12,11 +12,11 @@
<ion-content class="ion-padding">
<h2>This Release</h2>
<h4>0.3.5.1</h4>
<h4>0.3.5.2</h4>
<p class="note-padding">
View the complete
<a
href="https://github.com/Start9Labs/start-os/releases/tag/v0.3.5.1"
href="https://github.com/Start9Labs/start-os/releases/tag/v0.3.5.2"
target="_blank"
noreferrer
>
@@ -32,6 +32,19 @@
<h2>Previous 0.3.5.x Releases</h2>
<h4>0.3.5.1</h4>
<p class="note-padding">
View the complete
<a
href="https://github.com/Start9Labs/start-os/releases/tag/v0.3.5.1"
target="_blank"
noreferrer
>
release notes
</a>
for more details.
</p>
<h4>0.3.5</h4>
<p class="note-padding">
View the complete

View File

@@ -21,9 +21,10 @@ export module Mock {
'shutting-down': false,
}
export const MarketplaceEos: RR.GetMarketplaceEosRes = {
version: '0.3.5.1',
version: '0.3.5.2',
headline: 'Our biggest release ever.',
'release-notes': {
'0.3.5.2': 'Some **Markdown** release _notes_ for 0.3.5.2',
'0.3.5.1': 'Some **Markdown** release _notes_ for 0.3.5.1',
'0.3.4.4': 'Some **Markdown** release _notes_ for 0.3.4.4',
'0.3.4.3': 'Some **Markdown** release _notes_ for 0.3.4.3',

View File

@@ -42,7 +42,7 @@ export const mockPatchData: DataModel = {
},
'server-info': {
id: 'abcdefgh',
version: '0.3.5.1',
version: '0.3.5.2',
'last-backup': new Date(new Date().valueOf() - 604800001).toISOString(),
'lan-address': 'https://adjective-noun.local',
'tor-address': 'https://myveryownspecialtoraddress.onion',