How build (pkgmk) a port under different (non-root) user credentials?
Hello, list! I'm trying to make a port for CRUX, but one of the packages has the requirement to be built as a regular, restricted, non-root user. How should I go about this? Can I add a temporary user to the system for the build purposes inside of Pkgfile and on the end - remove the user id? Is there a better approach? Thanks in advance for any ideas! -- Plamen Petrov
Hi, On Sat, Mar 23, 2013 at 7:59 PM, Пламен Петров <plamen@petrovi.no-ip.info> wrote:
I'm trying to make a port for CRUX, but one of the packages has the requirement to be built as a regular, restricted, non-root user.
How should I go about this?
Can I add a temporary user to the system for the build purposes inside of Pkgfile and on the end - remove the user id?
Is there a better approach?
This could be an option: http://crux.nu/Wiki/PostInstallationNotes
On Sat, 23 Mar 2013, Пламен Петров wrote:
Hello, list!
I'm trying to make a port for CRUX, but one of the packages has the requirement to be built as a regular, restricted, non-root user.
How should I go about this?
Can I add a temporary user to the system for the build purposes inside of Pkgfile and on the end - remove the user id?
Is there a better approach?
Thanks in advance for any ideas!
You could do that but when the package is later installed the files will end up with a userid that doesn't exist. The risk there is that later when you add another permanent user to the system they might end up owning the files installed by the package. There are several "almost" regular, restricted, non-root users already defined in /etc/password you could use to avoid that. Does the package build an installer that a regular user will run to install some files in the their home directory? That is a somewhat different situation. Need more details about what the package is. -Daryl
On Sat, 23 Mar 2013 14:59:04 +0200 Пламен Петров wrote:
Hello, list!
I'm trying to make a port for CRUX, but one of the packages has the requirement to be built as a regular, restricted, non-root user.
How should I go about this?
Can I add a temporary user to the system for the build purposes inside of Pkgfile and on the end - remove the user id?
Is there a better approach?
Thanks in advance for any ideas!
На 24.3.2013 г. 04:52, Predrag Ivanovic написа:
On Sat, 23 Mar 2013 14:59:04 +0200 Пламен Петров wrote:
Hello, list!
I'm trying to make a port for CRUX, but one of the packages has the requirement to be built as a regular, restricted, non-root user.
How should I go about this?
Can I add a temporary user to the system for the build purposes inside of Pkgfile and on the end - remove the user id?
Is there a better approach?
Thanks in advance for any ideas!
Just to close the subject after my somewhat thorough investigation of the matter: There is no way to create a port, that will after executing pkgmk pkgadd package#version.tgz build as a non-privileged user on a **freshly installed** and updated CRUX system. End of story. If some of the port creators out there need such a thing - the better approach is to work out/patch the sources of the software which has such requirements. Thanks for all opinions on the matter - some proved really helpful! And just to clear it up a bit further - fakeroot is something a user chooses to do to his system. It will do exactly that - run pkgmk under non-root credentials. However - it is not found on a default install of CRUX, and after setup - it allow building of any package as non-root. I was trying to create a port that will both work on a clean CRUX install and be built as non-root user. Fakeroot does not help in this situation. Thanks again, -- Plamen Petrov
Quoting Пламен Петров <plamen@petrovi.no-ip.info>:
На 24.3.2013 г. 04:52, Predrag Ivanovic написа:
On Sat, 23 Mar 2013 14:59:04 +0200 Пламен Петров wrote:
Hello, list!
I'm trying to make a port for CRUX, but one of the packages has the requirement to be built as a regular, restricted, non-root user.
How should I go about this?
Can I add a temporary user to the system for the build purposes inside of Pkgfile and on the end - remove the user id?
Is there a better approach?
Thanks in advance for any ideas!
Just to close the subject after my somewhat thorough investigation of the matter:
There is no way to create a port, that will after executing pkgmk pkgadd package#version.tgz build as a non-privileged user on a **freshly installed** and updated CRUX system.
End of story.
If some of the port creators out there need such a thing - the better approach is to work out/patch the sources of the software which has such requirements.
Thanks for all opinions on the matter - some proved really helpful!
And just to clear it up a bit further - fakeroot is something a user chooses to do to his system. It will do exactly that - run pkgmk under non-root credentials. However - it is not found on a default install of CRUX, and after setup - it allow building of any package as non-root.
I was trying to create a port that will both work on a clean CRUX install and be built as non-root user. Fakeroot does not help in this situation.
Thanks again, -- Plamen Petrov _______________________________________________ CRUX mailing list CRUX@lists.crux.nu http://lists.crux.nu/mailman/listinfo/crux
Hi, I don't understand why this if a problem for you. Just see fakeroot as a dep. People building your port with prt-get won't have any problems with it. Kind Regards, Sebastian
На 24.3.2013 г. 12:44, me@sebastian-bechtel.info написа:
Quoting Пламен Петров <plamen@petrovi.no-ip.info>:
На 24.3.2013 г. 04:52, Predrag Ivanovic написа:
On Sat, 23 Mar 2013 14:59:04 +0200 Пламен Петров wrote:
Hello, list!
I'm trying to make a port for CRUX, but one of the packages has the requirement to be built as a regular, restricted, non-root user.
How should I go about this?
Can I add a temporary user to the system for the build purposes inside of Pkgfile and on the end - remove the user id?
Is there a better approach?
Thanks in advance for any ideas!
Just to close the subject after my somewhat thorough investigation of the matter:
There is no way to create a port, that will after executing pkgmk pkgadd package#version.tgz build as a non-privileged user on a **freshly installed** and updated CRUX system.
End of story.
If some of the port creators out there need such a thing - the better approach is to work out/patch the sources of the software which has such requirements.
Thanks for all opinions on the matter - some proved really helpful!
And just to clear it up a bit further - fakeroot is something a user chooses to do to his system. It will do exactly that - run pkgmk under non-root credentials. However - it is not found on a default install of CRUX, and after setup - it allow building of any package as non-root.
I was trying to create a port that will both work on a clean CRUX install and be built as non-root user. Fakeroot does not help in this situation.
Thanks again, -- Plamen Petrov _______________________________________________ CRUX mailing list CRUX@lists.crux.nu http://lists.crux.nu/mailman/listinfo/crux
Hi,
I don't understand why this if a problem for you.
No problem for me. I was trying to build a port which requires building as non-root.
Just see fakeroot as a dep. People building your port with prt-get won't have any problems with it.
I'm kinda with Fredrik Rinnestam [1] on this - i love CRUX for what it is - just the essence of a system, and really as stable as it can get. Fredrik and the other guys on the CRUX team, thanks for keeping things this way for us! And I'm fine with it - really love it this way. Its just that I was trying to make a port that will both build as the author intended, and go along with the really solid rules CRUX follows. And in line with the above - requiring an external port to build mine is not really an option. As I said, I'm fine with the current rules, because they ensure stability, and I just want to follow them in my first stab at making a port for CRUX. It just happens so that I have to choose - either follow software author's requirements, or follow CRUX rules. My previous e-mail was just to clear things on what can be easily done, following CRUX rules. I have made my choice for the port I'm creating, but it is not yet ready for the public, as I'm still smoothing things out. Everything is peachy, except for work still left to do on my port. Decided to share my findings, so that others can learn from my experience.
Kind Regards, Sebastian
Thanks for the input! [1] see the thread "request some changes on core and opt packages." for Fridrik's opinion, available at http://lists.crux.nu/pipermail/crux/2013-February/003338.html -- Plamen Petrov
participants (5)
-
Daryl F
-
Emmanuel Benisty
-
me@sebastian-bechtel.info
-
Predrag Ivanovic
-
Пламен Петров