Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ version = "0.1.0"
edition = "2021"
license = "GPL-3.0-or-later"
authors = ["xscriptor"]
repository = "https://github.com/xscriptor/xpm"
repository = "https://github.com/xlnux/xpm"
description = "Modern Rust-based package manager for X Distribution"

[workspace.dependencies]
Expand Down
38 changes: 19 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
<p align="center">
<img alt="License" src="https://img.shields.io/badge/license-GPL--3.0--or--later-blue.svg">
<img alt="Rust" src="https://img.shields.io/badge/Rust-000000?logo=rust&logoColor=white">
<img alt="Version" src="https://img.shields.io/github/v/release/xscriptor/xpm?include_prereleases&label=version">
<img alt="CI" src="https://img.shields.io/github/actions/workflow/status/xscriptor/xpm/ci.yml?branch=main&label=CI&logo=github">
<img alt="Version" src="https://img.shields.io/github/v/release/xlnux/xpm?include_prereleases&label=version">
<img alt="CI" src="https://img.shields.io/github/actions/workflow/status/xlnux/xpm/ci.yml?branch=main&label=CI&logo=github">
<img alt="Status" src="https://img.shields.io/badge/Status-Active%20Development-2ea44f">
</p>

Expand Down Expand Up @@ -41,7 +41,7 @@

<h2 align="center" id="overview">Overview</h2>

<p><code>xpm</code> is a native Rust replacement for <code>pacman</code> and <code>libalpm</code>, designed for the X distribution. It uses the <code>.xp</code> package format (X Package) natively and maintains compatibility with Arch Linux <code>.pkg.tar.zst</code> packages. Packages are built with <a href="https://github.com/xscriptor/xpkg"><code>xpkg</code></a>, the companion builder tool.</p>
<p><code>xpm</code> is a native Rust replacement for <code>pacman</code> and <code>libalpm</code>, designed for the X distribution. It uses the <code>.xp</code> package format (X Package) natively and maintains compatibility with Arch Linux <code>.pkg.tar.zst</code> packages. Packages are built with <a href="https://github.com/xlnux/xpkg"><code>xpkg</code></a>, the companion builder tool.</p>

<h3 align="center" id="key-features">Key Features</h3>

Expand All @@ -61,12 +61,12 @@

<p>Install the latest published <code>xpm</code> build directly from the official repository:</p>

<pre><code class="language-bash">curl -fsSL https://raw.githubusercontent.com/xscriptor/xpm/main/install.sh | bash
<pre><code class="language-bash">curl -fsSL https://raw.githubusercontent.com/xlnux/xpm/main/install.sh | bash
</code></pre>

<p>If <code>curl</code> is not available:</p>

<pre><code class="language-bash">wget -qO- https://raw.githubusercontent.com/xscriptor/xpm/main/install.sh | bash
<pre><code class="language-bash">wget -qO- https://raw.githubusercontent.com/xlnux/xpm/main/install.sh | bash
</code></pre>

<p>Optional environment variables for the installer:</p>
Expand All @@ -78,13 +78,13 @@

<p>Example:</p>

<pre><code class="language-bash">INSTALL_PREFIX=/usr XPM_PKG_URL="https://xscriptor.github.io/x-repo/x/x86_64/xpm-0.1.0-3-x86_64.xp" \
curl -fsSL https://raw.githubusercontent.com/xscriptor/xpm/main/install.sh | bash
<pre><code class="language-bash">INSTALL_PREFIX=/usr XPM_PKG_URL="https://xlnux.github.io/x-repo/x/x86_64/xpm-0.1.0-3-x86_64.xp" \
curl -fsSL https://raw.githubusercontent.com/xlnux/xpm/main/install.sh | bash
</code></pre>

<h3 align="center" id="build-from-source">Build From Source</h3>

<pre><code class="language-bash">git clone https://github.com/xscriptor/xpm.git
<pre><code class="language-bash">git clone https://github.com/xlnux/xpm.git
cd xpm
cargo build --release
sudo cp target/release/xpm /usr/local/bin/
Expand Down Expand Up @@ -225,7 +225,7 @@ parallel_downloads = 5
[[repo]]
name = "x"
server = [
"https://xscriptor.github.io/x-repo/x/$arch",
"https://xlnux.github.io/x-repo/x/$arch",
]
</code></pre>

