Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 May 2010 21:11:09 -0700
From:      Garrett Cooper <yanefbsd@gmail.com>
To:        portmgr@freebsd.org
Cc:        arch@freebsd.org
Subject:   Re: [RFC] Deprecate @srcdir in pkg_install manifests
Message-ID:  <l2j7d6fde3d1005082111v60ae9065i5e80dbe3ae30c8b5@mail.gmail.com>
In-Reply-To: <q2u7d6fde3d1005082044j37122be8l58390c3cbfe67fd7@mail.gmail.com>
References:  <y2s7d6fde3d1005082025y967e76e2n99322c71ec0cb99a@mail.gmail.com> <q2u7d6fde3d1005082044j37122be8l58390c3cbfe67fd7@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, May 8, 2010 at 8:44 PM, Garrett Cooper <yanefbsd@gmail.com> wrote:
> On Sat, May 8, 2010 at 8:25 PM, Garrett Cooper <yanefbsd@gmail.com> wrote=
:
>> Hi Arch and Portmgr,
>> =A0 =A0Found another item that I'm proposing for removal -- @srcdir. Now=
,
>> first off, here's what it does (from pkg_create):
>>
>> =A0 =A0 @srcdir directory
>> =A0 =A0 =A0 =A0 =A0 =A0 Set the internal directory pointer for _creation=
 only_ to
>> =A0 =A0 =A0 =A0 =A0 =A0 directory. =A0That is to say that it overrides @=
cwd for package
>> =A0 =A0 =A0 =A0 =A0 =A0 creation but not extraction.
>>
>> This construct:
>>
>> 1. Isn't used anywhere in /usr/ports's pkg_plist* files.
>> 2. Isn't used in /usr/src .
>> 3. Is semi-broken in pkg_create as it's treated as a really awkward
>> special case, like so:
>>
>> =A0 =A0 =A0 =A0else if (p->type =3D=3D PLIST_CWD || p->type =3D=3D PLIST=
_SRC)
>> =A0 =A0 =A0 =A0 =A0 =A0fprintf(totar, "-C\n%s\n", p->name);
>>
>> =A0 =A0So if I specify @srcdir multiple times, pkg_create will fall in o=
n itself.
>> 4. It over-complicates things, as the -p option basically already sort
>
> Correction -- -s and -S handle this functionality:
>
> =A0 =A0 -s srcdir
> =A0 =A0 =A0 =A0 =A0 =A0 srcdir will override the value of @cwd during pac=
kage creation.
>
> =A0 =A0 -S basedir
> =A0 =A0 =A0 =A0 =A0 =A0 basedir will be prefixed to all @cwd during packa=
ge creation.

Grr... this isn't nearly as simple as I hoped. -s is the controlling
factor for @srcdir:

    /* If a SrcDir override is set, add it now */
    if (SrcDir) {
        if (Verbose && !PlistOnly)
            printf("Using SrcDir value of %s\n", SrcDir);
        add_plist(&plist, PLIST_SRC, SrcDir);
    }

I'll talk this over with flz, but it's definitely obfuscated design.

>> of provides this level of functionality; the only pro for doing this
>> that I can think of is if someone had tainted vs untainted files that
>> they wanted to install, then using @srcdir with a custom manifest and
>> directory would simplify things. I argue that if they're doing that,
>> they should be using a chroot or a jail anyhow because package
>> maintainers would potentially unnecessarily taint the system with
>> their environment and the packages wouldn't be necessarily as safe to
>> redistribute.
>> =A0 =A0Another item I'll be talking about with flz and other folks at
>> BSDCan, but I wanted to see if anyone had any concerns that they
>> needed to air here before a final decision was made by portmgr.

Thanks,
-Garrett



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?l2j7d6fde3d1005082111v60ae9065i5e80dbe3ae30c8b5>