Coder Social home page Coder Social logo

pacstall / pacstall-programs Goto Github PK

View Code? Open in Web Editor NEW
175.0 6.0 135.0 19.64 MB

Pacstall's official program repository

Home Page: https://pacstall.dev/packages

License: MIT License

Shell 100.00%
pacstall-programs pacstall ubuntu hacktoberfest aur bash pacscript debian scripts pacbuild

pacstall-programs's Introduction

Pacstall Programs

This is the default repository of pacscripts which pacstall uses to install software. You can fork this repository and add make your own package repository as long as it follows the basic structure:

package-repository/
├── packages/
│   ├── example-package1/
│   │   ├── example-package1.pacscript
│   │   └── .SRCINFO
│   └── example-package2/
│       ├── example-package2.pacscript
│       └── .SRCINFO
├── scripts/
│   ├── srcinfo.sh
│   ├── custom-script1.sh
│   └── custom-script2.sh
├── distrolist
├── packagelist
└── srclist

You can then use the pacstall -A command to add a repository to your pacstallrepo list. Consult the manpage (run man 8 pacstall and man 5 pacstall) for more info.

How to setup the environment for pacscript development

If you need help making a pacscript, visit our wiki.

This repository maintains a certain standard of commits. To ensure that your commits are up to the standard, we use pre-commit hooks.

Here are the development dependencies that you need to install as a developer:

Dependency Purpose How to install
pre-commit runs a series of formatting checks on git commits sudo pip install pre-commit
shellcheck checks for formatting and scripting issues pacstall -I shellcheck-bin
shfmt attempts to correct certain formatting issues pacstall -I shfmt-bin
editor-config ensures proper tabs when using a file editor Install the plugin for your preferred editor

After the dependencies are installed simply clone this repository, and use pre-commit install to install the pre-configured hooks to your cloned repository.

Now, whenever you try to commit a patch all the configured hooks will run and block/fix your code so that it adheres to or standards.

In case for some reason (false positives etc), you want to skip the hooks commit using git commit --no-verify

Additionally, we have created the following tools to improve package maintenance:

Maintainence Tool Purpose How to install
pacup keep packages up to date pacstall -I pacup (stable) or pacstall -I pacup-git (develop)
quality-assurance.sh test PRs before being merged pacstall -Qa (built-in, pacstall)
srcinfo.sh generate and read repo data ./scripts/srcinfo.sh (built-in, pacstall-programs)

License

Pacstall programs are licensed under the MIT License.

Note

MIT license does not apply to the packages built by Pacstall, merely to the files in this repository (the pacscripts, GitHub Action workflows, documentation, etc.). It also might not apply to patches included in pacscripts, which may be derivative works of the packages to which they apply. The aforementioned artifacts are all covered by the licenses of the respective packages.

Stats

Repobeats analytics image

pacstall-programs's People

Contributors

anifyuli avatar arrowsome avatar cat-master21 avatar d-brox avatar dependabot[bot] avatar diegiwg avatar echometerain avatar edward-riley avatar elsie19 avatar erenfro avatar fang64 avatar gianlucahex avatar jonboylecoding avatar korkmatik avatar lfromanini avatar louis77 avatar malmeloo avatar mar0xy avatar mirenradia avatar obsidianpresidium avatar oklopfer avatar saenai255 avatar soumyadghosh avatar ua16 avatar vbrabandt2005 avatar vigress8 avatar volitank avatar wizard-28 avatar xdavius avatar zahrun 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  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  avatar  avatar  avatar  avatar

pacstall-programs's Issues

Clear up confusion related to `-deb` pacscripts in docs

I thought that I was supposed to do according to the docs

STOWDIR="/usr/src/pacstall" # Package install directory, symlinked at the end of install

That's not required for -deb packages, neither is pkgver nor any of the functions (prepare, build, install). We should probably clear that up in the docs.

Originally posted by @wizard-28 in #625 (comment)

Help: pacscript fails

Describe the bug
Probably not a bug but a mistake on my side. The installation process fails before even running build and possibly prepare.

To Reproduce
Steps to reproduce the behavior:

  1. Try to install the following pacscript