Expand All @@ -240,12 +240,12 @@ sudo install -d -m 755 /etc/xpm/gnupg

# Download repository public keyring
sudo curl -fsSL \
https://xscriptor.github.io/x-repo/x/x86_64/trustedkeys.gpg \
https://xlnux.github.io/x-repo/x/x86_64/trustedkeys.gpg \
-o /etc/xpm/gnupg/trustedkeys.gpg

# Optional: keep the ASCII-armored public key for auditing
sudo curl -fsSL \
https://xscriptor.github.io/x-repo/x/x86_64/signing.pub \
https://xlnux.github.io/x-repo/x/x86_64/signing.pub \
-o /etc/xpm/gnupg/signing.pub
</code></pre>

Expand All @@ -260,7 +260,7 @@ sig_level = "required"

<pre><code class="language-toml">[[repo]]
name = "x"
server = ["https://xscriptor.github.io/x-repo/x/$arch"]
server = ["https://xlnux.github.io/x-repo/x/$arch"]
sig_level = "required"
</code></pre>

Expand All @@ -272,9 +272,9 @@ sig_level = "required"
sudo install -d -m 755 /etc/xpm/gnupg

# 2) Import published keyring + public key
sudo curl -fsSL https://xscriptor.github.io/x-repo/x/x86_64/trustedkeys.gpg \
sudo curl -fsSL https://xlnux.github.io/x-repo/x/x86_64/trustedkeys.gpg \
-o /etc/xpm/gnupg/trustedkeys.gpg
sudo curl -fsSL https://xscriptor.github.io/x-repo/x/x86_64/signing.pub \
sudo curl -fsSL https://xlnux.github.io/x-repo/x/x86_64/signing.pub \
-o /etc/xpm/gnupg/signing.pub

# 3) Confirm /etc/xpm.conf points to x endpoint and required signatures
Expand All @@ -289,7 +289,7 @@ parallel_downloads = 5

[[repo]]
name = "x"
server = ["https://xscriptor.github.io/x-repo/x/$arch"]
server = ["https://xlnux.github.io/x-repo/x/$arch"]
sig_level = "required"
EOF

Expand Down Expand Up @@ -318,7 +318,7 @@ sudo xpm install xpkg
</li>
<li>Package not found:
<ul>
<li>Confirm xpm repository URL is <code>https://xscriptor.github.io/x-repo/x/$arch</code> and not the pacman endpoint under <code>/repo/x86_64</code>.</li>
<li>Confirm xpm repository URL is <code>https://xlnux.github.io/x-repo/x/$arch</code> and not the pacman endpoint under <code>/repo/x86_64</code>.</li>
</ul>
</li>
</ul>
Expand Down Expand Up @@ -404,7 +404,7 @@ sudo xpm install xpkg

<h2 align="center" id="repository-hosting">Repository Hosting</h2>

<p>The default package repository is hosted on <strong>GitHub Pages</strong> at <code>xscriptor.github.io/x-repo</code>. This will migrate to the <code>xscriptor</code> organization for consistency as the project grows. <code>xpm</code> supports any HTTP-based static file server, making future migration to a VPS transparent.</p>
<p>The default package repository is hosted on <strong>GitHub Pages</strong> at <code>xlnux.github.io/x-repo</code>. This will migrate to the <code>xlnux</code> organization for consistency as the project grows. <code>xpm</code> supports any HTTP-based static file server, making future migration to a VPS transparent.</p>

<h2 align="center" id="relationship-with-xpkg">Relationship with xpkg</h2>

Expand Down Expand Up @@ -508,8 +508,8 @@ xpm repo list
<div align="center">
<h2 id="x" align="center">X</h2>
<p>
<a href="https://dev.xscriptor.com"><img src="https://xscriptor.github.io/icons/icons/code/product-design/xsvg/ellipsis.svg" width="24" alt="X Web" /></a>
<a href="https://xscriptor.io">X Web</a>
&amp;
<a href="https://github.com/xscriptor"><img src="https://xscriptor.github.io/icons/icons/code/product-design/xsvg/github.svg" width="24" alt="X Profile" /></a>
<a href="https://github.com/xscriptor">X Profile</a>
</p>
</div>
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,5 @@ The following are in scope:

