GithubHelp home page GithubHelp logo

makedeb / mist Goto Github PK

View Code? Open in Web Editor NEW
67.0 2.0 7.0 1.1 MB

The official command-line interface for the makedeb Package Repository

License: GNU General Public License v3.0

Rust 90.15% Jsonnet 1.12% Shell 8.43% Just 0.31%
hacktoberfest makedeb mpr

mist's Introduction

makedeb

makedeb is a packaging tool for Debian and Ubuntu based systems that aims to be simple and easy to use, whilst still remaining just as powerful as standard Debian tooling.

Installing

The recommended way to install makedeb is through the interactive installer. This will set up the needed repositories on your system, allow you to choose which makedeb release you want, as well as provide options for extra utilities for use with makedeb.

You can use the installer by running the following:

# If you're running in a noninteractive environment (such as in CI or on a server), change `-ci` to `-c`.
bash -ci "$(wget -qO - 'https://shlink.makedeb.org/install')"

If you'd like to install makedeb in a different manner (such as if you want to install from the MPR or with Docker), you can find instructions for such in makedeb Docs.

Building

See BUILDING.md.

Contributing

See CONTRIBUTING.md.

Usage

Online documentation can be found in the aformentioned documentation. Help with available usage can also be found after installation with makedeb --help.

Support

See Obtaining Support in the makedeb Docs.

Donate

Thank you to the following companies who have generously given resources to help the makedeb project:

Inedo: For their universal package manager and Docker registry tool, ProGet. ProGet is used in the makedeb project to manage both Debian packages and Docker images. In addition, ProGet also supports private repositories and registries, as well as numerous package formats, including RPM, NuGet, and npm.

If you or your own organization finds makedeb to be useful, please consider donating.

mist's People

Contributors

cobalt2727 avatar hwittenborn avatar renovate[bot] avatar tonky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

mist's Issues

move mist in the makedeb repo

The user just setup one repo, in order to use makedeb/mist.
Maybe also move other helpers in this repo.
It makes sense to move them together. The prebuild repo can have random stuff.

Test against Rust beta in CI

It looks like we're getting some deployment errors from some new issues in clippy from the latest rust release. We should test against the beta releases of Rust so we can catch this issue early in the future.

Add `-y`/`--yes` flags to mist

Apt has -y and --yes flags that automatically answer yes to every question (see apt-get (8)).
This would be useful for using mist in scripts.

Unable to install from MPR

I was unable to install mist from the MPR manually with makedeb. Here is the output:

error: failed to run custom build command for `rust-apt v0.3.0`

