I don’t know if it helps you but i’ve been packing base since FreeBSD 10.0:

# pkg info | grep freebsd
freebsd-base-10.1            FreeBSD Base Package
freebsd-kernel-10.1            FreeBSD Kernel Package

My purpose was create a simple way to deploy updates to my customers with both 
a custom base and kernel. The way i’m doing is quite simple, but it fits what i 
need.

I didn’t split base system, but the concept would be the same.  First i use a 
“release" machine to build world after each update. Then i just point to 
installworld on a different place, like tmp: make installworld 
DESTDIR=/tmp/world.

Then i compress everything in /tmp/world as freebsd-base.tar.gz.

My port is like this:

PORTNAME=       freebsd-base
PORTVERSION=    10.1
CATEGORIES=     custom
MASTER_SITES=   #
DISTFILES=      #
EXTRACT_ONLY=   # NONE

MAINTAINER=     jm...@freebsdbrasil.com.br
COMMENT=        FreeBSD Base Package

NO_MTREE=       yes

SUB_FILES=      pkg-install

NO_BUILD=       yes
NO_WRKSUBDIR=   yes

do-install:
        mkdir -p ${STAGEDIR}${DATADIR}
        @${CP} -r ${FILESDIR}/versions ${STAGEDIR}${DATADIR}/

post-install:
        ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL

.include <bsd.port.mk>

My pkg-plist:

%%DATADIR%%/versions/freebsd-base.sh
%%DATADIR%%/versions/freebsd-base.tar.gz
@dirrmtry %%DATADIR%%/versions
@dirrmtry %%DATADIR%%

In my files dir i have pkg-install.in to PKGINSTALL script execution:

#!/bin/sh

if [ $2 = "POST-INSTALL" ]; then

        for i in `ls  %%DATADIR%%/versions/*.sh` ; do
                sh $i
        done

fi

And freebsd-base.sh contents:

#!/bin/sh
SHAREDIR=/usr/local/share/freebsd-base


                chflags -R nosunlink,noschg /usr/bin /usr/games /usr/include 
/usr/lib* /usr/sbin /usr/share /lib /bin /sbin /lib /libexec /rescue  > 
/dev/null 2>&1
                tar zxfvp ${SHAREDIR}/versions/freebsd-base.tar.gz -C / > 
/dev/null 2>&1
                rm ${SHAREDIR}/versions/freebsd-base.tar.gz > /dev/null 2>&1
                
And finally i add freebsd-base.tar.gz generated on my “release machine” in my 
versions directory. 

Then just build freebsd-base package using poudriere and make it available for 
who is using your repository. 

As i said, it's quite simple, but works. Maybe the concept would be used by pkg 
team. Bryan, if there is something i can help let me know.

> Em 16/12/2014, à(s) 23:16, Bryan Drewery <bdrew...@freebsd.org> escreveu:
> 
> On 12/16/2014 5:41 PM, Cassiano Peixoto wrote:
>> Hi guys,
>> 
>> Some weeks ago i read an email sent by bapt about new features to pkg 1.4.0
>> release. One of them was about packaging base system. As 1.4.0 has
>> been releases i'd like know if this feature is already available.
>> 
> 
> The short answer is "no".
> 
> The longer answer is that it is almost trivial to package the base
> system. There are issues with upgrading though with handling config
> files (1.4.0 addresses this). However, even with that, there is no work
> available that you can test for a comprehensive build+install+upgrade
> packaged base. There remains a lot to do this "right" and consider the
> whole picture. There's the issue of splitting up base into components,
> conflicting packages between base and ports, freebsd-update, Security
> Advisories, etc. There's a lot more work to be done IMHO.
> 
> 
> -- 
> Regards,
> Bryan Drewery
> 

--
Atenciosamente
Jean Milanez Melo
FreeBSD Brasil LTDA
Fone: (31) 3516-0800
http://www.freebsdbrasil.com.br <http://www.freebsdbrasil.com.br/>



_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to