From owner-freebsd-current@freebsd.org Tue Mar 8 12:40:28 2016 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D11C9AC3DA3; Tue, 8 Mar 2016 12:40:28 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 93C3898D; Tue, 8 Mar 2016 12:40:28 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.86 (FreeBSD)) (envelope-from ) id 1adGvw-000CDQ-Nz; Tue, 08 Mar 2016 15:40:16 +0300 Date: Tue, 8 Mar 2016 15:40:16 +0300 From: Slawa Olhovchenkov To: Glen Barber Cc: freebsd-current@freebsd.org, freebsd-pkgbase@freebsd.org Subject: Re: [CFT] packaging the base system with pkg(8) Message-ID: <20160308124016.GA70809@zxy.spb.ru> References: <20160302235429.GD75641@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160302235429.GD75641@FreeBSD.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Mar 2016 12:40:28 -0000 On Wed, Mar 02, 2016 at 11:54:29PM +0000, Glen Barber wrote: > To obtain the sources for testing, please use the projects/release-pkg > branch: > > # svn co svn://svn.freebsd.org/base/projects/release-pkg /usr/src > > The projects/release-pkg branch is (at this time) in sync with head > revision r296327. > > After checking out the project branch, build the userland and kernel as > normal with the 'buildworld' and 'buildkernel' targets. Afterward, > packages can be created with the 'packages' target. > > # cd /usr/src > # make [make flags] buildworld > # make [make flags] buildkernel > # make packages > > At present, the base system consists of 755 packages with the default > build (empty src.conf(5) and make.conf(5)) for amd64. The number of > packages depends on several factors, but for most cases a runtime binary > is split into several components. In particular, most shared libraries > are individually packaged, in addition to debugging symbols, profiling > libraries, and 32-bit packaged separately. > > The package repository will be created within /usr/obj/usr/src/repo by > default. I am get snapshot .iso for install test setup in VirtualBox and using projects/release-pkg for sources. After make buildworld buildkernel packages and pkg install '*' I am have some words. I am not developer, I am like maintenance services. I am do maintaing systems more ten 20 years, some systems maintainig more ten 10 year continuous, some systems got for maintenance after years unmaintening. All of this give some requirement and vision different from developers. Please, do not reject this! First, you do collocal work, thanks! I am don't check all, but already found some stranges: Package FreeBSD-clibs-development contain /usr/lib/libthr.so, /usr/lib/libedit.so and etc (and same in other packages). Misspeling FreeBSD-debug, FreeBSD-development and FreeBSD-profile as FreeBSD-runtime-debug, FreeBSD-runtime-development and FreeBSD-runtime-profile? I am reseach spliting to package and try some aggregation: NumPkgs tarSize(MB) flatSize(MB) Aggregation 1 30.7 102 FreeBSD-kernel-generic-release 1 57.1 331 FreeBSD-kernel-generic-debug 1 2.8 5.4 FreeBSD-clibs 1 3.5 24 FreeBSD-clibs-development 1 2.4 11 FreeBSD-clibs-debug 1 1.3 9.8 FreeBSD-clibs-profile 1 20.7 103 FreeBSD-runtime 1 5.9 38.1 FreeBSD-development 1 2.9 2.8 FreeBSD-runtime-manuals 1 14.9 65 FreeBSD-debug 1 2.2 12.5 FreeBSD-profile 1 24.3 93 FreeBSD-clang 1 8.7 66 FreeBSD-clang-debug 116 19.0 80 FreeBSD-* 89 3.2 14 FreeBSD-*-development 110 12.5 61 FreeBSD-*-debug 85 2.8 13 FreeBSD-*-profile 85 6.0 18 FreeBSD-*-lib32-* 88 7.4 30 FreeBSD-*-lib32-development 84 11.6 43 FreeBSD-*-lib32-debug 85 5.8 24 FreeBSD-*-lib32-profile I.e -development is substantially less of main package and don't need separatly (and many .so incorrectly packaging into -development). Same as -profile vs -debug (and -profile useless w/o -debug). Manual must be installed always, IMHO (size is small and version of manual must matcj version of utility). Packaging of individual utilites is useless (total 19MB vs 30.7+2.8+20.7+2.9) and incorrect (for example, WITHOUT_ACCT not only don't build accton/lastcomm/sa but also cut off accaunting code from kernel for space saving and perforamce). I am propose don't distinct profile and debug, development and main package. I am propose divide only to FreeBSD-kernel, FreeBSD-clibs (clibs, runtime and manuals), FreeBSD-clang, FreeBSD-lib32. Dividing to many packages is anoyning on install and maintancing (what exact keys of this utilites this version?! stupid admin don't install manuals!) About use cases. I am try to imagine different use cases and don't found answer how do this: 1. package building as `make packages` witch version as timestamp of start buildworld. I.e. on every buildworld every package will be rebuild, take new version and will be reinstaled. Where is profit of package spliting? 2. After src.conf change some package don't build. Where analog of `make delete-old delete-old-libs`? 3. After src.conf chanege some (WITHOUT_ACCT for example) some packages can't be installed. How handle this? 4. How install debug symbols after installing separately set of packages? Not all *-debug*- and don't selecting all 200 packages individualy? 5. Take system installed by unknow person (ex: ISP support 5 years ago). Try to write program. Don't find nothing for this. Version is 11.0-BETA3. How to install required packages? For system w/o inetrnet connectivity and with lost install media? As for windows (please found in garbage CD with exact version and insert in lost CD-ROM)? May be preserve for this all packages in some places on HDD? 6. pkg which /etc/ssh/ssh_config /etc/ssh/ssh_config was not found in the database What?! How to handle this? What is instead of mergemaster? (etcupdate currently to dangerous, I am totaly destroed one host by etcupdate. Also, current database of etcupdate is very strange).