Patchwork Change to vsftpd recipe

login
register
mail settings
Submitter Diego Sueiro
Date Nov. 28, 2013, 5:08 p.m.
Message ID <CAMCfZKEEYRnDP36tKtn=rqXEdY3VVucDMv0FdYntjYmaw3=fMg@mail.gmail.com>
Download mbox | patch
Permalink /patch/62539/
State New, archived
Headers show

Comments

Diego Sueiro - Nov. 28, 2013, 5:08 p.m.
Folks,

I realized that when trying to connect via ftp to a target system (which
has vsftpd installed) I should had to create the /var/run/vsftpd/empty
directory before.

Bellow is the patch to create the folder on vsftpd install task:

 INITSCRIPT_PACKAGES = "${PN}"



Regards,

--
*dS
Diego Sueiro

/*long live rock 'n roll*/
Joe MacDonald - Nov. 28, 2013, 6:24 p.m.
Hey Diego,

[[oe] Change to vsftpd recipe] On 13.11.28 (Thu 15:08) Diego Sueiro wrote:

> Folks,
> 
> I realized that when trying to connect via ftp to a target system (which
> has vsftpd installed) I should had to create the /var/run/vsftpd/empty
> directory before.
> 
> Bellow is the patch to create the folder on vsftpd install task:
> 
> diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.0.bbb/meta-networking/recipes-daemons/vsftpd/
> vsftpd_3.0.0.bb
> index 49d5d2a..82466d1 100644
> --- a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.0.bb
> +++ b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.0.bb
> @@ -70,6 +70,8 @@ do_install() {
>          sed -i "s:/lib/security:${base_libdir}/security:"
> ${D}${sysconfdir}/pam.d/vsftpd
>          sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd
>      fi
> +
> +    install -d ${D}${localstatedir}/run/vsftpd/empty
>  }
> 
>  INITSCRIPT_PACKAGES = "${PN}"

Interesting.  I just recently merge 1c4921817, which points vsftpd at
/var/run/vsftpd/empty, but I haven't actually used vstftp as a server
since then so I didn't notice this problem.  When I tried re-creating
your proposed change I got the expected QA issues:

------------------------------------------------------------------------
ERROR: QA Issue: vsftpd: Files/directories were installed but not shipped
  /run
  /run/vsftpd
  /run/vsftpd/empty
ERROR: QA run found fatal errors. Please consider fixing them.
ERROR: Function failed: do_package_qa
ERROR: Logfile of failure stored in: /home/builds/yocto-mainline/builds/meta-networking-build/tmp/work/core2-poky-linux/vsftpd/3.0.0-r0/temp/log.do_package.26442
ERROR: Task 10 (/home/builds/yocto-mainline/builds/meta-networking-build/../../meta-oe/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.0.bb, do_package) failed with exit code '1'
------------------------------------------------------------------------

Care to take a run at reverting 1c4921817 in your tree and see if that
clears things up for you?  I'd do it myself but I'm waist-deep in a
different investigation right now and it sounds like you might be able
to do a quick test.

-J.

> 
> 
> 
> Regards,
> 
> --
> *dS
> Diego Sueiro
> 
> /*long live rock 'n roll*/
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Diego Sueiro - Nov. 28, 2013, 6:52 p.m.
On Thu, Nov 28, 2013 at 4:24 PM, Joe MacDonald <joe@deserted.net> wrote:

> Care to take a run at reverting 1c4921817 in your tree and see if that
> clears things up for you?  I'd do it myself but I'm waist-deep in a
> different investigation right now and it sounds like you might be able
> to do a quick test.
>

Joe,

I did not get this QA error.
The installed directory should be "/var/run/vsftpd/empty" and not
"/run/vsftpd/empty" as pointed on error message.
Did you added "install -d ${D}${localstatedir}/run/vsftpd/empty" on
do_install function?

Regards,

--
*dS
Diego Sueiro

/*long live rock 'n roll*/
Joe MacDonald - Nov. 28, 2013, 7:02 p.m.
[Re: [oe] Change to vsftpd recipe] On 13.11.28 (Thu 16:52) Diego Sueiro wrote:

> On Thu, Nov 28, 2013 at 4:24 PM, Joe MacDonald <joe@deserted.net> wrote:
> 
> > Care to take a run at reverting 1c4921817 in your tree and see if that
> > clears things up for you?  I'd do it myself but I'm waist-deep in a
> > different investigation right now and it sounds like you might be able
> > to do a quick test.
> >
> 
> Joe,
> 
> I did not get this QA error.
> The installed directory should be "/var/run/vsftpd/empty" and not
> "/run/vsftpd/empty" as pointed on error message.
> Did you added "install -d ${D}${localstatedir}/run/vsftpd/empty" on
> do_install function?

