[csw-devel] SF.net SVN: gar:[15181] csw/mgar/pkg

Dagobert Michelsen dam at opencsw.org
Sat Jul 23 12:04:35 CEST 2011


Hi,

Am 23.07.2011 um 02:07 schrieb Maciej Bliziński:
> Em 22/07/2011 00:49, <igalic at users.sourceforge.net> escreveu:
> >
> > Revision: 15181
> >          http://gar.svn.sourceforge.net/gar/?rev=15181&view=rev
> > Author:   igalic
> > Date:     2011-07-21 23:48:37 +0000 (Thu, 21 Jul 2011)
> >
> > Log Message:
> > -----------
> > Add logrotate base. Warning: This Makefile is as of yet untestet.
> >
> > Modified Paths:
> > --------------
> >    csw/mgar/pkg/logrotate/trunk/Makefile
> >    csw/mgar/pkg/logrotate/trunk/checksums
> >
> > Added Paths:
> > -----------
> >    csw/mgar/pkg/logrotate/
> >    csw/mgar/pkg/logrotate/trunk/files/001-makefu.patch
> >    csw/mgar/pkg/logrotate/trunk/files/002-strndup.patch
> >    csw/mgar/pkg/logrotate/trunk/files/003-test.patch
> >    csw/mgar/pkg/logrotate/trunk/files/004-alloca.patch
> >    csw/mgar/pkg/logrotate/trunk/files/005-gzippath.patch
> >    csw/mgar/pkg/logrotate/trunk/files/006-mbrtowc_empty.patch
> >    csw/mgar/pkg/logrotate/trunk/files/007-warn-unreached.patch
> >
> > Modified: csw/mgar/pkg/logrotate/trunk/Makefile
> > ===================================================================
> > --- csw/mgar/pkg/template/trunk/Makefile        2011-07-21 22:40:34 UTC (rev 15180)
> > +++ csw/mgar/pkg/logrotate/trunk/Makefile       2011-07-21 23:48:37 UTC (rev 15181)
> > @@ -2,187 +2,64 @@
> >  # Distributed under the terms of the GNU General Public License v2
> >  # $Id$
> >
> > -## This file contains comments to guide you through various GAR settings.
> > -## Please remove unnecessary comments before committing your code to the code
> > -## repository. The comments to remove are marked with double hashes.
> > -## If you want to remove them all in-place, use:
> > -## gsed -i -e '/^##/d' Makefile
> > -##
> > -## For more information about GAR variables, please see:
> > -## https://sourceforge.net/apps/trac/gar/wiki/GAR%20Variable%20Reference
> > -##
> > -NAME = mypkg
> > -VERSION = 1.0
> > -##
> > -## The category that your software fits in. This is not a descriptive field, but
> > -## influences the build process. Depending on the CATEGORIES setting, different
> > -## Makefiles are included from gar/categories/ in your trunk directory, which
> > -## adjust the build settings for the respective category.
> > -##
> > -## Possible settings are:
> > -## apps, cpan, devel, gnome, java, kde, lang, lib, meta, net, python, server,
> > -## utils, x11, xfce, xorg, xtra
> > -CATEGORIES = lib
> > -##
> > -## A one-line description of the package, which will appear in the pkginfo.
> > -DESCRIPTION = <please fill in>
> > -##
> > -## A longer description of the package. This is only for descriptive purposes
> > -## inside the Makefile and is not used elsewhere.
> > +NAME = logrotate
> > +VERSION = 3.8.0
> > +CATEGORIES = apps
> > +
> > +DESCRIPTION = rotates, compresses, and mails system logs
> > +
> >  define BLURB
> > -  <please fill in>
> > +   The logrotate utility is designed to simplify the administration of log files on a system which generates a lot of log files.
> > +   Logrotate allows for the automatic rotation compression, removal and mailing of log files.
> > +   Logrotate can be set to handle a log file daily, weekly, monthly or when the log file gets to a certain size.
> >  endef
> > -##
> > -## Upstream URL that should show up in the VENDOR field as well as on
> > -## http://opencsw.org/packages/<packagename>.
> > -SPKG_SOURCEURL =
> > -##
> > -## Whitespace-separated list of URLs to download the source package from.
> > -## There are presets: $(SF_MIRRORS), $(GNU_MIRRORS) and $(GOOGLE_MIRROR),
> > -## $(PYPI_MIRROR)
> > -MASTER_SITES =
> > -##
> > -## SF_PROJ is required if you set $(MASTER_SITES) to $(SF_MIRRORS) and the
> > -## Sourceforge project name differs from $(NAME). Specifies the Sourceforge
> > -## project name of the software you wish to download.
> > -## SF_PROJ =
> > -##
> > -## A list of space separated patch filenames from files/ that are to be applied
> > -## to the extracted software before the ./configure stage. Patches need to be
> > -## included in the DISTFILES variable as well.
> > -## PATCHFILES =
> > -##
> > -## Whitespace-separated list of files which comprise this build. mGAR will look
> > -## for the files in the $(FILEDIR) (trunk/files) directory and on the
> > -## $(MASTER_SITES).
> > +
> > +SPKG_SOURCEURL = https://fedorahosted.org/logrotate/
> > +MASTER_SITES = https://fedorahosted.org/releases/l/o/logrotate/
> > +
> > +PATCHFILES  = 001-makefu.patch
> > +PATCHFILES += 002-strndup.patch
> > +PATCHFILES += 003-test.patch
> > +PATCHFILES += 004-alloca.patch
> > +PATCHFILES += 005-gzippath.patch
> > +PATCHFILES += 006-mbrtowc_empty.patch
> > +PATCHFILES += 007-warn-unreached.patch
> > +
> >  DISTFILES  = $(NAME)-$(VERSION).tar.gz
> > -##
> > -## We define upstream file regex so we can be notifed of new upstream software
> > -## release
> > -## UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz
> > -##
> > -## Catalog name is the name to be used with pkg{-get,util} -i <pkgname>.
> > -## It is different from the system package name, which by convention is CSWpkgname.
> > -## CATALOGNAME =
> > -##
> > -## Set to 1 to mark the package as architecture-independent.
> > -## ARCHALL = 0
> > -##
> > -## A list of files / patterns that should be excluded from the package. Amends
> > -## the default list of excluded filenames $(MERGE_EXCLUDE_DEFAULT), which
> > -## contains things like libtool .la files and files with a leading ~.
> > -## EXTRA_MERGE_EXCLUDE_FILES =
> > -##
> > -## A list of space separated package names that should be marked as
> > -## incompatible with the current package. This will go into the depend file.
> > -## When a user has one of the incompatible packages installed and installs
> > -## your package, he will be prompted that the incompatible package must be
> > -## removed. He will however not be prevented to install your package without
> > -## removing the conflicting package first.
> > -## INCOMPATIBLE_PKGS =
> > -##
> > -##  The name of the license file that should be included in your package. Defaults
> > -##  to COPYING. See http://sourceforge.net/apps/trac/gar/wiki/CopyRight for details
> > -##  on including and displaying licenses.
> > -## LICENSE =
> > -##
> > -## A list of space separated package names that should be produced from your
> > -## Makefile. This is used when a software has different components that can be
> > -## packaged and used individually (think runtime libraries, client tools, server
> > -## files, development headers). You don't need to set this when you just want to
> > -## produce one package.
> > -##
> > -## When you set this variable to include more than one package, you also need to
> > -## set PKGFILES_CSWpkgname for each package (except for the first one in your
> > -## $(PACKAGES) list) to define which files go into each package. The first
> > -## package from $(PACKAGES) one will hold all files that are not matched by
> > -## PKGFILES_ for other packages.
> > -## PACKAGES =
> > -##
> > -## If specified, GAR feeds the almost-final package prototype file to
> > -## $(PROTOTYPE_FILTER) and reads the final package prototype file from it.
> > -## $(PROTOTYPE_FILTER) is usually a sed/awk/perl one-liner, which was mostly used
> > -## to prepare the prototype file for use with cswclassutils (see
> > -## $(SPKG_CLASSES)). Now that there are convenience variables for cswclassutils,
> > -## you will rarely have to use this. A still valid use case would be to change
> > -## the file permissions of a file to be set-UID.
> > -## See http://wiki.opencsw.org/cswclassutils-package for common usage information
> > -## PROTOTYPE_FILTER =
> > -##
> > -## cswclassutils settings
> > -##
> > -## A list of action classes. Possible values are:
> > -## none cswpreserveconf cswcpsampleconf cswpycompile cswusergroup cswinitsmf
> > -##     cswinetd cswetcservices
> > -## The class 'cswinitsmf' must be the last class listed. When you use cswclassutils,
> > -## you need to add CSWcswclassutils to RUNTIME_DEP_PKGS.
> > -## SPKG_CLASSES = none
> > -## Simplified settings for classes:
> > -## PRESERVECONF =
> > -## SAMPLECONF =
> > -## INITSMF =
> > -## USERGROUP =
> > -## ETCSERVICES = <file containing an entry for /etc/services>
> > -## INETDCONF = <file containing an inetd.conf formatted entry>
> > -## A list of runtime package dependencies in the form of CSWfoo.
> > -## RUNTIME_DEP_PKGS =
> > -##
> > -## A list of packages necessary to build this package
> > -## BUILD_DEP_PKGS = $(RUNTIME_DEP_PKGS)
> > -##
> > -## When using non-empty $(PACKAGES):
> > -## RUNTIME_DEP_PKGS_CSWpkgname =
> > -## SPKG_DESC_CSWpkgname =
> > -## PKGFILES_CSWpkgname =
> > -## CATALOGNAME_CSWpkgname =
> > -##
> > -## A list of space separated directories where objects should be stripped in
> > -## addition to the bin/ and sbin/ directories.
> > -## STRIP_DIRS =
> > -##
> > -## Define a custom target for the configure phase. When you set this, the target
> > -## that will be used instead of configure: target, is named
> > -## configure-$(CONFIGURE_SCRIPTS) and you will need to define it in your Makefile
> > -## after including gar/gar.include.mk. If you want to skip the configure phase
> > -## completely (for example when your software doesn't need to be compiled) assign
> > -## this variable an empty value. The procedure works for configure, build,
> > -## install and test steps.
> > -## CONFIGURE_SCRIPTS =
> > -## BUILD_SCRIPTS =
> > -## INSTALL_SCRIPTS =
> > -## TEST_SCRIPTS =
> > -##
> > -## Compilation settings
> > -##
> > -## The build directory.
> > -## WORKSRC = $(WORKDIR)/$(NAME)-$(VERSION)
> > -##
> > -## BUILD_ARGS is passed as an argument to gmake during the build phase. Use this
> > -## for example, if you need to override Makefile variables.
> > -## BUILD_ARGS =
> > -##
> > -## Arguments passed to the ./configure script.
> > -CONFIGURE_ARGS = $(DIRPATHS)
> > -##
> > -## BUILD64 =
> > -## CONFIGURE_ENV =
> > -## EXTRA_CFLAGS =
> > -## EXTRA_LDFLAGS =
> > -## EXTRA_INC =
> > -## EXTRA_LIB =
> > -## GARFLAVOR =
> > -## INSTALL_ARGS =
> > -## OPT_FLAGS_SOS = -xO3
> > -## OPT_FLAGS_GCC = -O2 -pipe
> > -##
> > -## The compiler to use. This can be also: SOS11, GCC3, GCC4.
> > -## Specifying GNU will default to GCC4, specifying SUN will default to SOS12
> > -## GARCOMPILER = SOS12
> > -##
> > -# Remove the following rules and uncomment the
> > -# include before building.
> > -all: .DEFAULT
> > -.DEFAULT:
> > -       @true
> > +DISTFILES += 001-makefu.patch
> > +DISTFILES += 002-strndup.patch
> > +DISTFILES += 003-test.patch
> > +DISTFILES += 005-gzippath.patch
> > +DISTFILES += 006-mbrtowc_empty.patch
> > +DISTFILES += 007-warn-unreached.patch
> 
> PATCHFILES imply distribution, you can skip listing patches here.
> 
> >
> > -#include gar/category.mk
> > +RUNTIME_DEP_PKGS = CSWlibpopt
> > +BUILD_DEP_PKGS   = $(RUNTIME_DEP_PKGS)
> > +
> > +CONFIGURE_SCRIPTS =
> > +TEST_TARGET = test
> > +
> > +# "optimize"
> > +NOISALIST = 1
> > +
> > +# Don't ask, it doesn't work otherwise.

