Update version to 2.90.0-rc1

Change-Id: I05f3efd6663bec418ce93fb2dca53977d3523f7d
This commit is contained in:
jade 2024-06-14 21:02:23 -07:00
parent f1a45806c7
commit 4a4f16676d
4 changed files with 178 additions and 61 deletions

View file

@ -40,23 +40,21 @@
"lix": { "lix": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"nix2container": "nix2container",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-regression": "nixpkgs-regression", "nixpkgs-regression": "nixpkgs-regression",
"pre-commit-hooks": "pre-commit-hooks" "pre-commit-hooks": "pre-commit-hooks"
}, },
"locked": { "locked": {
"lastModified": 1714955862, "lastModified": 1718419213,
"narHash": "sha256-REWlo2RYHfJkxnmZTEJu3Cd/2VM+wjjpPy7Xi4BdDTQ=", "narHash": "sha256-WY7BGnu5PnbK4O8cKKv9kvxwzZIGbIQUQLGPHFXitI0=",
"ref": "refs/tags/2.90-beta.1", "rev": "253546d5fbf8a5aa60ac8164c1b4f5794dc4e9d1",
"rev": "b6799ab0374a8e1907a48915d3187e07da41d88c", "type": "tarball",
"revCount": 15501, "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/253546d5fbf8a5aa60ac8164c1b4f5794dc4e9d1.tar.gz"
"type": "git",
"url": "https://git.lix.systems/lix-project/lix"
}, },
"original": { "original": {
"ref": "refs/tags/2.90-beta.1", "type": "tarball",
"type": "git", "url": "https://git.lix.systems/lix-project/lix/archive/2.90.0-rc1.tar.gz"
"url": "https://git.lix.systems/lix-project/lix"
} }
}, },
"naersk": { "naersk": {
@ -79,18 +77,34 @@
"type": "github" "type": "github"
} }
}, },
"nix2container": {
"flake": false,
"locked": {
"lastModified": 1712990762,
"narHash": "sha256-hO9W3w7NcnYeX8u8cleHiSpK2YJo7ecarFTUlbybl7k=",
"owner": "nlewo",
"repo": "nix2container",
"rev": "20aad300c925639d5d6cbe30013c8357ce9f2a2e",
"type": "github"
},
"original": {
"owner": "nlewo",
"repo": "nix2container",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1711481231, "lastModified": 1718379166,
"narHash": "sha256-J/fW3Xhm3WsJPNd8ksZmfMnol5aOG2qEMDPbOnNNdTQ=", "narHash": "sha256-B/Q/Pf4kD+yWk3fGh5H0fUpwxmLgEKt9KBon+bZ3d9U=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9d6ddb13cee3cc1192e4430277708c732685f38a", "rev": "93fbfcd45e966ea1cff043d48bd45d1285082770",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-23.11-small", "ref": "nixos-24.05-small",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -113,16 +127,16 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1714763106, "lastModified": 1718379166,
"narHash": "sha256-DrDHo74uTycfpAF+/qxZAMlP/Cpe04BVioJb6fdI0YY=", "narHash": "sha256-B/Q/Pf4kD+yWk3fGh5H0fUpwxmLgEKt9KBon+bZ3d9U=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e9be42459999a253a9f92559b1f5b72e1b44c13d", "rev": "93fbfcd45e966ea1cff043d48bd45d1285082770",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-24.05-small",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }

View file

@ -2,7 +2,7 @@
description = "The Lix Installer"; description = "The Lix Installer";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05-small";
fenix = { fenix = {
url = "github:nix-community/fenix"; url = "github:nix-community/fenix";
@ -15,7 +15,10 @@
}; };
lix = { lix = {
url = "git+https://git.lix.systems/lix-project/lix?ref=refs/tags/2.90-beta.1"; # See set_version.py
# BEGIN GENERATE-URLS
url = "https://git.lix.systems/lix-project/lix/archive/2.90.0-rc1.tar.gz";
# END GENERATE-URLS
# Omitting `inputs.nixpkgs.follows = "nixpkgs";` on purpose # Omitting `inputs.nixpkgs.follows = "nixpkgs";` on purpose
}; };
}; };
@ -122,6 +125,13 @@
let let
toolchain = fenixToolchain system; toolchain = fenixToolchain system;
check = import ./nix/check.nix { inherit pkgs toolchain; }; check = import ./nix/check.nix { inherit pkgs toolchain; };
inherit (pkgs) lib;
pythonEnv = pkgs.python3.withPackages (p: [
(p.toPythonModule pkgs.xonsh-unwrapped)
p.requests
]);
in in
{ {
default = pkgs.mkShell { default = pkgs.mkShell {
@ -129,10 +139,21 @@
RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library"; RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library";
nativeBuildInputs = with pkgs; [ ]; buildInputs = lib.optionals (pkgs.stdenv.isDarwin)
buildInputs = with pkgs; [ (with pkgs; [
libiconv
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.SystemConfiguration
])
++ lib.optionals (pkgs.stdenv.isLinux) (with pkgs; [
checkpolicy
semodule-utils
/* users are expected to have a system docker, too */
]);
nativeBuildInputs = with pkgs; [
zig zig
xonsh pythonEnv
awscli2 awscli2
toolchain toolchain
rust-analyzer rust-analyzer
@ -148,17 +169,7 @@
check.check-editorconfig check.check-editorconfig
check.check-semver check.check-semver
check.check-clippy check.check-clippy
] ];
++ lib.optionals (pkgs.stdenv.isDarwin) (with pkgs; [
libiconv
darwin.apple_sdk.frameworks.Security
darwin.apple_sdk.frameworks.SystemConfiguration
])
++ lib.optionals (pkgs.stdenv.isLinux) (with pkgs; [
checkpolicy
semodule-utils
/* users are expected to have a system docker, too */
]);
}; };
}); });

