Pacstall

Latest version: v0.1.15

Safety actively analyzes 622904 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

1.5.1

This update is a hotfix update for bugs introduced in 1.5 Twilight. Also it is recommended to rerun the install script as opposed to running `pacstall -U` for this release. Other than that, everything is the same from [1.5](https://github.com/pacstall/pacstall/releases/tag/1.5)

Bug fixes
* Fix for printing help while exiting
* Fix for `/bin/ls` errors
* Fix for `STGDIR` problems in shared PCs
* Tempfix for autocompletion

[Developers, Developers, Developers...](https://www.youtube.com/watch?v=ug4c2mqlE_0)
Changes
* The `-U` flag now will now pull the `update.sh` script from github before running it. This will help for backwards compatibility in future releases

1.5

This update is a QoL update focusing on bug fixes and adding requested features. Also it is recommended to rerun the install script as opposed to running `pacstall -U` because of big code changes that are best updated to by reinstalling

Users
In short
Features
---
Additions
* Multi-repo support. You can add a github repo, lets say, by running `pacstall -A https://github.com/user/repo`
* Deb support has been added
* If `aria2` is installed, pacstall will download a package in multiple chunks
* `-S` flag is overhauled with new multi-repo support

Changes
* The `-C` flag is removed in favor of the `-A` flag
* Upgrading packages now takes into account the repo of origin

Bugs
---
Bug fixes
* Fix for not printing help if no flags are given
* Fix for `ls` errors on install
* Many others, didn't count :p
Bugs
* Bulk install doesn't work, planned for 1.6

[Developers, Developers, Developers...](https://www.youtube.com/watch?v=ug4c2mqlE_0)
In short
Additions
---
* Everything from Users
* Global dir constants (you can set where you want packages to be downloaded, scripts to be located, logging location, etc)
* Deb support has been added (see [here](https://github.com/NarutoXY/pacstall-programs/blob/master/packages/brave-browser-beta/brave-browser-beta.pacscript) for an example)

Changes
---
* `change-repo.sh` -> `add-repo.sh`
* `removescript` variable is deprecated in favor of just the function
* The `-S` flag shows which repo a package is from (following multi-repo support)
* The `-S` flag also includes repo hyperlinks if the terminal supports them (iTerm2, terminology, VTE-based, etc)
* The metadata logger will log ` _remoterepo` and `_remotebranch` for use in updating

1.4

Users
In short
Features
---
Additions
* You can run `pacstall -T <pkg>` to view a tree of the package files
* `pacstall -Qi` will output whether a package was installed as a dependency of another or if it was expicitly installed
* Update branches/repo are now persistent meaning that if you update to a different branch/repo, you will continue updating to that same branch when you run `pacstall -U`

Changes
* Pacstall now runs without `sudo` (it still uses root privileges internally)

Bugs
---
Bug Fixes
* Many, didn't count :p

Known bugs
* Pacstall isn't printing help if no flags are given [27](https://github.com/pacstall/pacstall/issues/27)
* Multiple package inputs does not work

[Developers, Developers, Developers...](https://www.youtube.com/watch?v=ug4c2mqlE_0)
In short
Additions
---
* Everything from Users
* Pacdeps can be used recursivly. An example would be that package A depends on B which depends on C.
Changes
---
* The metadata logger will record variables with an underscore (_) in front to avoid confusion with pacscript variables

1.3

Hello everyone, today is the day we release Pacstall v1.3 "Amaranth" (*aməranθ*), the word "Amaranth" derives from Greek ἀμάραντος (amárantos), "unfading", with the Greek word for "flower", ἄνθος (ánthos), factoring into the word's development as amaranth, **the unfading flower** (source: Wikipedia).

We hope you like this release of Pacstall.
Users
In short
Features
---
Additions
* You can edit a `pacscript` during install.
* Added `bash`/`zsh`/`fish` shell tab completion. *You need to run `sudo pacstall -U` twice in order to get the `bash`/`zsh`/`fish` shell completions*
* Pacstall scripts can install other pacstall scripts as dependencies
Changes
* `-S` flag uses [ripgrep](https://github.com/BurntSushi/ripgrep) (if installed on the system), then grep to search for packages for
better scriptability
* `-U <githubusername> <branch>` can be used to update pacstall to a specific repo and
branch. Will still default to `pacstall master` if no arguments are given

Bugs
---
Bug Fixes
* Fixed issue with `-Qi` that didn't show dependencies and build dependencies
* Added guards to rm commands that would clutter output otherwise
* Fixed quote issues
* Performance fixes, Code Quality upgrades and other misc changes/bugfixes.

Known bugs
* Pacstall isn't printing help if no flags are given [27](https://github.com/pacstall/pacstall/issues/27)

In detail
Features
---
Editing scripts
The first thing pacstall will try to do is edit your script with `$PACSTALL_EDITOR`, then it will try to edit with `$VISUAL`, then `$EDITOR`, and then fall back to `sensible-editor` (the default system editor)

-U
You can (after updating), run:

sudo pacstall -U <githubusername> <branch>

This will update your script to that repo/branch. An example would be `sudo pacstall -U wizard-28 master` to update to `wizard-28`'s fork. If you leave out `branch`, it will default to `master`, and if you just run `sudo pacstall -U`, it will default to `pacstall` and `master`

Known bugs
---
Pacstall isn't printing help if no flags are given
Basically what the title says, this is a low severity bug, we hoping to fix it by next release
To mitigate this temporarily you can run:

pacstall -h

for more information click the this issue link [27](https://github.com/pacstall/pacstall/issues/27)

[Developers, Developers, Developers...](https://www.youtube.com/watch?v=ug4c2mqlE_0)
In short
Additions
---
* A `pacdeps=()` array was added which enables the pacscripts to add other pacscripts as dependency.
* A `pkgver()` function was added which can dynamically modify the version of your pacscripts.
Changes
---
* There were some code refactors.
* Major Code Quality uplift so minor changes thought the whole repo.
* An automated labeling workflow was added.

In detail
`pacdeps=()`
In your pacscripts, you can add the array `pacdeps=()`, and fill it in with pacstall packages to install those as dependencies.
`pkgver()`
First you need to remember that sourcing a file goes line by line, so if you have a variable referencing another variable that hasn't been sourced yet, it won't work.
bash
pkgver () {
git ls-remote <url> <branch> | cut -f1 Returns the latest commit hash from remote
}
version="$(pkgver)"

This function is similar to the PKGBUILD function of the same name, but instead this doesn't execute after the git repo is cloned, so it enables update capabilities for `-git` pacscripts, which the AUR can't.
Look [here](https://github.com/pacstall/pacstall-programs/blob/master/packages/awesome-git/awesome-git.pacscript) for an example
Labeler
Title your PR/issues like this from now on

[<label1>] [<label2>].... <Title>

Of course you can skip `[<label2>]` and others if they don't apply to your PR/issue
This will allow the github action to automatically assign the right people, and label your PR/issue.

1.2

This release comes with loads of improvements, thanks to awesome people making PR’s and raising issues. I know some may not care, but I am truly grateful for all you have done so far.

What’s new
- Many variables are fixed so splitting variables won’t happen
- `optdepends` is now an array
- `break` can be left out
- post install and removal scripts added
- `fzf` for searching
- added `replace` variable
- `hash` command used to forget about binary locations after removal
- `-P` flag to do unattended installation
- repos no longer have to be GitHub (can still be)
- caching system to install old versions


How to use new features

optdepends
In your pacscript, create an array called `optdepends`. It should look like this:
bash
optdepends=(“optdependencyname: description”
“otherdepname: description”)


post install and removal scripts
To add a post install script, add something like this to your pacscript:
bash
postinst() {
your code here
}

To use a removal script (not to be confused with removing a package, removalscripts are used to clean up, if you choose), add these to your script:
bash
removalscript=“yes”
<rest of variables>
removalscript() {
removal script here
}

fzf
Run `pacstall -S pkg` to get a fuzzy search of package names

Unattended installation
You can accept the defaults when installing a package (pretty sane defaults), by running this:
`sudo pacstall -P -I pkg` or `sudo pacstall -P -R pkg`. Anything that asks for input will be run with the default answer.

New repo format
In the file `/usr/share/pacstall/repo/pacstallrepo.txt`, use this instead of `username/repo`:
`https://raw.githubusercontent.com/Henryws/pacstall-programs/master`

Caching system
Package scripts that successfully install will be put in `/var/cache/pacstall/pkgname/version/pkgname.pacscript`

Links

Releases

Has known vulnerabilities

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.