UIDs question
Jason
jhelfman at e-e.com
Mon Jan 11 20:41:04 UTC 2010
On Fri, Jan 08, 2010 at 04:36:56PM -0800, Jason thus spake:
>On Fri, Jan 08, 2010 at 10:09:36AM +0000, Florent Thoumie thus spake:
>>On Wed, Jan 6, 2010 at 8:26 PM, Jason <jhelfman at e-e.com> wrote:
>>> Hi,
>>>
>>> I am new to building ports, however I have started to get the hang of
>>> things.
>>>
>>> I am not building any ports that I intend on submitting to FreeBSD, yet,
>>> however maybe that isn't too far off :)
>>>
>>> I've used a guide I found to create a local ports repository that is working
>>> out wonderfully with the existing ports tree under /usr/ports
>>>
>>> My tree is under /usr/ports/local, and I found a way to integrate a local
>>> UIDs and GIDs file, by setting this variable in my Makefile:
>>>
>>> UID_FILES:=${PORTSDIR}/local/UIDs
>>>
>>> When I go to install my port it installs the user as expected, however it
>>> fails on the ${INSTALL_PROGRAM} function. I understand this is just using
>>> "install" with the appropriate flags. Obviously, the port doesn't install.
>>>
>>> If I run it again, the user is already on the system, and the port installs
>>> successfully.
>>>
>>> I was wondering if there is a way to have the port install the user using
>>> the native USERS or GROUPS directives in the do-install phase with the
>>> INSTALL macros, or if there is a more suggested, or conventional, way of
>>> doing this operation.
>>
>>Would you mind putting the files somewhere and showing us the error
>>log? I am aware of one caveat at the moment, which is that you can't
>>use users/groups created with USERS/GROUPS in pkg-plist. Every typical
>>use case with directives contained in Makefile should be fine AFAIK.
>>
>>--
>>Florent Thoumie
>>flz at FreeBSD.org
>>FreeBSD Committer
>>
>
>I've uploaded to pastebin, and hope this is enough to go on. Please let me
>know if it is not, and I will make the information needed available.
>
>http://freebsd.pastebin.com/m359b2c91
I will attach the text of the pastebin for convenience.
Thanks, again!
Jason
-------------- next part --------------
[jhelfman at walrus /usr/ports/local/testport]$ sudo make install
===> Vulnerability check disabled, database not found
=> testport-0.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://xxxx/pub/ports/.
testport-0.0.tar.gz 100% of 165 B 1811 kBps
===> Extracting for testport-0.0
=> MD5 Checksum OK for testport-0.0.tar.gz.
=> SHA256 Checksum OK for testport-0.0.tar.gz.
===> Patching for testport-0.0
===> Configuring for testport-0.0
===> Installing for testport-0.0
===> Generating temporary packing list
===> Checking if local/testport already installed
Creating user `testuser' with uid `1099'.
usage: install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
[-o owner] file1 file2
install [-bCcpSsv] [-B suffix] [-f flags] [-g group] [-m mode]
[-o owner] file1 ... fileN directory
install -d [-v] [-g group] [-m mode] [-o owner] directory ...
*** Error code 64
Stop in /usr/ports/local/testport.
[jhelfman at walrus /usr/ports/local/testport]$ sudo make install
===> Installing for testport-0.0
===> Generating temporary packing list
===> Checking if local/testport already installed
Using existing user `testuser'.
install -o root -g wheel -m 555 /usr/ports/local/testport/work/test.sh /usr/local/bin
===> Registering installation for testport-0.0
[jhelfman at walrus /usr/ports/local/testport]$ ls -al /usr/local/bin/test.sh
-r-xr-xr-x 1 root wheel 33 Jan 8 16:26 /usr/local/bin/test.sh
[jhelfman at walrus /usr/ports/local/testport]$ cat Makefile
PORTNAME= testport
PORTVERSION= 0.0
CATEGORIES= local
VALID_CATEGORIES= local
MASTER_SITES= ftp://xxxx/pub/ports/
DISTFILES= ${PORTNAME}-${PORTVERSION}.tar.gz
MAINTAINER= name at somedomain.com
COMMENT= This is a test port
USERS= testuser
WRKSRC= ${WRKDIR}
NO_BUILD= YES
do-install:
${INSTALL_SCRIPT} ${WRKSRC}/test.sh ${PREFIX}/bin
UID_FILES:=${PORTSDIR}/local/UIDs
.include <bsd.port.mk>
[jhelfman at walrus /usr/ports/local/testport]$ pkg_info |grep test
testport-0.0 This is a test port
[jhelfman at walrus /usr/ports/local/testport]$ id testuser
uid=1099(testuser) gid=65534(nobody) groups=65534(nobody)
[jhelfman at walrus /usr/ports/local/testport]$ grep testuser ../UIDs
testuser:*:1099:65534:testuser:/na:/bin/sh
More information about the freebsd-ports
mailing list