83
set_version.py Executable file
View file

@ -0,0 +1,83 @@
#!/usr/bin/env python
from pathlib import Path
import textwrap
import dataclasses
import requests
SYSTEMS = ['x86_64-linux', 'x86_64-darwin', 'aarch64-linux', 'aarch64-darwin']
@dataclasses.dataclass
class Package:
system: str
version: str
def url(self):
return f"https://releases.lix.systems/lix/lix-{self.version}/lix-{self.version}-{self.system}.tar.xz";
def variable_name(self):
system = self.system.replace('-', '_').upper()
return f'LIX_{system}_URL'
def make_urls_section(packages: list[Package]):
def one_item(package: Package):
return textwrap.dedent("""\
/// Default [`nix_package_url`](CommonSettings::nix_package_url) for {system}.
pub const {variable_name}: &str =
"{url}";
""").format(system=package.system, variable_name=package.variable_name(), url=package.url())
return '\n'.join(one_item(package) for package in packages)
def replace_section(old: str, section: str) -> str:
lines = []
eat = False
for line in old.splitlines():
next_eat = eat
if 'BEGIN GENERATE-URLS' in line.strip():
next_eat = True
elif 'END GENERATE-URLS' in line.strip():
lines.append(section)
eat = False
next_eat = False
if not eat:
lines.append(line)
eat = next_eat
return '\n'.join(lines)
def replace_in_file(file: Path, section: str):
new_file = replace_section(file.read_text(), section)
file.write_text(new_file)
def make_flake_url_section(version: str) -> str:
return f' url = "https://git.lix.systems/lix-project/lix/archive/{version}.tar.gz";'
def main():
import argparse
ap = argparse.ArgumentParser(description='Update the version of lix-installer')
ap.add_argument('new_version', help='The new version')
args = ap.parse_args()
settings_rs = Path('src/settings.rs')
packages = [Package(system, args.new_version) for system in SYSTEMS]
for package in packages:
resp = requests.head(package.url())
if resp.status_code != 200:
print(f'Warning: broken URL {package.url()} returns HTTP {resp.status_code}')
replace_in_file(settings_rs, make_urls_section(packages))
flake_nix = Path('flake.nix')
replace_in_file(flake_nix, make_flake_url_section(args.new_version))
if __name__ == '__main__':
main()

View file