Yep, here's the modified do_install in its entirety:

------------------------------------------------------------------------
do_install() {
    install -d ${D}${sbindir}
    install -d ${D}${mandir}/man8
    install -d ${D}${mandir}/man5
    oe_runmake 'DESTDIR=${D}' install
    install -d ${D}${sysconfdir}
    install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf
    install -d ${D}${sysconfdir}/init.d/
    install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd
    install -d ${D}/${sysconfdir}/default/volatiles
    install -m 644 ${WORKDIR}/volatiles.99_vsftpd ${D}/${sysconfdir}/default/volatiles/99_vsftpd

    install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/
    install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/
    if ! test -z "${PAMLIB}" ; then
        install -d ${D}${sysconfdir}/pam.d/
        cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd
        sed -i "s:/lib/security:${base_libdir}/security:" ${D}${sysconfdir}/pam.d/vsftpd
        sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd
    fi
    install -d ${D}${localstatedir}/run/vsftpd/empty
}
------------------------------------------------------------------------

-J.

> 
> Regards,
> 
> --
> *dS
> Diego Sueiro
> 
> /*long live rock 'n roll*/
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Diego Sueiro - Nov. 28, 2013, 10:02 p.m.
Joe,

Looking at your commit, you are populating "/var/run/vsftpd/empty" using
the file "/etc/default/volatiles/99_vsftpd". This file is used in a
sysVinit system.

Since I'm using systemd, I believe that "/etc/default/volatiles/" is not
scanned by Yocto as you can see here:
http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh

So, I think we need an universal solution.

Regards,

--
*dS
Diego Sueiro

/*long live rock 'n roll*/


On Thu, Nov 28, 2013 at 5:02 PM, Joe MacDonald <joe@deserted.net> wrote:

> [Re: [oe] Change to vsftpd recipe] On 13.11.28 (Thu 16:52) Diego Sueiro
> wrote:
>
> > On Thu, Nov 28, 2013 at 4:24 PM, Joe MacDonald <joe@deserted.net> wrote:
> >
> > > Care to take a run at reverting 1c4921817 in your tree and see if that
> > > clears things up for you?  I'd do it myself but I'm waist-deep in a
> > > different investigation right now and it sounds like you might be able
> > > to do a quick test.
> > >
> >
> > Joe,
> >
> > I did not get this QA error.
> > The installed directory should be "/var/run/vsftpd/empty" and not
> > "/run/vsftpd/empty" as pointed on error message.
> > Did you added "install -d ${D}${localstatedir}/run/vsftpd/empty" on
> > do_install function?
>
> Yep, here's the modified do_install in its entirety:
>
> ------------------------------------------------------------------------
> do_install() {
>     install -d ${D}${sbindir}
>     install -d ${D}${mandir}/man8
>     install -d ${D}${mandir}/man5
>     oe_runmake 'DESTDIR=${D}' install
>     install -d ${D}${sysconfdir}
>     install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf
>     install -d ${D}${sysconfdir}/init.d/
>     install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd
>     install -d ${D}/${sysconfdir}/default/volatiles
>     install -m 644 ${WORKDIR}/volatiles.99_vsftpd
> ${D}/${sysconfdir}/default/volatiles/99_vsftpd
>
>     install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/
>     install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/
>     if ! test -z "${PAMLIB}" ; then
>         install -d ${D}${sysconfdir}/pam.d/
>         cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd
>         sed -i "s:/lib/security:${base_libdir}/security:"
> ${D}${sysconfdir}/pam.d/vsftpd
>         sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd
>     fi
>     install -d ${D}${localstatedir}/run/vsftpd/empty
> }
> ------------------------------------------------------------------------
>
> -J.
>
> >
> > Regards,
> >
> > --
> > *dS
> > Diego Sueiro
> >
> > /*long live rock 'n roll*/
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
> --
> -Joe MacDonald.
> :wq
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
>
Joe MacDonald - Nov. 29, 2013, 4:06 p.m.
[Re: [oe] Change to vsftpd recipe] On 13.11.28 (Thu 20:02) Diego Sueiro wrote:

