Minimalistic AUR-complient pacman wrapper
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

6.0 KiB

pamod

http://img.shields.io/aur/version/pamod-git.svg https://img.shields.io/aur/license/pamod-git.svg

THIS IS A FORK!

pamod means PAkka MODified

pamod is simple, bash-based pacman wrapper that in features is comparable with yaourt.

With pamod you can:

-install AUR packages

-query AUR database

-download PKGBUILDs directly from AUR

-use pacman commands, and pacman-like syntax

Introduction

Do you wanted to have small, simple pacman-wrapper that supports AUR? I think the first try was yaourt or pacaur.

Did you seen how large are sources of those 2 wrappers?

Pacaur has 2309 lines of code (!).

Yaourt's main source file has 526 lines of code + all the libs.

Paru has about 20000 lines of code (MINIX3 kernel has only 12000 lines of code for comparison).

While pamod (state from version 1.5) has only 308 lines of code, and has comparable features to those two giants.

Dependiences

Pamod depends on package-query AUR package. If you don't want to build package-query from AUR, download prebuilt package from here: http://codeberg.org/glowiak/pamod/raw/branch/master/package-query-1.12-1-x86_64.pkg.tar.xz or if you're running archlinux32 or parabola 32bit download this package-query package: http://codeberg.org/glowiak/pamod/raw/branch/master/package-query-1.12-1-pentium4.pkg.tar.xz And install it with pacman.

Goals

My goal with this package is to create a very very flexible and customizable AUR helper written purely in bash in as minimum lines of code as possible.

Adding more lines of code for good features will always be appreciated though.

What do I eventually want?

  • [ WORK IN PROGRESS ] Ability to override already existing AUR makefiles with your own, or patching them to suit your use case.

  • [ DONE ] Ability to easily patch the source without the need for explicitely having patch codes in the aur makefiles

  • [ NOT POSSIBLE AT THIS TIME ] Eventually move to per block diffs for customizing AUR PKGBUILD's

  • [ DONE ] Become a pacman complient AUR wrapper

  • [ DONE ] Arguments and pacman-like syntax

  • [ DONE ] Move this project outside of github

  • [ DONE ] PKGBUILD and installable pkg.tar.xz package

  • [ DONE ] Made a Makefile, to make easier installation and uninstallation

  • [ WORK IN PROGRESS ] Move config file to /etc/pamod.conf, to be more system-wide

  • [ WORK IN PROGRESS ] Handle dependiences from AUR

  • [ DONE ] Yogurt-like searching and installing packages

  • [ WORK IN PROGRESS ] Let user choose which method (curl or git) of downloading AUR packages should be used

  • [ DONE ] Remove -A flag, and make -S flag guess which package to install

  • [ DONE ] Make pamod work on ArchLinux32

  • [ WORK IN PROGRESS ] Test on 32bit parabola

Lacking Features

  • [ DONE ] Searching the AUR database

  • [ DONE ] Dependency Resolution

  • [ DONE ] Autocleaning build directory

Getting Started

There are four ways to install pamod. First is the 'lazy way'. Download script and make it executable.

  root# curl -L -o /usr/bin/pamod https://codeberg.org/glowiak/pamod/raw/branch/master/pamod
  root# chmod 775 /usr/bin/pamod

Second way it to download tar.gz archive and install it with make

  root# curl -L -O http://codeberg.org/glowiak/pamod/archive/master.tar.gz
  root# tar xzf master.tar.gz && rm master.tar.gz
  root# cd pamod/
  root# make install

You can also install pamod from AUR

  user$ git clone http://aur.archlinux.org/pamod-git.git
  user$ cd pamod-git
  user$ makepkg -si

The last way is to download prebuilt package and install it. Package from here may be not up to date.

  user$ curl -L -O https://codeberg.org/glowiak/pamod/raw/branch/master/ARCHPKGs/pamod-version-1-any.pkg.tar.xz
  user$ pacman -U pamod-version-1-any.pkg.tar.xz

To install packages (both normal and AUR are supported), use '-S' flag.

  user$ pamod -S openbox st dmenu-git dwm

To install packages (both AUR and normal) with verbose output, use '-SVv' flag.

  user$ pamod -SVv openbox st dmenu-git dwm

You can also clean the cache (however it's automatic).

  user$ pamod -C

To search in repositories (including AUR) use -Ss flag.

  user$ pamod -Ss st

Possible is also to download package's PKGBUILD directly from AUR and save it to current directory.

  user$ pamod -G st

To view version of pamod and exit, use -V flag.

  user$ pamod -V

To view help, you can use –help flag.

  user$ pamod --help

If you're running version 1.6.2 or newer, you can do self-upgrade to latest version

  user$ pamod -Du

Yogurt Mode

Yogurt means super-interactive. Yogurt is default mode in all yogurt-like wrappers - yaourt, pacaur, yay etc.

To use yogurt mode, start pamod with '-J' flag and name of search query

  user$ pamod -J minecraft

This will list all packages with minecraft in it's name or description and ask you for package name to install.

Why name change

Name was changed to pamod, to not confuse anyone with the original project.

The name 'pakka' was automaticaly generated by github, when i was submitting

patches to that project.

What OS is used to develop pamod?

ArchLinux32 for now.

Configuration

Pamod reads \/etc/pamod.conf file and sources it for environment variables. [ COOMING ]

Overrides

Overrides are files present in the folder \~/.config/pamod/overrides/package-name

srccopy

This override will copy files as it is to your aur package snapshot.

srcpatch

This override will patch your aur package snapshot directory.

copy

This override will copy files as it is to the package source directory.

patch

This override will patch your package source directory.

Contributing

I am looking for people to help me develop this script really well. Feel free to open pull requests and issues for various things you want to see implemented in pamod.