Caused by:
  process didn't exit successfully: `/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-0f28b79758bb7da8/build-script-build` (exit status: 1)
  --- stdout
  cargo:CXXBRIDGE_PREFIX=rust-apt
  cargo:CXXBRIDGE_DIR0=/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/include
  cargo:CXXBRIDGE_DIR1=/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/crate
  TARGET = Some("x86_64-unknown-linux-gnu")
  OPT_LEVEL = Some("3")
  HOST = Some("x86_64-unknown-linux-gnu")
  CXX_x86_64-unknown-linux-gnu = None
  CXX_x86_64_unknown_linux_gnu = None
  HOST_CXX = None
  CXX = None
  CXXFLAGS_x86_64-unknown-linux-gnu = None
  CXXFLAGS_x86_64_unknown_linux_gnu = None
  HOST_CXXFLAGS = None
  CXXFLAGS = Some("-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS")
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  CXX_x86_64-unknown-linux-gnu = None
  CXX_x86_64_unknown_linux_gnu = None
  HOST_CXX = None
  CXX = None
  CXXFLAGS_x86_64-unknown-linux-gnu = None
  CXXFLAGS_x86_64_unknown_linux_gnu = None
  HOST_CXXFLAGS = None
  CXXFLAGS = Some("-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS")
  CRATE_CC_NO_DEFAULTS = None
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-march=x86-64" "-mtune=generic" "-O2" "-pipe" "-fno-plt" "-fexceptions" "-Wp,-D_FORTIFY_SOURCE=2" "-Wformat" "-Werror=format-security" "-fstack-clash-protection" "-fcf-protection" "-Wp,-D_GLIBCXX_ASSERTIONS" "-I" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/include" "-I" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/crate" "-std=c++14" "-o" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/sources/rust-apt/src/raw.rs.o" "-c" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/sources/rust-apt/src/raw.rs.cc"
  cargo:warning=In file included from /home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/sources/rust-apt/src/raw.rs.cc:1:
  cargo:warning=/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/crate/rust-apt/apt-pkg-c/apt-pkg.h:3:10: fatal error: apt-pkg/cachefile.h: No such file or directory
  cargo:warning=    3 | #include <apt-pkg/cachefile.h>
  cargo:warning=      |          ^~~~~~~~~~~~~~~~~~~~~
  cargo:warning=compilation terminated.
  exit status: 1
  running: "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-march=x86-64" "-mtune=generic" "-O2" "-pipe" "-fno-plt" "-fexceptions" "-Wp,-D_FORTIFY_SOURCE=2" "-Wformat" "-Werror=format-security" "-fstack-clash-protection" "-fcf-protection" "-Wp,-D_GLIBCXX_ASSERTIONS" "-I" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/include" "-I" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/crate" "-std=c++14" "-o" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/apt-pkg-c/apt-pkg.o" "-c" "apt-pkg-c/apt-pkg.cc"
  cargo:warning=apt-pkg-c/apt-pkg.cc:1:10: fatal error: apt-pkg/acquire-item.h: No such file or directory
  cargo:warning=    1 | #include <apt-pkg/acquire-item.h>
  cargo:warning=      |          ^~~~~~~~~~~~~~~~~~~~~~~~
  cargo:warning=compilation terminated.
  exit status: 1

  --- stderr

  CXX include path:
    /home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/include
    /home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/crate


  error occurred: Command "c++" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-march=x86-64" "-mtune=generic" "-O2" "-pipe" "-fno-plt" "-fexceptions" "-Wp,-D_FORTIFY_SOURCE=2" "-Wformat" "-Werror=format-security" "-fstack-clash-protection" "-fcf-protection" "-Wp,-D_GLIBCXX_ASSERTIONS" "-I" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/include" "-I" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/crate" "-std=c++14" "-o" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/sources/rust-apt/src/raw.rs.o" "-c" "/home/emma/mist/src/mist-0.8.0/target/release/build/rust-apt-545f23bdf7bea3d0/out/cxxbridge/sources/rust-apt/src/raw.rs.cc" with args "c++" did not execute successfully (status code exit status: 1).

`-git` packages aren't updated correctly

From Matrix:

@hiddeninthesand

<@hunter:hunterwittenborn.com> How are you thinking it should go when mist update is ran?

i'm thinking it should keep track of the commit that the package is built on and check for new commits when mist update is ran

@hiddeninthesand

<@hunter:hunterwittenborn.com> Oh because the version isn't the same because of pkgver() running, that's why it's updating always. I didn't even realize git packages always tried to update, what package it is happening on for you?

hydroxide-git

Cannot run mist on ARM64

Currently the prebuilt mpr doesn't support arm64 so I can't install from there, and I've had issues building it from source with makedeb, building from binary installs but won't run, giving the following error.

-bash: /usr/bin/mist: cannot execute binary file: Exec format error

Q: Latest non-LTS Ubuntu not supported?

Mist docs:

Installing Mist
From the Prebuilt-MPR (Recommended)
First, set up the Prebuilt-MPR on your system

ok, following link:

The Prebuilt-MPR currently supports and publishes packages for the following distributions:
Ubuntu 20.04
Ubuntu 22.04
Debian 11

I'd expect your target audience (people wanting more [fresh] packages) would mostly use latest OS version. Not supporting latest non-LTS cuts them off.

Just to test, I tried to add repo on 23.04 anyway, here's unsurprising apt update result 😄 :

W: Skipping acquire of configured file 'lunar/binary-amd64/Packages' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/i18n/Translation-en_US' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/i18n/Translation-en' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/i18n/Translation-ru' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/dep11/Components-amd64.yml' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/dep11/icons-48x48.tar' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/dep11/icons-64x64.tar' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/dep11/[email protected]' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/dep11/icons-128x128.tar' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/Contents-amd64' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)
W: Skipping acquire of configured file 'lunar/cnf/Commands-amd64' as repository 'https://proget.makedeb.org prebuilt-mpr InRelease' doesn't have the component 'lunar' (component misspelt in sources.list?)

Rename project