> Joe,
> 
> Looking at your commit, you are populating "/var/run/vsftpd/empty" using
> the file "/etc/default/volatiles/99_vsftpd". This file is used in a
> sysVinit system.
> 
> Since I'm using systemd, I believe that "/etc/default/volatiles/" is not
> scanned by Yocto as you can see here:
> http://git.yoctoproject.org/cgit.cgi/poky/plain/meta/recipes-core/initscripts/initscripts-1.0/populate-volatile.sh
> 
> So, I think we need an universal solution.

Good point, and now that you mention it, I don't think this is the first
time this has come up.  Though last time around I think it was relating
to automatically cleaning up systemd's service directories on systems
that do not use systemd.

I'm still engaged in a bit of other debug stuff right now, so if you've
got a proposal for this one, please feel free.  Otherwise I'll ping you
when I get back to look at this.

Thanks,
-J.

> 
> Regards,
> 
> --
> *dS
> Diego Sueiro
> 
> /*long live rock 'n roll*/
> 
> 
> On Thu, Nov 28, 2013 at 5:02 PM, Joe MacDonald <joe@deserted.net> wrote:
> 
> > [Re: [oe] Change to vsftpd recipe] On 13.11.28 (Thu 16:52) Diego Sueiro
> > wrote:
> >
> > > On Thu, Nov 28, 2013 at 4:24 PM, Joe MacDonald <joe@deserted.net> wrote:
> > >
> > > > Care to take a run at reverting 1c4921817 in your tree and see if that
> > > > clears things up for you?  I'd do it myself but I'm waist-deep in a
> > > > different investigation right now and it sounds like you might be able
> > > > to do a quick test.
> > > >
> > >
> > > Joe,
> > >
> > > I did not get this QA error.
> > > The installed directory should be "/var/run/vsftpd/empty" and not
> > > "/run/vsftpd/empty" as pointed on error message.
> > > Did you added "install -d ${D}${localstatedir}/run/vsftpd/empty" on
> > > do_install function?
> >
> > Yep, here's the modified do_install in its entirety:
> >
> > ------------------------------------------------------------------------
> > do_install() {
> >     install -d ${D}${sbindir}
> >     install -d ${D}${mandir}/man8
> >     install -d ${D}${mandir}/man5
> >     oe_runmake 'DESTDIR=${D}' install
> >     install -d ${D}${sysconfdir}
> >     install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf
> >     install -d ${D}${sysconfdir}/init.d/
> >     install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd
> >     install -d ${D}/${sysconfdir}/default/volatiles
> >     install -m 644 ${WORKDIR}/volatiles.99_vsftpd
> > ${D}/${sysconfdir}/default/volatiles/99_vsftpd
> >
> >     install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/
> >     install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/
> >     if ! test -z "${PAMLIB}" ; then
> >         install -d ${D}${sysconfdir}/pam.d/
> >         cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd
> >         sed -i "s:/lib/security:${base_libdir}/security:"
> > ${D}${sysconfdir}/pam.d/vsftpd
> >         sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd
> >     fi
> >     install -d ${D}${localstatedir}/run/vsftpd/empty
> > }
> > ------------------------------------------------------------------------
> >
> > -J.
> >
> > >
> > > Regards,
> > >
> > > --
> > > *dS
> > > Diego Sueiro
> > >
> > > /*long live rock 'n roll*/
> > > _______________________________________________
> > > Openembedded-devel mailing list
> > > Openembedded-devel@lists.openembedded.org
> > > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >
> > --
> > -Joe MacDonald.
> > :wq
> >
> > _______________________________________________
> > Openembedded-devel mailing list
> > Openembedded-devel@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-devel
> >
> >
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
Diego Sueiro - Nov. 29, 2013, 6:22 p.m.
On Fri, Nov 29, 2013 at 2:06 PM, Joe MacDonald <joe@deserted.net> wrote:

> I'm still engaged in a bit of other debug stuff right now, so if you've
> got a proposal for this one, please feel free.  Otherwise I'll ping you
> when I get back to look at this.
>

I thought my patch could fix it, but it is not working for you.

Regards,

--
*dS
Diego Sueiro

/*long live rock 'n roll*/

Patch

diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.0.bbb/meta-networking/recipes-daemons/vsftpd/
vsftpd_3.0.0.bb
index 49d5d2a..82466d1 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.0.bb
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.0.bb
@@ -70,6 +70,8 @@  do_install() {
         sed -i "s:/lib/security:${base_libdir}/security:"
${D}${sysconfdir}/pam.d/vsftpd
         sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd
     fi
+
+    install -d ${D}${localstatedir}/run/vsftpd/empty
 }