[pacman-dev] Differences between the makepkg/pacman config in pacman's git and the ones in the pacman package
Hi, I noticed several differences between the makepkg.conf and pacman.conf in pacman'git compared to the ones that are provided by the pacman package. I realize that some of these changes are Arch specific but some of them seem to be generic enough to be added to pacman' git. Here's a list of these differences. Once there is an agreement on what to change, I could submit a proper git patch. makepkg.conf: @@ -39,15 +39,16 @@ # BUILD ENVIRONMENT ######################################################################### # -# Defaults: BUILDENV=(fakeroot !distcc color !ccache) +# Defaults: BUILDENV=(fakeroot !distcc color !ccache check) # A negated environment option will do the opposite of the comments below. # #-- fakeroot: Allow building packages as a non-root user #-- distcc: Use the Distributed C/C++/ObjC compiler #-- color: Colorize output messages #-- ccache: Use ccache to cache compilation +#-- check: Run the check() function if present in the PKGBUILD # -BUILDENV=(fakeroot !distcc color !ccache) +BUILDENV=(fakeroot !distcc color !ccache check) # #-- If using DistCC, your MAKEFLAGS will also need modification. In addition, #-- specify a space-delimited list of hosts running in the DistCC cluster. ===> If we decide to include the check option in the BUILDENV array, we'll need to do the same in the makepkg.conf man page @@ -61,7 +62,7 @@ # Default: OPTIONS=(strip docs libtool emptydirs zipman purge) # A negated option will do the opposite of the comments below. # -#-- strip: Strip symbols from binaries/libraries in STRIP_DIRS +#-- strip: Strip symbols from binaries/libraries #-- docs: Save doc directories specified by DOC_DIRS #-- libtool: Leave libtool (.la) files in packages #-- emptydirs: Leave empty directories in packages @@ -72,12 +73,16 @@ #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512 INTEGRITY_CHECK=(md5) +#-- Options to be used when stripping binaries. See `man strip' for details. +STRIP_BINARIES="--strip-all" +#-- Options to be used when stripping shared libraries. See `man strip' for details. +STRIP_SHARED="--strip-unneeded" +#-- Options to be used when stripping static libraries. See `man strip' for details. +STRIP_STATIC="--strip-debug" #-- Manual (man and info) directories to compress (if zipman is specified) MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info}) #-- Doc directories to remove (if !docs is specified) DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc}) -#-- Directories to be searched for the strip option (if strip is specified) -STRIP_DIRS=(bin lib sbin usr/{bin,lib,sbin,local/{bin,lib,sbin}} opt/*/{bin,lib,sbin}) #-- Files to be removed from all packages (if purge is specified) PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) ===> This is definitely a bug as makepkg no longer refers to STRIP_DIRS. @@ -91,6 +96,8 @@ #PKGDEST=/home/packages #-- Source cache: specify a fixed directory where source files will be cached #SRCDEST=/home/sources +#-- Source packages: specify a fixed directory where all src packages will be placed +#SRCPKGDEST=/home/srcpackages #-- Packager: name/email of the person or organization building packages #PACKAGER="John Doe <john@doe.com>" ===> Adding this wouldn't hurt. Looks general enough and is commented out by default. pacman.conf: @@ -17,7 +17,7 @@ # If upgrades are available for these packages they will be asked for first SyncFirst = pacman #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#XferCommand = /usr/bin/curl %u > %o +#XferCommand = /usr/bin/curl -C - -f %u > %o #CleanMethod = KeepInstalled Architecture = auto @@ -33,6 +33,7 @@ #ShowSize #UseDelta #TotalDownload +#CheckSpace # # REPOSITORIES ===> These looks general enough to be in pacman's git and are commented out by default. Any comments, objections? Eric
On Mon, Jun 13, 2011 at 3:02 PM, Eric Bélanger <snowmaniscool@gmail.com> wrote:
Hi,
I noticed several differences between the makepkg.conf and pacman.conf in pacman'git compared to the ones that are provided by the pacman package. I realize that some of these changes are Arch specific but some of them seem to be generic enough to be added to pacman' git. Here's a list of these differences. Once there is an agreement on what to change, I could submit a proper git patch.
I have no idea where you got this diff from, is my biggest question. The differences are minimal; I make sure of this every time I release a new major version. I know of only gz vs xz extension, custom CFLAGS/LDFLAGS, and having pre-configured repositories. Here is what I am actually seeing, with full diffs so you can see what side is the old vs. new; I wasn't sure with your diff sans headers: $ diff -u ~/projects/pacman-maint/etc/makepkg.conf ~/projects/arch-repos/pacman/trunk/makepkg.conf --- /home/dmcgee/projects/pacman-maint/etc/makepkg.conf 2011-05-19 21:21:29.877332232 -0500 +++ /home/dmcgee/projects/arch-repos/pacman/trunk/makepkg.conf 2011-04-01 16:37:09.799489542 -0500 @@ -23,15 +23,15 @@ # ARCHITECTURE, COMPILE FLAGS ######################################################################### # -CARCH="i686" -CHOST="i686-pc-linux-gnu" +CARCH="@CARCH@" +CHOST="@CHOST@" -#-- Exclusive: will only run on i686 +#-- Exclusive: will only run on @CARCH@ # -march (or -mcpu) builds exclusively for an architecture # -mtune optimizes for an architecture, but builds for whole processor family -CFLAGS="-march=i686 -mtune=generic -O2 -pipe" -CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe" -#LDFLAGS="" +CFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe" +CXXFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe" +LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed" #-- Make Flags: change this for DistCC/SMP systems #MAKEFLAGS="-j2" @@ -108,7 +108,7 @@ # WARNING: Do NOT modify these variables unless you know what you are # doing. # -PKGEXT='.pkg.tar.gz' +PKGEXT='.pkg.tar.xz' SRCEXT='.src.tar.gz' # vim: set ft=sh ts=2 sw=2 et: dmcgee@clifden ~ $ diff -u ~/projects/pacman-maint/etc/pacman.conf ~/projects/arch-repos/pacman/trunk/pacman.conf pacman.conf pacman.conf.in dmcgee@clifden ~ $ diff -u ~/projects/pacman-maint/etc/pacman.conf ~/projects/arch-repos/pacman/trunk/pacman.conf --- /home/dmcgee/projects/pacman-maint/etc/pacman.conf 2011-05-19 21:21:29.890665512 -0500 +++ /home/dmcgee/projects/arch-repos/pacman/trunk/pacman.conf 2011-04-01 16:37:09.799489542 -0500 @@ -54,15 +54,25 @@ # uncommented to enable the repo. # -# An example of a disabled remote package repository with multiple servers -# available. To enable, uncomment the following lines. You can add preferred -# servers immediately after the header and they will be used before the -# default mirrors. -#[core] -#Server = ftp://ftp.example.com/foobar/$repo/os/$arch/ -# The file referenced here should contain a list of 'Server = ' lines. +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +#[community-testing] #Include = /etc/pacman.d/mirrorlist +[community] +Include = /etc/pacman.d/mirrorlist + # An example of a custom package repository. See the pacman manpage for # tips on creating your own repositories. #[custom]
On Mon, Jun 13, 2011 at 5:06 PM, Dan McGee <dpmcgee@gmail.com> wrote:
On Mon, Jun 13, 2011 at 3:02 PM, Eric Bélanger <snowmaniscool@gmail.com> wrote:
Hi,
I noticed several differences between the makepkg.conf and pacman.conf in pacman'git compared to the ones that are provided by the pacman package. I realize that some of these changes are Arch specific but some of them seem to be generic enough to be added to pacman' git. Here's a list of these differences. Once there is an agreement on what to change, I could submit a proper git patch.
I have no idea where you got this diff from, is my biggest question.
The differences are minimal; I make sure of this every time I release a new major version. I know of only gz vs xz extension, custom CFLAGS/LDFLAGS, and having pre-configured repositories.
I was using the following diff: diff -Naur ~/arch.git/pacman/etc/makepkg.conf /var/abs/core/pacman/makepkg.conf diff -Naur ~/arch.git/pacman/etc/pacman.conf /var/abs/core/pacman/pacman.conf I just realized that the makepkg.conf and the pacman.conf files in my git directory aren't tracked by git. They were generated a while ago from the makepkg.conf.in and pacman.conf.in when I ran make to build a git pacman. So the config files are OK. However, I believe the makepkg.conf man pages still needs to be fix (If you agree, I'll submit a proper git patch) : $ diff -Naur doc/makepkg.conf.5.txt doc/makepkg.conf.5.txt.new --- doc/makepkg.conf.5.txt 2011-06-13 15:07:27.000000000 -0400 +++ doc/makepkg.conf.5.txt.new 2011-06-13 17:59:16.000000000 -0400 @@ -70,7 +70,7 @@ This is often used to set the number of jobs used, for example, `-j2`. Other flags that make accepts can also be passed. -**BUILDENV=(**fakeroot !distcc color !ccache !sign**)**:: +**BUILDENV=(**fakeroot !distcc color !ccache check !sign**)**:: This array contains options that affect the build environment, the defaults are shown here. All options should always be left in the array; to enable or disable an option simply remove or place an ``!'' at the front of the
I just realized that the makepkg.conf and the pacman.conf files in my git directory aren't tracked by git. They were generated a while ago from the makepkg.conf.in and pacman.conf.in when I ran make to build a git pacman. So the config files are OK. Aha- yeah, these are generated from the .in files in those
However, I believe the makepkg.conf man pages still needs to be fix (If you agree, I'll submit a proper git patch) : This is a good catch- patches definitely welcome here (for maint I
On Mon, Jun 13, 2011 at 5:03 PM, Eric Bélanger <snowmaniscool@gmail.com> wrote: directories, so if you haven't run make in a long time they will be quite out of date. think if it is in 3.5.X series? check where that option was introduced).
$ diff -Naur doc/makepkg.conf.5.txt doc/makepkg.conf.5.txt.new --- doc/makepkg.conf.5.txt 2011-06-13 15:07:27.000000000 -0400 +++ doc/makepkg.conf.5.txt.new 2011-06-13 17:59:16.000000000 -0400 @@ -70,7 +70,7 @@ This is often used to set the number of jobs used, for example, `-j2`. Other flags that make accepts can also be passed.
-**BUILDENV=(**fakeroot !distcc color !ccache !sign**)**:: +**BUILDENV=(**fakeroot !distcc color !ccache check !sign**)**:: This array contains options that affect the build environment, the defaults are shown here. All options should always be left in the array; to enable or disable an option simply remove or place an ``!'' at the front of the
On Mon, Jun 13, 2011 at 6:13 PM, Dan McGee <dpmcgee@gmail.com> wrote:
I just realized that the makepkg.conf and the pacman.conf files in my git directory aren't tracked by git. They were generated a while ago from the makepkg.conf.in and pacman.conf.in when I ran make to build a git pacman. So the config files are OK. Aha- yeah, these are generated from the .in files in those
On Mon, Jun 13, 2011 at 5:03 PM, Eric Bélanger <snowmaniscool@gmail.com> wrote: directories, so if you haven't run make in a long time they will be quite out of date.
However, I believe the makepkg.conf man pages still needs to be fix (If you agree, I'll submit a proper git patch) : This is a good catch- patches definitely welcome here (for maint I think if it is in 3.5.X series? check where that option was introduced).
The check feature was added on 2010-12-30 by commit: http://projects.archlinux.org/pacman.git/commit/?id=0c29eb431a26467fc5ec1474... And it first appeared in pacman 3.4.3. Do you want me to send a patch against maint or master, or for both?
$ diff -Naur doc/makepkg.conf.5.txt doc/makepkg.conf.5.txt.new --- doc/makepkg.conf.5.txt 2011-06-13 15:07:27.000000000 -0400 +++ doc/makepkg.conf.5.txt.new 2011-06-13 17:59:16.000000000 -0400 @@ -70,7 +70,7 @@ This is often used to set the number of jobs used, for example, `-j2`. Other flags that make accepts can also be passed.
-**BUILDENV=(**fakeroot !distcc color !ccache !sign**)**:: +**BUILDENV=(**fakeroot !distcc color !ccache check !sign**)**:: This array contains options that affect the build environment, the defaults are shown here. All options should always be left in the array; to enable or disable an option simply remove or place an ``!'' at the front of the
On Mon, Jun 13, 2011 at 7:52 PM, Eric Bélanger <snowmaniscool@gmail.com> wrote:
On Mon, Jun 13, 2011 at 6:13 PM, Dan McGee <dpmcgee@gmail.com> wrote:
I just realized that the makepkg.conf and the pacman.conf files in my git directory aren't tracked by git. They were generated a while ago from the makepkg.conf.in and pacman.conf.in when I ran make to build a git pacman. So the config files are OK. Aha- yeah, these are generated from the .in files in those
On Mon, Jun 13, 2011 at 5:03 PM, Eric Bélanger <snowmaniscool@gmail.com> wrote: directories, so if you haven't run make in a long time they will be quite out of date.
However, I believe the makepkg.conf man pages still needs to be fix (If you agree, I'll submit a proper git patch) : This is a good catch- patches definitely welcome here (for maint I think if it is in 3.5.X series? check where that option was introduced).
The check feature was added on 2010-12-30 by commit: http://projects.archlinux.org/pacman.git/commit/?id=0c29eb431a26467fc5ec1474...
And it first appeared in pacman 3.4.3. Do you want me to send a patch against maint or master, or for both?
maint is best in that case, no need for master. As an FYI, anything that gets patched on maint will always make it into master, as all changes there are merged "up" into master. This one will be a bit funny as I know there will likely be a conflict with the signing stuff, but I have no problem resolving that when I do the merge. -Dan
On 2011/6/13 Eric Bélanger <snowmaniscool@gmail.com> wrote:
Hi,
I noticed several differences between the makepkg.conf and pacman.conf in pacman'git compared to the ones that are provided by the pacman package. I realize that some of these changes are Arch specific but some of them seem to be generic enough to be added to pacman' git. Here's a list of these differences. Once there is an agreement on what to change, I could submit a proper git patch.
About the strip options and LDFLAGS, they are probably GNU specific, so some care is needed to avoid breaking fresh installations. Commented lines could be added for documentation/example purposes. Rémy.
participants (3)
-
Dan McGee
-
Eric Bélanger
-
Rémy Oudompheng