root/trunk/make/amavisd-new.mk

Revision 9020, 8.9 kB (checked in by rwhitby, 2 years ago)

amavisd-new: Create user as a system user and system group

Line 
1 ###########################################################
2 #
3 # amavisd-new
4 #
5 ###########################################################
6
7 AMAVISD-NEW_SITE=http://www.ijs.si/software/amavisd
8 AMAVISD-NEW_VERSION=2.4.5
9 AMAVISD-NEW_SOURCE=amavisd-new-$(AMAVISD-NEW_VERSION).tar.gz
10 AMAVISD-NEW_DIR=amavisd-new-$(AMAVISD-NEW_VERSION)
11 AMAVISD-NEW_UNZIP=zcat
12 AMAVISD-NEW_MAINTAINER=NSLU2 Linux <nslu2-linux@yahoogroups.com>
13 AMAVISD-NEW_DESCRIPTION=amavisd-new is a high-performance interface between mailer (MTA) and content checkers
14 AMAVISD-NEW_SECTION=mail
15 AMAVISD-NEW_PRIORITY=optional
16 AMAVISD-NEW_DEPENDS=perl-archive-tar, perl-archive-zip, perl-compress-zlib, \
17   perl-convert-tnef, perl-convert-uulib, perl-digest-perl-md5, \
18   perl-io-multiplex, perl-io-socket-ssl, perl-io-stringy, perl-io-zlib, \
19   perl-mailtools, perl-mime-tools, perl-net-server, perl-unix-syslog, \
20   perl-berkeleydb, perl-uri, spamassassin, bzip2, file, net-tools
21 AMAVISD-NEW_SUGGESTS=perl-net-cidr-lite, perl-net-dns, perl-sys-hostname-long, \
22   perl-mail-spf-query, cpio, unrar, gzip, tnef, zoo, lha, arc, unarj
23 AMAVISD-NEW_CONFLICTS=
24
25 #
26 # AMAVISD-NEW_IPK_VERSION should be incremented when the ipk changes.
27 #
28 AMAVISD-NEW_IPK_VERSION=3
29
30 #
31 # AMAVISD-NEW_CONFFILES should be a list of user-editable files
32 AMAVISD-NEW_CONFFILES=/opt/etc/amavisd.conf /opt/etc/init.d/S60amavisd
33
34 #
35 # AMAVISD-NEW_PATCHES should list any patches, in the the order in
36 # which they should be applied to the source code.
37 #
38 #AMAVISD-NEW_PATCHES=$(AMAVISD-NEW_SOURCE_DIR)/configure.patch
39
40 #
41 # If the compilation of the package requires additional
42 # compilation or linking flags, then list them here.
43 #
44 AMAVISD-NEW_CPPFLAGS=
45 AMAVISD-NEW_LDFLAGS=
46
47 #
48 # AMAVISD-NEW_BUILD_DIR is the directory in which the build is done.
49 # AMAVISD-NEW_SOURCE_DIR is the directory which holds all the
50 # patches and ipkg control files.
51 # AMAVISD-NEW_IPK_DIR is the directory in which the ipk is built.
52 # AMAVISD-NEW_IPK is the name of the resulting ipk files.
53 #
54 # You should not change any of these variables.
55 #
56 AMAVISD-NEW_BUILD_DIR=$(BUILD_DIR)/amavisd-new
57 AMAVISD-NEW_SOURCE_DIR=$(SOURCE_DIR)/amavisd-new
58 AMAVISD-NEW_IPK_DIR=$(BUILD_DIR)/amavisd-new-$(AMAVISD-NEW_VERSION)-ipk
59 AMAVISD-NEW_IPK=$(BUILD_DIR)/amavisd-new_$(AMAVISD-NEW_VERSION)-$(AMAVISD-NEW_IPK_VERSION)_$(TARGET_ARCH).ipk
60
61 .PHONY: amavisd-new-source amavisd-new-unpack amavisd-new amavisd-new-stage amavisd-new-ipk amavisd-new-clean amavisd-new-dirclean amavisd-new-check
62
63 #
64 # This is the dependency on the source code.  If the source is missing,
65 # then it will be fetched from the site using wget.
66 #
67 $(DL_DIR)/$(AMAVISD-NEW_SOURCE):
68         $(WGET) -P $(DL_DIR) $(AMAVISD-NEW_SITE)/$(AMAVISD-NEW_SOURCE)
69
70 #
71 # The source code depends on it existing within the download directory.
72 # This target will be called by the top level Makefile to download the
73 # source code's archive (.tar.gz, .bz2, etc.)
74 #
75 amavisd-new-source: $(DL_DIR)/$(AMAVISD-NEW_SOURCE) $(AMAVISD-NEW_PATCHES)
76
77 $(AMAVISD-NEW_BUILD_DIR)/.configured: $(DL_DIR)/$(AMAVISD-NEW_SOURCE) $(AMAVISD-NEW_PATCHES) make/amavisd-new.mk
78         rm -rf $(BUILD_DIR)/$(AMAVISD-NEW_DIR) $(AMAVISD-NEW_BUILD_DIR)
79         $(AMAVISD-NEW_UNZIP) $(DL_DIR)/$(AMAVISD-NEW_SOURCE) | tar -C $(BUILD_DIR) -xvf -
80         if test -n "$(AMAVISD-NEW_PATCHES)" ; \
81                 then cat $(AMAVISD-NEW_PATCHES) | \
82                 patch -d $(BUILD_DIR)/$(AMAVISD-NEW_DIR) -p0 ; \
83         fi
84         if test "$(BUILD_DIR)/$(AMAVISD-NEW_DIR)" != "$(AMAVISD-NEW_BUILD_DIR)" ; \
85                 then mv $(BUILD_DIR)/$(AMAVISD-NEW_DIR) $(AMAVISD-NEW_BUILD_DIR) ; \
86         fi
87         touch $(AMAVISD-NEW_BUILD_DIR)/.configured
88
89 amavisd-new-unpack: $(AMAVISD-NEW_BUILD_DIR)/.configured
90
91 #
92 # This builds the actual binary.
93 #
94 $(AMAVISD-NEW_BUILD_DIR)/.built: $(AMAVISD-NEW_BUILD_DIR)/.configured
95         rm -f $(AMAVISD-NEW_BUILD_DIR)/.built
96         (cd $(AMAVISD-NEW_BUILD_DIR); \
97           perl -pi -e 's|/usr/bin/perl|/opt/bin/perl|' amavisd; \
98           perl -pi -e 's|/var/amavis|/opt/var/spool/amavis|' amavisd; \
99           perl -pi -e 's|/etc/amavisd.conf|/opt/etc/amavisd.conf|' amavisd \
100         )
101         touch $(AMAVISD-NEW_BUILD_DIR)/.built
102
103 #
104 # This is the build convenience target.
105 #
106 amavisd-new: $(AMAVISD-NEW_BUILD_DIR)/.built
107
108 #
109 # If you are building a library, then you need to stage it too.
110 #
111 $(AMAVISD-NEW_BUILD_DIR)/.staged: $(AMAVISD-NEW_BUILD_DIR)/.built
112         rm -f $(AMAVISD-NEW_BUILD_DIR)/.staged
113         $(MAKE) -C $(AMAVISD-NEW_BUILD_DIR) DESTDIR=$(STAGING_DIR) install
114         touch $(AMAVISD-NEW_BUILD_DIR)/.staged
115
116 amavisd-new-stage: $(AMAVISD-NEW_BUILD_DIR)/.staged
117
118 #
119 # This rule creates a control file for ipkg.  It is no longer
120 # necessary to create a seperate control file under sources/amavisd-new
121 #
122 $(AMAVISD-NEW_IPK_DIR)/CONTROL/control:
123         @install -d $(AMAVISD-NEW_IPK_DIR)/CONTROL
124         @rm -f $@
125         @echo "Package: amavisd-new" >>$@
126         @echo "Architecture: $(TARGET_ARCH)" >>$@
127         @echo "Priority: $(AMAVISD-NEW_PRIORITY)" >>$@
128         @echo "Section: $(AMAVISD-NEW_SECTION)" >>$@
129         @echo "Version: $(AMAVISD-NEW_VERSION)-$(AMAVISD-NEW_IPK_VERSION)" >>$@
130         @echo "Maintainer: $(AMAVISD-NEW_MAINTAINER)" >>$@
131         @echo "Source: $(AMAVISD-NEW_SITE)/$(AMAVISD-NEW_SOURCE)" >>$@
132         @echo "Description: $(AMAVISD-NEW_DESCRIPTION)" >>$@
133         @echo "Depends: $(AMAVISD-NEW_DEPENDS)" >>$@
134         @echo "Suggests: $(AMAVISD-NEW_SUGGESTS)" >>$@
135         @echo "Conflicts: $(AMAVISD-NEW_CONFLICTS)" >>$@
136
137 #
138 # This builds the IPK file.
139 #
140 # Binaries should be installed into $(AMAVISD-NEW_IPK_DIR)/opt/sbin or $(AMAVISD-NEW_IPK_DIR)/opt/bin
141 # (use the location in a well-known Linux distro as a guide for choosing sbin or bin).
142 # Libraries and include files should be installed into $(AMAVISD-NEW_IPK_DIR)/opt/{lib,include}
143 # Configuration files should be installed in $(AMAVISD-NEW_IPK_DIR)/opt/etc/amavisd-new/...
144 # Documentation files should be installed in $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/...
145 # Daemon startup scripts should be installed in $(AMAVISD-NEW_IPK_DIR)/opt/etc/init.d/S??amavisd-new
146 #
147 # You may need to patch your application to make it use these locations.
148 #
149 $(AMAVISD-NEW_IPK): $(AMAVISD-NEW_BUILD_DIR)/.built
150         rm -rf $(AMAVISD-NEW_IPK_DIR) $(BUILD_DIR)/amavisd-new_*_$(TARGET_ARCH).ipk
151         install -d $(AMAVISD-NEW_IPK_DIR)/opt/sbin/
152         install -m 755 $(AMAVISD-NEW_BUILD_DIR)/amavisd $(AMAVISD-NEW_IPK_DIR)/opt/sbin/amavisd
153         install -d $(AMAVISD-NEW_IPK_DIR)/opt/etc/
154         install -m 644 $(AMAVISD-NEW_SOURCE_DIR)/amavisd.conf $(AMAVISD-NEW_IPK_DIR)/opt/etc/amavisd.conf
155         install -d \
156           $(AMAVISD-NEW_IPK_DIR)/opt/lib/perl5/site_perl/$(PERL_VERSION)
157         install -m 755 $(AMAVISD-NEW_BUILD_DIR)/JpegTester.pm \
158           $(AMAVISD-NEW_IPK_DIR)/opt/lib/perl5/site_perl/$(PERL_VERSION)
159         install -d $(AMAVISD-NEW_IPK_DIR)/opt/etc/init.d
160         install -d -m 0755 $(AMAVISD-NEW_IPK_DIR)/opt/var/spool
161         install -d -m 0700 $(AMAVISD-NEW_IPK_DIR)/opt/var/spool/amavis
162         install -d -m 0700 $(AMAVISD-NEW_IPK_DIR)/opt/var/spool/amavis/db
163         install -d -m 0700 $(AMAVISD-NEW_IPK_DIR)/opt/var/spool/amavis/virusmails
164
165         install -m 755 $(AMAVISD-NEW_SOURCE_DIR)/rc.amavisd $(AMAVISD-NEW_IPK_DIR)/opt/etc/init.d/S60amavisd
166         rm -rf $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/
167         install -d -m 755 $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/
168         install -d -m 755 $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/helper-prog
169         install -d -m 755 $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/README_FILES
170         install -d -m 755 $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/test-messages
171         (cd $(AMAVISD-NEW_BUILD_DIR); \
172           install -m 644 amavisd.conf* \
173             $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/; \
174           install -m 644 LICENSE $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/; \
175           install -m 644 MANIFEST $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/; \
176           install -m 644 RELEASE_NOTES \
177              $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/; \
178           install -m 644 TODO $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/; \
179           install -m 644 helper-progs/* \
180             $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/helper-progs/; \
181           install -m 644 README_FILES/* \
182             $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/README_FILES/; \
183           install -m 644 test-messages/* \
184             $(AMAVISD-NEW_IPK_DIR)/opt/doc/amavisd-new/test-messages/; \
185         )
186         $(MAKE) $(AMAVISD-NEW_IPK_DIR)/CONTROL/control
187         install -m 755 $(AMAVISD-NEW_SOURCE_DIR)/postinst $(AMAVISD-NEW_IPK_DIR)/CONTROL/postinst
188 #       install -m 755 $(AMAVISD-NEW_SOURCE_DIR)/prerm $(AMAVISD-NEW_IPK_DIR)/CONTROL/prerm
189         echo $(AMAVISD-NEW_CONFFILES) | sed -e 's/ /\n/g' > $(AMAVISD-NEW_IPK_DIR)/CONTROL/conffiles
190         cd $(BUILD_DIR); $(IPKG_BUILD) $(AMAVISD-NEW_IPK_DIR)
191
192 #
193 # This is called from the top level makefile to create the IPK file.
194 #
195 amavisd-new-ipk: $(AMAVISD-NEW_IPK)
196
197 #
198 # This is called from the top level makefile to clean all of the built files.
199 #
200 amavisd-new-clean:
201         rm -f $(AMAVISD-NEW_BUILD_DIR)/.built
202         -$(MAKE) -C $(AMAVISD-NEW_BUILD_DIR) clean
203
204 #
205 # This is called from the top level makefile to clean all dynamically created
206 # directories.
207 #
208 amavisd-new-dirclean:
209         rm -rf $(BUILD_DIR)/$(AMAVISD-NEW_DIR) $(AMAVISD-NEW_BUILD_DIR) $(AMAVISD-NEW_IPK_DIR) $(AMAVISD-NEW_IPK)
210
211 #
212 #
213 # Some sanity check for the package.
214 #
215 #
216 amavisd-new-check: $(AMAVISD-NEW_IPK)
217         perl scripts/optware-check-package.pl --target=$(OPTWARE_TARGET) $(AMAVISD-NEW_IPK)
218
Note: See TracBrowser for help on using the browser.