| Version | Supported |
|---------|-----------|
| Latest `main` | ✅ |
| Latest `main` | Yes |
| Older releases | Best effort |
2 changes: 1 addition & 1 deletion SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<h2 id="get-help" align="center">Get Help</h2>

<ul>
<li><b>Issues:</b> <a href="https://github.com/xscriptor/xpm/issues">github.com/xscriptor/xpm/issues</a></li>
<li><b>Issues:</b> <a href="https://github.com/xlnux/xpm/issues">github.com/xlnux/xpm/issues</a></li>
<li><b>Contributing guide:</b> <a href="./CONTRIBUTING.md">CONTRIBUTING.md</a></li>
<li><b>Security reports:</b> <a href="mailto:x@xscriptor.com">x@xscriptor.com</a> (private disclosure)</li>
</ul>
Expand Down
2 changes: 1 addition & 1 deletion crates/xpm-core/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ impl Default for XpmConfig {
options: GeneralOptions::default(),
repositories: vec![Repository {
name: "x".to_string(),
server: vec!["https://xscriptor.github.io/x-repo/x/$arch".into()],
server: vec!["https://xlnux.github.io/x-repo/x/$arch".into()],
sig_level: None,
}],
}
Expand Down
8 changes: 4 additions & 4 deletions crates/xpm-core/src/repo_db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ mod tests {
let bytes = make_gzip_tar(&[
(
"hello-1.0-1/desc",
"%NAME%\nhello\n\n%VERSION%\n1.0-1\n\n%FILENAME%\nhello-1.0-1-x86_64.xp\n\n%SHA256SUM%\nabc123\n\n%URL%\nhttps://github.com/xscriptor/hello\n\n%DESC%\nhello package\n\n%ARCH%\nx86_64\n",
"%NAME%\nhello\n\n%VERSION%\n1.0-1\n\n%FILENAME%\nhello-1.0-1-x86_64.xp\n\n%SHA256SUM%\nabc123\n\n%URL%\nhttps://github.com/xlnux/hello\n\n%DESC%\nhello package\n\n%ARCH%\nx86_64\n",
),
(
"hello-1.0-1/depends",
Expand Down Expand Up @@ -298,7 +298,7 @@ mod tests {
assert_eq!(hello.sha256sum.as_deref(), Some("abc123"));
assert_eq!(
hello.url.as_deref(),
Some("https://github.com/xscriptor/hello")
Some("https://github.com/xlnux/hello")
);
assert_eq!(hello.depends, vec!["libc>=2.39"]);
assert_eq!(hello.provides, vec!["hello-bin"]);
Expand Down Expand Up @@ -402,7 +402,7 @@ mod tests {
let bytes = make_gzip_tar(&[
(
"xpkg-0.1.0-1/desc",
"%NAME%\nxpkg\n\n%VERSION%\n0.1.0-1\n\n%FILENAME%\nxpkg-0.1.0-1-x86_64.xp\n\n%SHA256SUM%\ndeadbeefcafebabe0000000000000000deadbeefcafebabe0000000000000000\n\n%URL%\nhttps://github.com/xscriptor/xpkg\n\n%DESC%\nX distribution package builder\n\n%ARCH%\nx86_64\n",
"%NAME%\nxpkg\n\n%VERSION%\n0.1.0-1\n\n%FILENAME%\nxpkg-0.1.0-1-x86_64.xp\n\n%SHA256SUM%\ndeadbeefcafebabe0000000000000000deadbeefcafebabe0000000000000000\n\n%URL%\nhttps://github.com/xlnux/xpkg\n\n%DESC%\nX distribution package builder\n\n%ARCH%\nx86_64\n",
),
(
"xpkg-0.1.0-1/depends",
Expand All @@ -424,7 +424,7 @@ mod tests {
);
assert_eq!(
xpkg.url.as_deref(),
Some("https://github.com/xscriptor/xpkg")
Some("https://github.com/xlnux/xpkg")
);
assert_eq!(xpkg.depends, vec!["rust"]);
assert_eq!(xpkg.provides, vec!["xpkg-core"]);
Expand Down
8 changes: 4 additions & 4 deletions crates/xpm-core/src/repo_sync.rs
Original file line number Diff line number Diff line change
Expand Up @@ -528,24 +528,24 @@ mod tests {
fn package_candidates_include_server_and_github_release() {
let repo = Repository {
name: "x".to_string(),
server: vec!["https://xscriptor.github.io/x-repo/x/$arch".to_string()],
server: vec!["https://xlnux.github.io/x-repo/x/$arch".to_string()],
sig_level: None,
};
let entry = RepoEntry {
name: "xfetch".to_string(),
version: "0.1.0-1".to_string(),
filename: Some("xfetch-0.1.0-1-x86_64.xp".to_string()),
sha256sum: None,
url: Some("https://github.com/xscriptor/xfetch".to_string()),
url: Some("https://github.com/xfetch-cli/xfetch".to_string()),
..Default::default()
};

let candidates = package_download_candidates(&repo, "x86_64", &entry);
assert!(candidates
.iter()
.any(|u| u == "https://xscriptor.github.io/x-repo/x/x86_64/xfetch-0.1.0-1-x86_64.xp"));
.any(|u| u == "https://xlnux.github.io/x-repo/x/x86_64/xfetch-0.1.0-1-x86_64.xp"));
assert!(candidates
.iter()
.any(|u| u == "https://github.com/xscriptor/xfetch/releases/download/xfetch-0.1.0-1/xfetch-0.1.0-1-x86_64.xp"));
.any(|u| u == "https://github.com/xfetch-cli/xfetch/releases/download/xfetch-0.1.0-1/xfetch-0.1.0-1-x86_64.xp"));
}
}
2 changes: 1 addition & 1 deletion docs/CLI.md
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ xpm repo add <NAME> <URL>

```bash
xpm repo add chaotic-aur https://cdn-mirror.chaotic.cx/$repo/$arch
xpm repo add x-repo https://xscriptor.github.io/x-repo/$arch
xpm repo add x-repo https://xlnux.github.io/x-repo/$arch
```

#### `repo remove`
Expand Down
4 changes: 2 additions & 2 deletions docs/FETCH_TARGETS.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Repository URLs support variable substitution for dynamic path construction.
https://mirror.rackspace.com/archlinux/$repo/os/$arch

# GitHub Pages hosted repository
https://xscriptor.github.io/x-repo/$arch
https://xlnux.github.io/x-repo/$arch

# Local mirror
file:///srv/repo/$repo/$arch
Expand Down Expand Up @@ -66,7 +66,7 @@ These repositories are built into xpm and configured in `/etc/xpm.conf`.

[[repo]]
name = "x-repo"
server = ["https://xscriptor.github.io/x-repo/$arch"]
server = ["https://xlnux.github.io/x-repo/$arch"]
sig_level = "optional"

[[repo]]
Expand Down
2 changes: 1 addition & 1 deletion etc/xpm.conf.example
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ check_space = true
[[repo]]
name = "x"
server = [
"https://xscriptor.github.io/x-repo/x/$arch",
"https://xlnux.github.io/x-repo/x/$arch",
]

# Optional additional repositories can be appended below.
Expand Down
2 changes: 1 addition & 1 deletion install.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
set -euo pipefail

XPM_PKG_URL_DEFAULT="https://xscriptor.github.io/x-repo/x/x86_64/xpm-0.1.0-3-x86_64.xp"
XPM_PKG_URL_DEFAULT="https://xlnux.github.io/x-repo/x/x86_64/xpm-0.1.0-3-x86_64.xp"
XPM_PKG_URL="${XPM_PKG_URL:-$XPM_PKG_URL_DEFAULT}"
INSTALL_PREFIX="${INSTALL_PREFIX:-/usr/local}"
BIN_DEST="$INSTALL_PREFIX/bin/xpm"
Expand Down
2 changes: 1 addition & 1 deletion packaging/xpkg/XBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "xpm"
version = "0.1.0"
release = 3
description = "Modern Rust-based package manager for X Distribution"
url = "https://github.com/xscriptor/xpm"
url = "https://github.com/xlnux/xpm"
license = ["GPL-3.0-or-later"]
arch = ["x86_64"]

Expand Down
Loading