name="nodejs"
pkgname="nodejs" # if this is a -git, -bin, etc. package, this would be the package name without extension
breaks="${pkgname} ${pkgname}-git ${pkgname}-bin ${pkgname}-app ${pkgname}-deb"
replace="${pkgname} node"
gives="${pkgname} node"
build_depends="python3 g++ make"
description="Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine."
maintainer="Paul Cosma <[email protected]>"

pkgver() {
 curl -Ls https://nodejs.org/en/download | grep -o "Latest LTS Version: <strong>.*</strong>" | grep -o --color=never "[1-9][0-9]*\.[0-9]*\.[0-9]*"
}

version="$(pkgver)"
url="https://github.com/nodejs/node/archive/v$version/nodejs-$version.tar.gz"

prepare() {
  true
}

build() {
  cd "node-$version"
  ./configure
  make -j"$(nproc)"
}

install() {
  sudo make install DESTDIR="${STOWDIR}/${name}"
}

Expected behavior
build function should be invoked

Screenshots
image

Desktop (please complete the following information):

  • OS: Ubuntu minimal fresh install
  • Version 21.10

Additional context
I love the idea of AUR on Ubuntu so I'm trying to learn how to create packages. Please take my code with a grain of salt.

tenacity-git fails to build

Describe the bug
tenacity-git fails to build with:

CMake Error at /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:165 (message):
  Could NOT find mp3lame (missing: mp3lame_LIBRARY mp3lame_INCLUDE_DIR)
Call Stack (most recent call first):
  /usr/share/cmake-3.18/Modules/FindPackageHandleStandardArgs.cmake:458 (_FPHSA_FAILURE_MESSAGE)
  cmake-modules/Findmp3lame.cmake:55 (find_package_handle_standard_args)
  CMakeLists.txt:734 (find_package)


-- Configuring incomplete, errors occurred!
See also "/tmp/pacstall/tenacity/build/CMakeFiles/CMakeOutput.log".
See also "/tmp/pacstall/tenacity/build/CMakeFiles/CMakeError.log".
make: *** No targets specified and no makefile found.  Stop.
[!] ERROR: Could not properly build tenacity-git

To Reproduce
Steps to reproduce the behavior:

  1. pacstall -I tenacity-git

Expected behavior
tenacity-git builds

Screenshots
image

Desktop (please complete the following information):

  • OS: Kubuntu
  • Version 21.10

Merge 1.6 branch with master?

Is your feature request related to a problem? Please describe.
There are packages on the 1.6 branch and it is not merged with master.

Describe the solution you'd like
Merge 1.6 branch with master.

Describe alternatives you've considered
N/A

Additional context
N/A

PacReq: `ncmpcpp`

ncmpcpp (NCurses Music Player Client Plus Plus) is a featureful ncurses based mpd client inspired by ncmpc

URL: https://github.com/ncmpcpp/ncmpcpp

Building Guide

Detailed one: https://github.com/ncmpcpp/ncmpcpp/blob/master/INSTALL
Simple one: https://github.com/ncmpcpp/ncmpcpp/blob/master/README.md

Addendum

Remember to give the user the ability to enable optional features during compile time (if you make a building script, otherwise I hope the binary will have them all enabled by default)

Add package remove to Github action

Describe the solution you'd like
Add pacstall -R package.pacscript to the pipeline. So it checks if it is possible to delete the package (at least without errors).

[Feature] Use the new `pkgver()` function in `-git` pacscripts.

Is your feature request related to a problem? Please describe.
From Pacstal 1.3 "Amaranth" a new pkgver() function was introduced (see here for info), so can we add that function to the -git pacscripts to enable auto updates?

Describe the solution you'd like
Use the pkgver() function to enable auto updates in -git pacscripts

Describe alternatives you've considered
None

Additional context
The pacscripts refered in this context are of these teams:
@pacstall/bashtop-git
@pacstall/blang-git
@pacstall/bpytop-git
@pacstall/lemonbar-xft-git
@pacstall/notion-git
@pacstall/pipewire-git
@pacstall/st-distrotube
@pacstall/st-lukesmith
@pacstall/tuner-git

neovim recursively installs

Describe the bug
When installing neovim, the contents of /usr/src/pacstall/neovim is usr/src/pacstall/neovim

To Reproduce
Install neovim

Expected behavior
For the contents of /usr/src/pacstall/neovim to contain something like bin/nvim

