I am trying to write a PKGBUILD for the AUR right now for a github project consisting of several sub applications.
So basically the CMake file of this project just runs a make to make && make install the sub applications.
These are my build and package steps:
build() {
cd "$srcdir/$_gitname"
[[ -d build ]] && rm -r build
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/od ..
}
package() {
cd "${_gitname}/build"
sudo make all
}
My problem is now that everything works except:
- makepkg -i is never asking for sudo rights during build (therefore I had to add sudo in front of the make all)
- When asking for installing, makepkg does not recognize the size of the package. Therefore the package does also not uninstall when running packman -R packagename
I cannot change the CMake file though, because the project is not mine and all the different subapplications belong together and if I try make && make install them separately I get a bunch of errors that they are depending each other.
The package function cannot install into the root hierarchy. Instead, makepkg is intended to install into the pkgdir under a fakeroot, where the pkgdir replicates the actual root directory structure. See ArchWiki/Creating Packages.
You can do this by adding
DESTDIR="$pkgdir/"
to the make options in your package function.When pacman is invoked on the created package, it will copy the files over into the real root hierarchy.