There should be no need to export variables. This is usually done by setting
  BUILD_OVERRIDE_VARS = <var1> ...
  BUILD_OVERRIDE_VAR_<var1> = <value1>
  ...
as done in
  http://sourceforge.net/apps/trac/gar/browser/csw/mgar/gar/v2/gar.lib.mk#L843

> > +export EXTRA_CFLAGS = -I$(includedir)

I suggest
  EXTRA_CFLAGS = $(CPPFLAGS)

You can use "gmake modenv" in the build directory to see the current variable definitions.

> > +export EXTRA_LDFLAGS = -L$(libdir)

This is already in LDFLAGS and should not be necessary.

> > +export PREFIX = $(DESTDIR)

This probably means the package does not honour destdir in install. You could override this
specifically on install time as the DESTDIR path may wrongly be compiled in somewhere.
There is a shortcut
  INSTALL_OVERRIDE_DIRS = PREFIX
which automatically prefixes DESTDIR as done here:
  http://sourceforge.net/apps/trac/gar/browser/csw/mgar/gar/v2/gar.lib.mk#L972
  
> > +export BASEDIR = $(prefix)
> > +export MANDIR = $(mandir)

These should be overriden with *_OVERRIDE_VARS.

For examples you can see
  http://sourceforge.net/apps/trac/gar/browser/csw/mgar/pkg/p7zip/trunk/Makefile
  http://sourceforge.net/apps/trac/gar/browser/csw/mgar/pkg/getopt/trunk/Makefile
  http://sourceforge.net/apps/trac/gar/browser/csw/mgar/pkg/glew/trunk/Makefile
as found among many others here:
  grep _OVERRIDE_VARS */trunk/Makefile


Best regards

  -- Dago



More information about the devel mailing list