Error installing a package

I don't know if this is because of the theme itself, and maybe it is not compatible with my DE (kde plasma), or if it is a pacstall issue, but when I tried installing cutefish-icons I am getting an error. Here is the terminal output:

pacstall -I cutefish-icons
Do you want to view/edit the pacscript [y/N] N
[+] INFO: Sourcing pacscript
[*] WARNING: Package does not contain a hash
[!] ERROR: Package does not contain version

I tried to install Brave browser, and it worked just fine.

Purge files larger than 1mb from repo history with BFG Repo-Cleaner

Is your feature request related to a problem? Please describe.
This repo currently stands at 200mb, much larger than it needs to be. TwilightBlood said that the repo originally contained binary packages instead of build scripts, and most of size of the repo comes from already deleted packages from the repo history.
image
A purge was already conducted by Brox in August, however I'm not sure why it was reversed.

Describe the solution you'd like

git fetch
git pull
java -jar bfg.jar -b 1M
git reflog expire --expire=now --all && git gc --prune=now --aggressive
git push -f

image

Include pacstall-programs in Repology

Is your feature request related to a problem? Please describe.

Repology is a database service which tracks and compares packages in a plethora of repositories, from Linux distros to specialized repos like Chocolatey and crates.io.

Describe the solution you'd like

Prepare pacstall-programs in order to be suitable for inclusion in repology database.

Describe alternatives you've considered

No alternatives were considered. Repology is a de facto standard solution on its niche.

Additional context

[bug] `bpytop-git` doesn't work

Describe the bug
bpytop-git doesn't work

To Reproduce
Steps to reproduce the behavior:

  1. Install bpytop-git from pacstall
  2. Run bpytop
  3. See that it doesn't work.

Expected behavior
bpytop works

Screenshots
None

Desktop (please complete the following information):

  • OS: Pop!_OS 20.04
  • Version: 1.3 Amaranth (develop)

Additional context
Here is the install logs

❯ sudo pacstall -I bpytop-git
bpytop-git.pacsc 100%[========>]     452  --.-KB/s    in 0s
Do you want to view the pacscript first [y/N]
Do you want to edit the pacscript [y/N] y
[+] INFO: Sourcing pacscript
[+] INFO: Running checks
[+] INFO: URL exists
[+] INFO: Installing dependencies
(Reading database ... 257680 files and directories currently installed.)
Preparing to unpack .../python3-lib2to3_3.8.10-0ubuntu1~20.04_all.deb ...
Unpacking python3-lib2to3 (3.8.10-0ubuntu1~20.04) over (3.8.2-1ubuntu1) ...
Preparing to unpack .../python3-distutils_3.8.10-0ubuntu1~20.04_all.deb ...
Unpacking python3-distutils (3.8.10-0ubuntu1~20.04) over (3.8.2-1ubuntu1) ...
Setting up python3-lib2to3 (3.8.10-0ubuntu1~20.04) ...
find: '/usr/lib/python3.7/lib2to3': No such file or directory
find: '/usr/lib/python3.7/lib2to3': No such file or directory
find: '/usr/lib/python3.7': No such file or directory
Setting up python3-distutils (3.8.10-0ubuntu1~20.04) ...
find: '/usr/lib/python3.7/distutils': No such file or directory
find: '/usr/lib/python3.7/distutils': No such file or directory
find: '/usr/lib/python3.7': No such file or directory
[+] INFO: Retrieving packages
Checking object directories: 100% (256/256), done.
[+] INFO: Installing
[+] INFO: Symlinking files
[+] INFO: Storing pacscript

Running bpytop

❯ bpytop
ERROR!
No module named 'psutil'

Install required modules!

Maintainer: [@WRM-42]

Setup pre-commit hooks to increase commit standards

Is your feature request related to a problem? Please describe.

Currently lot of commits to this repository contain many issues related to code quality, and other small but significant things (missing variables, not editing packagelist, putting your pacscript name in alphabetical order in it incorrectly).

Describe the solution you'd like
Setup pre-commit hooks to block/fix this issues before the commit is even made.

Describe alternatives you've considered
None.

Additional context
None.

Make the pacscripts feature complete with the Arch/AUR PKGBUILD's

