From owner-freebsd-ports@FreeBSD.ORG Fri Jul 18 19:10:36 2014 Return-Path: Delivered-To: freebsd-ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 134B8242; Fri, 18 Jul 2014 19:10:36 +0000 (UTC) Received: from mail-qc0-x22d.google.com (mail-qc0-x22d.google.com [IPv6:2607:f8b0:400d:c01::22d]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8000A2517; Fri, 18 Jul 2014 19:10:35 +0000 (UTC) Received: by mail-qc0-f173.google.com with SMTP id c9so3727251qcz.32 for ; Fri, 18 Jul 2014 12:10:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:content-type; bh=f/8X3eL0dE3g742+QMVPzn/RTbXMNbwOa7SL+aa2NcM=; b=psyYu65Lhw/0ju7vdNdZ3mzAPyXeWCDL5EmvHJ0K9xCbrdMuiVa09yt6e/BK/ZOmnw PN8tjks8VVQ5WWN8YM2JeyQUodJzoewaQaLGfX3VssCJTF8hSxg2KZs4nbA26fgfuRWk s/vvt0H7vU2Wzot0Tr5/MnwKB9JEmhgVZZdoQ9k1SFyVZ4Xdf0xvE9l6fj8H6zeLhEx0 ZPrs3pOmyJogskAbi1FfhgJKm1p2svP6L760KKuGr7WCrn577bs50FOompmpeFt6rYe+ MXmTQ8DZODAvesXt59DMv+7FriwAXZn/cla0NCG8000WT7sD6ZsEEeELh/iop41+MJYU YvHQ== MIME-Version: 1.0 X-Received: by 10.224.223.135 with SMTP id ik7mr12052213qab.26.1405710634478; Fri, 18 Jul 2014 12:10:34 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.1.6 with HTTP; Fri, 18 Jul 2014 12:10:34 -0700 (PDT) In-Reply-To: <20140718142835.GF96250@e-new.0x20.net> References: <53C82EC4.8060304@gmail.com> <20140718142835.GF96250@e-new.0x20.net> Date: Fri, 18 Jul 2014 12:10:34 -0700 X-Google-Sender-Auth: 8zAzm-YkCEOzOEoQ3xHlyMRFNTs Message-ID: Subject: Re: HOWTO articles for migrating from Linux to FreeBSD, especially for pkg? From: Adrian Chadd To: Lars Engels , Andreas Nilsson , Navdeep Parhar , Craig Rodrigues , Adrian Chadd , freebsd-doc@freebsd.org, Alberto Mijares , freebsd-current Current , ports Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jul 2014 19:10:36 -0000 Hi! On 18 July 2014 07:28, Lars Engels wrote: > On Thu, Jul 17, 2014 at 10:21:17PM +0200, Andreas Nilsson wrote: >> On Thu, Jul 17, 2014 at 10:15 PM, Navdeep Parhar wrote: >> >> > On 07/17/14 13:12, Adrian Chadd wrote: >> > > On 17 July 2014 13:03, Alberto Mijares wrote: >> > >> On Thu, Jul 17, 2014 at 2:58 PM, Adrian Chadd >> > wrote: >> > >>> Hi! >> > >>> >> > >>> 3) The binary packages need to work out of the box >> > >>> 4) .. which means, when you do things like pkg install apache, it >> > >>> can't just be installed and not be enabled, because that's a bit of a >> > >>> problem; >> > >> >> > >> >> > >> No. Please NEVER do that! The user must be able to edit the files and >> > >> start the service by himself. >> > > >> > > Cool, so what's the single line command needed to type in to start a >> > > given package service? >> > >> > Aren't sysrc(8) and service(8) for this kind of stuff? >> > >> >> They sure are. >> >> Well, pkg install $service ; sysrc ${service}_enable="YES" would do. >> Although some services have different names than the packge, which is sort >> of annoying. > > I hacked up a solution for service(8): > > http://bsd-geek.de/FreeBSD/service.sh.enable-disable.patch > > The patch adds the following directives to service(8): > > enable: Grabs an rc script's rcvar value and runs "sysrc foo_enable=YES" > disable: The opposite of enable > rcdelete: Deletes an rc script's rcvar value from /etc/rc.conf using > "sysrc -x foo_enable" > > The nice thing about is that you can use one of the new directives on > one line with the old ones, as long as the new are the first argument: > > # service syslogd enable > # service apache24 disable stop > # service apache24 rcdelete stop > # service nginx enable start > > > So after installing a package, to start and enable a daemon permanently > all you have to run is > # service foo enable start > > Lars > > P.S.: Thansk to Devin for his hard work on sysrc! Having a way for sysrc and service to know what particular options and services are exposed by a given package or installed "thing" would be nice. Right now the namespace is very flat and it's not obvious in all instances what needs to happen to make it useful and what the options are. "Oh, hm, I'd like to know what options there are for controlling the installed apache24 package, let's see"... I remember IRIX having that command to list services, stop them and start them, configure them enabled and disabled. Solaris grew something like that with Solaris 10 and after the initial learning curve it was great. Hving something like that would be 100% awesome. -a