@ -11,21 +11,25 @@ use url::Url;
pub const SCRATCH_DIR: &str = "/nix/temp-install-dir"; pub const SCRATCH_DIR: &str = "/nix/temp-install-dir";
/// Default [`nix_package_url`](CommonSettings::nix_package_url) for Linux x86_64 // See set_version.py
pub const NIX_X64_64_LINUX_URL: &str = // BEGIN GENERATE-URLS
"https://releases.lix.systems/lix/lix-2.90-beta.1/nix-2.90.0-beta.1-x86_64-linux.tar.xz"; /// Default [`nix_package_url`](CommonSettings::nix_package_url) for x86_64-linux.
/// Default [`nix_package_url`](CommonSettings::nix_package_url) for Linux x86 (32 bit) pub const LIX_X86_64_LINUX_URL: &str =
pub const NIX_I686_LINUX_URL: &str = "https://releases.lix.systems/lix/lix-2.90.0-rc1/lix-2.90.0-rc1-x86_64-linux.tar.xz";
"https://releases.lix.systems/lix/lix-2.90-beta.1/nix-2.90.0-beta.1-i686-linux.tar.xz";
/// Default [`nix_package_url`](CommonSettings::nix_package_url) for Linux aarch64 /// Default [`nix_package_url`](CommonSettings::nix_package_url) for x86_64-darwin.
pub const NIX_AARCH64_LINUX_URL: &str = pub const LIX_X86_64_DARWIN_URL: &str =
"https://releases.lix.systems/lix/lix-2.90-beta.1/nix-2.90.0-beta.1-aarch64-linux.tar.xz"; "https://releases.lix.systems/lix/lix-2.90.0-rc1/lix-2.90.0-rc1-x86_64-darwin.tar.xz";
/// Default [`nix_package_url`](CommonSettings::nix_package_url) for Darwin x86_64
pub const NIX_X64_64_DARWIN_URL: &str = /// Default [`nix_package_url`](CommonSettings::nix_package_url) for aarch64-linux.
"https://releases.lix.systems/lix/lix-2.90-beta.1/nix-2.90.0-beta.1-x86_64-darwin.tar.xz"; pub const LIX_AARCH64_LINUX_URL: &str =
/// Default [`nix_package_url`](CommonSettings::nix_package_url) for Darwin aarch64 "https://releases.lix.systems/lix/lix-2.90.0-rc1/lix-2.90.0-rc1-aarch64-linux.tar.xz";
pub const NIX_AARCH64_DARWIN_URL: &str =
"https://releases.lix.systems/lix/lix-2.90-beta.1/nix-2.90.0-beta.1-aarch64-darwin.tar.xz"; /// Default [`nix_package_url`](CommonSettings::nix_package_url) for aarch64-darwin.
pub const LIX_AARCH64_DARWIN_URL: &str =
"https://releases.lix.systems/lix/lix-2.90.0-rc1/lix-2.90.0-rc1-aarch64-darwin.tar.xz";
// END GENERATE-URLS
#[derive(Debug, serde::Deserialize, serde::Serialize, Clone, Copy, PartialEq, Eq)] #[derive(Debug, serde::Deserialize, serde::Serialize, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "cli", derive(clap::ValueEnum))] #[cfg_attr(feature = "cli", derive(clap::ValueEnum))]
@ -150,31 +154,34 @@ pub struct CommonSettings {
#[cfg_attr( #[cfg_attr(
all(target_os = "macos", target_arch = "x86_64", feature = "cli"), all(target_os = "macos", target_arch = "x86_64", feature = "cli"),
clap( clap(
default_value = NIX_X64_64_DARWIN_URL, default_value = LIX_X86_64_DARWIN_URL,
) )
)] )]
#[cfg_attr( #[cfg_attr(
all(target_os = "macos", target_arch = "aarch64", feature = "cli"), all(target_os = "macos", target_arch = "aarch64", feature = "cli"),
clap( clap(
default_value = NIX_AARCH64_DARWIN_URL, default_value = LIX_AARCH64_DARWIN_URL,
) )
)] )]
#[cfg_attr( #[cfg_attr(
all(target_os = "linux", target_arch = "x86_64", feature = "cli"), all(target_os = "linux", target_arch = "x86_64", feature = "cli"),
clap( clap(
default_value = NIX_X64_64_LINUX_URL, default_value = LIX_X86_64_LINUX_URL,
) )
)] )]
// FIXME(i686): release i686 binaries again
/*
#[cfg_attr( #[cfg_attr(
all(target_os = "linux", target_arch = "x86", feature = "cli"), all(target_os = "linux", target_arch = "x86", feature = "cli"),
clap( clap(
default_value = NIX_I686_LINUX_URL, default_value = LIX_I686_LINUX_URL,
) )
)] )]
*/
#[cfg_attr( #[cfg_attr(
all(target_os = "linux", target_arch = "aarch64", feature = "cli"), all(target_os = "linux", target_arch = "aarch64", feature = "cli"),
clap( clap(
default_value = NIX_AARCH64_LINUX_URL, default_value = LIX_AARCH64_LINUX_URL,
) )
)] )]
pub nix_package_url: UrlOrPath, pub nix_package_url: UrlOrPath,
@ -216,7 +223,6 @@ pub struct CommonSettings {
) )
)] )]
pub enable_flakes: bool, pub enable_flakes: bool,
} }
impl CommonSettings { impl CommonSettings {
@ -231,21 +237,24 @@ impl CommonSettings {
match (Architecture::host(), OperatingSystem::host()) { match (Architecture::host(), OperatingSystem::host()) {
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
(Architecture::X86_64, OperatingSystem::Linux) => { (Architecture::X86_64, OperatingSystem::Linux) => {
url = NIX_X64_64_LINUX_URL; url = LIX_X86_64_LINUX_URL;
nix_build_user_prefix = "nixbld"; nix_build_user_prefix = "nixbld";
nix_build_user_id_base = 30000; nix_build_user_id_base = 30000;
nix_build_user_count = 32; nix_build_user_count = 32;
}, },
// FIXME(i686): support i686-linux again
/*
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
(Architecture::X86_32(_), OperatingSystem::Linux) => { (Architecture::X86_32(_), OperatingSystem::Linux) => {
url = NIX_I686_LINUX_URL; url = LIX_I686_LINUX_URL;
nix_build_user_prefix = "nixbld"; nix_build_user_prefix = "nixbld";
nix_build_user_id_base = 30000; nix_build_user_id_base = 30000;
nix_build_user_count = 32; nix_build_user_count = 32;
}, },
*/
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
(Architecture::Aarch64(_), OperatingSystem::Linux) => { (Architecture::Aarch64(_), OperatingSystem::Linux) => {
url = NIX_AARCH64_LINUX_URL; url = LIX_AARCH64_LINUX_URL;
nix_build_user_prefix = "nixbld"; nix_build_user_prefix = "nixbld";
nix_build_user_id_base = 30000; nix_build_user_id_base = 30000;
nix_build_user_count = 32; nix_build_user_count = 32;
@ -253,7 +262,7 @@ impl CommonSettings {
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
(Architecture::X86_64, OperatingSystem::MacOSX { .. }) (Architecture::X86_64, OperatingSystem::MacOSX { .. })
| (Architecture::X86_64, OperatingSystem::Darwin) => { | (Architecture::X86_64, OperatingSystem::Darwin) => {
url = NIX_X64_64_DARWIN_URL; url = LIX_X86_64_DARWIN_URL;
nix_build_user_prefix = "_nixbld"; nix_build_user_prefix = "_nixbld";
nix_build_user_id_base = 300; nix_build_user_id_base = 300;
nix_build_user_count = 32; nix_build_user_count = 32;
@ -261,7 +270,7 @@ impl CommonSettings {
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
(Architecture::Aarch64(_), OperatingSystem::MacOSX { .. }) (Architecture::Aarch64(_), OperatingSystem::MacOSX { .. })
| (Architecture::Aarch64(_), OperatingSystem::Darwin) => { | (Architecture::Aarch64(_), OperatingSystem::Darwin) => {
url = NIX_AARCH64_DARWIN_URL; url = LIX_AARCH64_DARWIN_URL;
nix_build_user_prefix = "_nixbld"; nix_build_user_prefix = "_nixbld";
nix_build_user_id_base = 300; nix_build_user_id_base = 300;
nix_build_user_count = 32; nix_build_user_count = 32;