Is your feature request related to a problem? Please describe.
Currently many of the packages in pacstall lack features which are present in their Arch/AUR PKGBUILD versions.

Describe the solution you'd like
I think the maintainers should strive for feature parity with the Arch/AUR PKGBUILDs

The scripts affected and their maintainers are:

Additional context
As the maintainer feel free to ask me anything regarding this issue.

[Help Wanted] pacstall does not download url file.

Describe the bug
I'm trying to build a new package called grive2.

https://github.com/kwon37xi/pacstall-programs/blob/grive2/packages/grive2/grive2.pacscript

I use pacstall develop branch version(2021/09/01).

To Reproduce

$ pacstall -Il grive2
Do you want to view/edit the pacscript [y/N]
[+] INFO: Sourcing pacscript

[+] INFO: URL exists
[+] INFO: grive2 requires cmake libgcrypt20-dev libyajl-dev libboost-all-dev libcurl4-openssl-dev libexpat1-dev libcppunit-dev binutils-dev debhelper zlib1g-dev dpkg-dev pkg-config to install
Do you want to remove them after installing grive2 [y/N] [+] INFO: Creating dummy package
Selecting previously unselected package grive2.
(Reading database ... 599476 files and directories currently installed.)
Preparing to unpack .../pacstall/grive2-pacstall.deb ...
Unpacking grive2 (0.5.1-1) ...
Setting up grive2 (0.5.1-1) ...
[+] INFO: Installing dependencies
[+] INFO: Retrieving packages
sha256sum: v0.5.1.tar.gz: No such file or directory
[!] ERROR: Hashes don't match
[+] INFO: Cleaning up
[!] ERROR: Failed to install grive2

