You are not logged in.
Pages: 1
Hello,
I have a group, abs, that I use to build packages. The folder /home/abs, owned by this group and with permissions u=rwx,g=rws,o=---, contains modified PKGBUILDs and is the place where I build things. Packages are stored in a local repository in /var/abs/local, that is also owned by abs and that has the same permissions. That way, I can, with my normal user:
$ cd /home/abs
$ # make
$ repo-add /var/abs/local/local.db.tar /var/abs/local/{ packages_ive_built }.pkg.tar.xz
$ sudo pacman -Sy
I'd like, however, to also be able to use the abs program with my normal user. Setting the setguid bit in /var/abs would work, but
$ grep -n umask $(which abs)
265:umask 0022
makes it impossible. Why is it used? Is it needed or can it be removed? I can manually edit the script, or create a patch, but I'd like to know why it is there and if it can be safely removed from upstream.
Thanks!
Kalrish
P.S.: I use a local repository because I build almost everything (e.g., pacman -S is able to find my own packages, and make-dependencies are fetched from the packages I've built, rather than the ones in official repos). I couldn't find a better approach.
EDIT: I thought I should ask this question in the mailing lists, but I was not sure to which one should I send the message.
Last edited by Kalrish (2013-12-31 16:36:21)
Offline
There may be a simpler alternative :
look at /etc/abs.conf and you'll see it uses a variable called ABSROOT .
you could try setting it to /home/abs/some_folder and test if that allows you to run abs as your normal user.
Last edited by Lone_Wolf (2014-01-01 11:17:55)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Read the wiki pages on ABS and makepkg. To add to what Lone_Wolf said, you shouldn't run 'make' manually; you can run 'makepkg -si' to have pacman install necessary build dependencies (as well as permanent package dependencies, if you don't wish to build those yourself) and install the package when the build is complete. The file /etc/makepkg.conf lets you set a custom directory in which completed packages are stored, which you can then set as a repository using 'repo-add' if you want.
Arch really isn't designed to be an ideal source-based distro, but if you're really looking to build all your new packages from ABS, check out srcpac and pacbuilder; development hasn't been active for a while, but they should still work.
One final note: Get out of the habit of using 'pacman -Sy' to install new packages. Pacman will first take the '-y' flag and update its database, then install the new package. That runs the risk of effectively retrofitting single packages into an out-of-date system and breaking things in the process. You should instead update the entire system regularly, then install new stuff. That's true whether you use pacman binaries or the ABS tree.
Offline
There may be a simpler alternative :
look at /etc/abs.conf and you'll see it uses a variable called ABSROOT .you could try setting it to /home/abs/some_folder and test if that allows you to run abs as your normal user.
I would prefer to stick with /var/abs. After all, if I manage to get what I want with another directory, I should be able to do the same with /var/abs.
Read the wiki pages on ABS and makepkg. To add to what Lone_Wolf said, you shouldn't run 'make' manually; you can run 'makepkg -si' to have pacman install necessary build dependencies (as well as permanent package dependencies, if you don't wish to build those yourself) and install the package when the build is complete. The file /etc/makepkg.conf lets you set a custom directory in which completed packages are stored, which you can then set as a repository using 'repo-add' if you want.
Oh, sorry; I didn't mean I run make manually. I was referring to the make process:
$ makepkg -o
$ src/FOLDER/configure --help | vim -
:tabnew PKGBUILD
:wq
:q!
$ rm -rf pkg src && makepkg -fsric --nocheck
About your final note, thank you. I didn't know about it; I even thought it was a good approach. My system is largely outdated,
$ pacman -Qu | wc -l
73
(plus the packages that, being present in my local repository, override those in official repos) and I indeed sometimes get into the problem of partial updates, but... my system is so slow that compiling anything when it is updated would be... hard.
Thanks for your answers. I would still like to contact the developers. Can you please tell me what mailing list I should use?
Thanks again!
Offline
Offline
Kalrish wrote:Thanks for your answers. I would still like to contact the developers. Can you please tell me what mailing list I should use?
abs (the script) is essentially bit rotting. There isn't anyone interested in maintaining it.
Oh :/. Then, I will just modify it.
Are there any problems with it? If I can, I would love to contribute.
Last edited by Kalrish (2014-01-01 19:05:12)
Offline
I can't speak for the devs, but it's my understanding that the abs script isn't getting much attention because the ABS tree is maintained via Git, and since the entire tree consumes ~40Mb-50Mb of disk space, cloning then entire tree from git (and periodically pulling updates) is simpler and more efficient than maintaining a script to rsync individual files bit-by-bit.
Offline
Maybe that git tree should be made available to regular users then ?
read-only anonymous access along with a wiki page detailing how to get/update the tree looks like a good replacement for abs
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Arch is using SVN as a backend although there is a Git mirror. SVN is available to regular users, I gave up on the ABS a while back and switched to SVN when I need it.
Offline
Maybe that git tree should be made available to regular users then ?
It is.
https://projects.archlinux.org/svntogit/packages.git/
https://projects.archlinux.org/svntogit/community.git/
Offline
Thanks! I will then use the SVNGIT tree.
Arch really isn't designed to be an ideal source-based distro
Why? The Arch Build System is very powerful, and -at least for me- very beautiful. As I'm going to build a new computer, and I'd like to build everything, I've looked at the so-called "source distros" (mainly Gentoo) but I'm sure I'd miss pacman and PKGBUILDs. Is there a way to acommodate Arch for these purposes?
P.S.: I've looked at both srcpac and pacbuilder and the later seems promising. However, my only computer has just got broken (damn laptops) so I can't test it.
Last edited by Kalrish (2014-01-04 20:45:10)
Offline
Lone_Wolf wrote:Maybe that git tree should be made available to regular users then ?
It is.
https://projects.archlinux.org/svntogit/packages.git/
https://projects.archlinux.org/svntogit/community.git/
The whole packages.git tree does consist of both architectures, though, so maybe cloning the whole thing isn't a great idea...
Offline
Pages: 1