View previous topic :: View next topic |
Author |
Message |
Arniiiii n00b
Joined: 14 Jan 2025 Posts: 1 Location: Ukraine
|
Posted: Tue Jan 14, 2025 11:55 pm Post subject: How to make MANIFEST not as root? |
|
|
I have my own overlay at a github repo.
I'm trying to do a ebuild. I consider it's done. Now I'm trying to do MANIFEST file
By the guide at https://wiki.gentoo.org/wiki/Basic_guide_to_write_Gentoo_Ebuilds#Demonstration_by_example
Quote: |
It is possible to test fetching and unpacking the upstream sources by the new ebuild, using the ebuild command:
Code: |
user $ GENTOO_MIRRORS="" ebuild ./scrub-2.6.1.ebuild manifest clean unpack
|
|
So, I'm trying to do that as a user which is not root. My latest attempt at which I stuck:
Code: | DISTDIR=/home/paxu/data/code/experiments/distfiles PORTAGE_TMPDIR="/home/paxu/data/code/experiments/tmpdir" GENTOO_MIRRORS="" ebuild ./dev-cpp/boost/boost-1.87.0.ebuild manifest clean unpack |
Code: | Appending /home/paxu/data/code/experiments/ex_repo to PORTDIR_OVERLAY...
>>> Creating Manifest for /home/paxu/data/code/experiments/ex_repo/dev-cpp/boost
error: could not lock config file /etc/gitconfig: Permission denied
* boost-1.87.0-cmake.tar.xz BLAKE2B SHA512 size ;-) ... [ ok ]
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/portage/util/__init__.py", line 1228, in apply_permissions
os.chown(filename, uid, gid)
PermissionError: [Errno 1] Operation not permitted: '/home/paxu/data/code/experiments/tmpdir/portage/dev-cpp/boost-1.87.0/distdir'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python-exec/python3.12/ebuild", line 444, in <module>
main()
File "/usr/lib/python-exec/python3.12/ebuild", line 405, in main
a = portage.doebuild(
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/portage/package/ebuild/doebuild.py", line 1418, in doebuild
_prepare_fake_distdir(mysettings, alist)
File "/usr/lib/python3.12/site-packages/portage/package/ebuild/prepare_build_dirs.py", line 503, in _prepare_fake_distdir
portage.util.ensure_dirs(edpath, gid=portage_gid, mode=0o755)
File "/usr/lib/python3.12/site-packages/portage/util/__init__.py", line 1631, in ensure_dirs
perms_modified = apply_permissions(dir_path, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/portage/util/__init__.py", line 1235, in apply_permissions
raise OperationNotPermitted(func_call)
portage.exception.OperationNotPermitted: chown('/home/paxu/data/code/experiments/tmpdir/portage/dev-cpp/boost-1.87.0/distdir', -1, 250) |
Maybe there's a better article or I don't understand something? |
|
Back to top |
|
|
logrusx Advocate
Joined: 22 Feb 2018 Posts: 2605
|
Posted: Wed Jan 15, 2025 8:06 am Post subject: |
|
|
Just fetch the files as root in your regular DISTDIR and then run pkgdev manifest in you repo root. It'll create the manifests. However it doesn't refresh them. You need to delete them to make pkgdev recreate them. That's my experience from maintaining my mini overlay. I usually work on one package at a time, so that has never been an issue for me, at least after I realized it didn;t recreate the manifests on its own, unlike ebuild manifest.
The added value is it creates caches in metadata/md5-cache. However it doesn't clean up either, so you need to do manual cleanup for old files there too.
Best Regards,
Georgi |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|