Expected behavior
pacstall should download url file(https://github.com/vitalif/grive2/archive/v0.5.1.tar.gz).
But there is no file in /tmp/pacstall.

Screenshots
no screenshot

Desktop (please complete the following information):

  • OS: Ubuntu
  • Version : 21.04

Additional context

GNU Nano fails to install

Describe the bug
Nano Installs an additional APT package which do not exist. This package 'auto' is not in PKGBUILD oddly also.

To Reproduce
Steps to reproduce the behavior:

  1. Install Pacstall
  2. Install Nano by: pacstall -I nano
  3. Notice that installation fails because of trying to install package auto which does not exist.

Expected behavior
Nano fails to install because of nonexistent package.

Screenshots
Screenshot from 2022-01-25 19-44-17

Desktop (please complete the following information):

  • OS: Ubuntu
  • Version: 20.04.3 LTS

BugRep: `exa-git` requires extra dependency

Describe the bug
exa-git requires rust to be built

To Reproduce
Steps to reproduce the behavior:

  1. Don't have rust installed
  2. pacstall -I exa-git

Expected behavior
rust should be a build dependency

Screenshots
If applicable, add screenshots to help explain your problem.
image

Desktop (please complete the following information):

  • Pop!_OS
  • 21.10

Additional context
Nope

`install` not being invoked

Describe the bug
I created a pacscript and the deb installation works but install function is not invoked.

To Reproduce
Steps to reproduce the behavior:

  1. Install this pacscript
name="nodejs-deb"
pkgname="nodejs"
breaks="${pkgname} ${pkgname}-git ${pkgname}-bin ${pkgname}-app ${pkgname}-deb"
replace="${pkgname} node"
gives="${pkgname}"
description="Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine."
maintainer="Paul Cosma <[email protected]>"
hash="f7336a4baa5556611f726267384edc3fdafb62a65ee7f03db5eae5b8ab01f91b"

pkgver() {
 curl -Ls https://nodejs.org/en/download | grep -o "Latest LTS Version: <strong>.*</strong>" | grep -o --color=never "[1-9][0-9]*\.[0-9]*\.[0-9]*"
}

version="$(pkgver)"
url="https://deb.nodesource.com/node_16.x/pool/main/n/nodejs/nodejs_16.13.1-deb-1nodesource1_amd64.deb"

prepare() {
  true
}

build() {
  true
}

install() {
  sudo mkdir -p "${STOWDIR}/${name}/usr/bin"
  sudo mkdir -p "${STOWDIR}/${name}/usr/include"
  sudo mkdir -p "${STOWDIR}/${name}/usr/share/man/man1"
  
  sudo mv /usr/bin/node "${STOWDIR}/${name}/usr/bin"
  sudo mv /usr/include/node "${STOWDIR}/${name}/usr/include"
  sudo mv /usr/share/man/man1/node.1.gz "${STOWDIR}/${name}/usr/share/man/man1"
  
  sudo ln -s "${STOWDIR}/${name}/usr/bin/node" /usr/bin/node  
  sudo ln -s "${STOWDIR}/${name}/usr/include/node" /usr/include/node  
  sudo ln -s "${STOWDIR}/${name}/usr/share/man/man1/node.1.gz" /usr/share/man/man1
}

Expected behavior
install should be invoked and all binaries should be moved to STOWDIR and symlinked.

Screenshots
If applicable, add screenshots to help explain your problem.
Not applicable.

Desktop (please complete the following information):

  • OS: Ubuntu minimal fresh install
  • Version 21.10

Additional context
I'm saying that install in not invoked because there are no directories in STOWDIR and no error prints.

Kvantum Install Fails

When installing Kvantum, the installation falls through every time.

Steps to reproduce the behavior:
Here the logs:

(neon)tylerbj16@localhost:~$ sudo pacstall -I kvantum
[sudo] password for tylerbj16: 
kvantum.pacscript      100%[=========================>]     767  --.-KB/s    in 0s      
Do you want to view the pacscript first [y/N] n
Do you want to edit the pacscript [y/N] n
[+] INFO: Sourcing pacscript
logname: no login name
[+] INFO: URL exists
[+] INFO: kvantum requires g++ cmake to install
Do you want to remove them after installing kvantum [y/N] n
[+] INFO: Installing dependencies
[+] INFO: Retrieving packages
[+] INFO: Downloading the package
Kvantum-0.19.0.tar.xz  100%[=========================>]   1.86M  --.-KB/s    in 0.1s    
logname: no login name
logname: no login name
CMake Error: Unknown argument -j2
CMake Error: Run 'cmake --help' for all supported options.
make: *** No targets specified and no makefile found.  Stop.
[+] INFO: Installing
make: *** No rule to make target 'install'.  Stop.
[+] INFO: Symlinking files
stow: ERROR: The stow directory usr/src/pacstall does not contain package kvantum
[+] INFO: Storing 

Desktop -

  • OS:Ubuntu
  • Version: 18.04

Install licenses along with the programs

Describe the bug
Currently, most of the pacscripts don't install the license of the software that they are installing, this is actually illegal as you are basically coping the code without the license

To Reproduce
NA.

Expected behavior
Obvious

Screenshots
NA

Desktop (please complete the following information):

  • OS: NA
  • Version NA

Additional context
I am thinking of adding a message to the @pacstall/pacscript-maintainers to inform everyone about this.
#35 is a pacscript that installs the licenses, please follow similar commands to install the licenses.

PacReq: Grapejuice

Grapejuice is a management tool for playing Roblox using Wine.
Roblox is a fun game played by many children, but it doesn't run using only Wine. Grapejuice is currently available in the AUR, and it works well on arch-based distros. Installing applications from source is not every parent or child's cup of tea, therefore it would be good to simplify the installation process by including it in pacstall-programs.

URL: https://gitlab.com/brinkervii/grapejuice
Building Guide: https://gitlab.com/brinkervii/grapejuice/-/wikis/Installing-from-source/Debian-10-and-similar

PacReq: CMake

CMake is an open-source, cross-platform family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files, and generate native makefiles and workspaces that can be used in the compiler environment of your choice.

URL: https://cmake.org/
Build Guide: https://roboticslab-uc3m.github.io/installation-guides/install-cmake.html#install-cmake-319-ubuntu-1804-bionic

Requested By:Tyler Johnson

Remove `README.md`s from the packages?

Since the README.mds are licensed under their respective projects. I don't think it's allowed to just copy it over to here. We should remove them to avoid potential legal issues.

Pakage Outdated: `git-delta-deb`

git-delta-deb's latest release is 0.11.3, while the pacscript is of 0.8.3.

@kwon37xi update the pacscript, or just remove yourself as the maintainer if you no longer wish to maintain it. I could (or somebody else) could maintain the script then.

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.