The goal of this project is to eventually be a fully-fleshed MPR helper, with support for things like installing and updating packages (from both APT repos and the MPR). Likewise, I'd like to rename this project to something new, as doing something like sudo mpr install build-essential doesn't make much sense, considering that it's installing an APT package.

If anyone has any project name ideas, feel free to leave them below.

command: mist list error: thread 'main' panicked at src/style.rs:71:53:

thread 'main' panicked at src/style.rs:71:53:
called Option::unwrap() on a None value
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Operating System: Debian GNU/Linux 12
KDE Plasma Version: 5.27.5
KDE Frameworks Version: 5.103.0
Qt Version: 5.15.8
Kernel Version: 6.6.4-x64v3-xanmod1 (64-bit)
Graphics Platform: X11
Processors: 16 × AMD Ryzen 7 5700X 8-Core Processor
Memory: 31.3 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2
Manufacturer: BIOSTAR Group
Product Name: B550MX/E PRO

dpkg-deb Version parse error

On running mist update, I get the following-

Err: Failed to process MPR package 'libx52'. The package won't be available to install from the MPR.
dpkg-deb: error: parsing file 'libx52/DEBIAN/control' near line 2 package 'libx52':
 'Version' field value '0.2.3_4_gb45dc59-1': invalid character in version number
Err: Failed to process MPR package 'bashtop-git'. The package won't be available to install from the MPR.
dpkg-deb: error: parsing file 'bashtop-git/DEBIAN/control' near line 2 package 'bashtop-git':
 'Version' field value 'r313.4bf71e6-1': version number does not start with digit

The error comes from

mist/src/update.rs

Lines 221 to 224 in 1cba924

message::error(&format!(
"Failed to process MPR package '{}'. The package won't be available to install from the MPR.\n",
pkg.pkgname.bold().green()
));

I have modified the source code to also print the stderr of the failed command to get the full error messages printed above.

message::error(&format!(
    "Failed to process MPR package '{}'. The package won't be available to install from the MPR.\n{}",
    pkg.pkgname.bold().green(),
    String::from_utf8_lossy(&cmd.stderr)
));

System info:
Kubuntu 22.10
dpkg-deb 1.21.9

Mist doesn't show MPR packages

OS: Debian Sid
Mist version: latest git

Searching for an MPR package with Mist doesn't show any results, unless the package is also in apt, and returns an exit code of 0 (searching for a nonexistent package returns an exit code of 69).
mist list also doesn't show them.

Also, mist update gives these errors:

Err: Failed to process MPR package 'libx52'. The package won't be available to install from the MPR.
Err: Failed to process MPR package 'bashtop-git'. The package won't be available to install from the MPR.

Add Sentry error reporting

The current plan is to add Sentry reporting to builds of Mist so that errors can be automatically diagnosed when they happen. The current plan is that any panics will be automatically captured, and that's all (though it may be expanded upon in the future).

On first startup, we should prompt the user if they'd like to send crash report data. This needs to be opt-in, so default to sending nothing. The result will be written to a user-specific config for Mist, so we need to work on making that config file first.

Mist Missing Directory Error

On a fresh install, mist list threw a missing directory error (mist list output was too long for my terminal buffer so I don't have the exact text anymore).

Resolved by running mist update

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

  • Update all dependencies (actions/checkout, bat, chrono, clap, dirs, edit, flate2, makedeb-srcinfo, quit, regex, reqwest, serde, serde_json, tempfile, which)

Detected dependencies

cargo
Cargo.toml
  • bat 0.21.0
  • chrono 0.4.19
  • clap 3.2.16
  • dirs 4.0.0
  • edit 0.1.4
  • exitcode 1.1.2
  • flate2 1.0.24
  • lazy_static 1.4.0
  • makedeb-srcinfo 0.8.0
  • quit 1.1.4
  • regex 1.6.0
  • reqwest 0.11.11
  • serde 1.0.142
  • serde_json 1.0.83
  • tempfile 3.3.0
  • termsize 0.1.6
  • users 0.11.0
  • which 4.3.0
github-actions
.github/workflows/pr.yml
  • actions/checkout v3

  • Check this box to trigger a request for Renovate to run again on this repository

called `Option::unwrap()` on a `None` value', src/cache.rs:268:43

After a fresh install of mist, I am getting the following panic:

❯ mist search just
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/cache.rs:268:43
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
❯

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.