diff options
| author | Sam Varshavchik | 2022-03-13 21:10:44 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2022-04-16 19:59:47 -0400 |
| commit | 867cce4e32e7e64651887664724aa7f06566cb4b (patch) | |
| tree | 8cd198902ea0c51ca955e1bc60d4756008c74818 | |
| parent | a86c03a704830534340347f0f4438e32fdb8ea50 (diff) | |
| download | courier-libs-867cce4e32e7e64651887664724aa7f06566cb4b.tar.bz2 | |
all: scripts to create installable *.deb packages.
33 files changed, 497 insertions, 374 deletions
diff --git a/imap/.gitignore b/imap/.gitignore index 6b4c6f5..15a1cc1 100644 --- a/imap/.gitignore +++ b/imap/.gitignore @@ -1,5 +1,4 @@ /BUGS -/README /README.proxy /README.proxy.html /courierpop3d.8 diff --git a/imap/ChangeLog b/imap/ChangeLog index 4b62227..a52a039 100644 --- a/imap/ChangeLog +++ b/imap/ChangeLog @@ -1,3 +1,8 @@ +2022-04-14 Sam Varshavchik <mrsam@courier-mta.com> + + * Add scripts to create installable .deb packages, update + documentation. + 2022-03-03 Sam Varshavchik <mrsam@courier-mta.com> * imap/authenticate_auth.c: Fix broken SASL authentication. diff --git a/imap/Makefile.am b/imap/Makefile.am index e919a55..9561e32 100644 --- a/imap/Makefile.am +++ b/imap/Makefile.am @@ -14,7 +14,7 @@ CLEANFILES=imapd.8 imapd.html mkimapdcert.html mkimapdcert.8 \ EXTRA_DIST=testsuite testsuite.txt smaptestsuite smaptestsuite.txt \ testsuitevalgrind \ - BUGS BUGS.html README README.html imapd.authpam \ + BUGS BUGS.html common.authpam imapd.authpam \ pop3d.authpam system-auth.authpam system-auth2.authpam\ makeimapaccess.8.in makeimapaccess.html.in \ imapd.html.in imapd.8.in \ @@ -105,13 +105,8 @@ pop3d_testmock_SOURCES=testpop3dserver.c pop3dcapa.c pop3d_testmock_DEPENDENCIES=libpop3d.la pop3d_testmock_LDADD=libpop3d.la @LDAUTH@ -lcourierauth -lcourier-unicode -HTML2TXT=links -dump -no-numbering - -README: README.html - $(HTML2TXT) README.html >README - BUGS: BUGS.html - $(HTML2TXT) BUGS.html >BUGS + elinks -dump -no-numbering BUGS.html >BUGS imapd.html: imapd.html.in ./config.status --file=imapd.html @@ -210,7 +205,7 @@ README.proxy.html: README.proxy.sgml rm -rf html.tmp README.proxy: README.proxy.html - $(HTML2TXT) README.proxy.html >README.proxy + elinks -dump -no-numbering README.proxy.html >README.proxy endif check-am: diff --git a/imap/README.html b/imap/README.html deleted file mode 100644 index 3f9ab77..0000000 --- a/imap/README.html +++ /dev/null @@ -1,256 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> - <title>IMAP Client configuration</title> - <meta name="MSSmartTagsPreventParsing" content="TRUE" /> -</head> - -<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B" -alink="#FF0000"> -<!-- Copyright 1998 - 2003 Double Precision, Inc. See COPYING for --> -<!-- distribution information. --> - -<h1>IMAP client configuration</h1> - -<p>Configuring IMAP clients can be tricky for any server. You have to know a -little bit about how the IMAP server works. Recommended Courier-IMAP -configuration for popular IMAP client software follows.</p> - -<h2>Pine (version tested: 4.10)</h2> - -<p>Older versions of Pine may require the <code>IMAP_OBSOLETE_CLIENT</code> -flag in the imapd configuration file. This setting disables the CHILDREN IMAP -extension, which breaks older versions of Pine. Current version of Pine do -not appear to have this problem.</p> - -<p>To configure Pine to use Courier-IMAP for the main INBOX, go to Pine's -main menu, select S)etup, then C)onfigure. Go down to "inbox-path" setting, -set it as follows:</p> - -<p><code>{<em>hostname</em>}INBOX</code></p> - -<p>"<em>hostname</em>" is the name of the server that's running Courier-IMAP. -Exit and restart Pine.</p> - -<h3>Folder configuration</h3> - -<p>Pine can also create and use folders with Courier-IMAP, instead of -creating mailbox files in <code>$HOME/mail</code>. Go to Pine's main menu, -select S)etup, then choose collectionL)ist.</p> - -<p>Choose A)ddcollection. Pick a name for this folder collection. Enter the -hostname of the Courier-IMAP server. For "Path", enter INBOX. Do not enter -anything for "View". Press ^X to save and exit.</p> - -<p>Now, when you select a folder listing from Pine's main menu, instead of a -folder list, you will see two "folder collections" in a menu. The first one -will be "Mail - Local folders in mail/". Open that folder collection, and you -will see your familiar Pine folders (note, you may also see INBOX there, -that's a bit misleading because your INBOX really comes from Courier-IMAP, -it's just that Pine always sticks INBOX into the first folder collection). -The second menu entry will be your Courier-IMAP folders. If you open it, -you'll see just one folder - "Trash". This folder is not really used by Pine, -so it can be ignored. You can now create your Courier-IMAP folders by -pressing A.</p> - -<h3>Shared folder access</h3> - -<p>If your Maildir INBOX has been previously linked, by -<code>maildirmake</code>, with one or more sharable maildirs, you can access -shared folders by repeating the previous procedure, but entering "shared" -into the "Path" field, instead of "INBOX" (of course, you'll have to pick -another name for this shared folder collection).</p> - -<p>Unfortunately, Pine lists *ALL* of your sharable folders by default. There -is, apparently, no individual subscribe/unsubscribe mechanism, by which you -get to choose which sharable folders you want to be listed.</p> - -<p>For the FAQ: <i>In a shared folder, "expunge" does not remove some deleted -messages, why?</i>. ANSWER: You can only delete your own messages in a shared -folder (owners of sharable maildirs can delete anyone's messages, though). -You may be able to mark the message as deleted, but you won't be able to -actually remove it.</p> - -<p>Also, when you delete your own messages, others will still see them until -you expunge.</p> - -<h3>Creating folders</h3> - -<p>The names of Courier-IMAP folders may not contain periods or slashes. -Periods are used as hierarchy delimiters - Courier-IMAP and Pine can create -folders within other folders.</p> - -<p>Choose A)dd folder, then enter "Work.Important". Instead of a new folder -being created, Pine will display a new entry "Work.". This is a subdirectory -of folders. Move the cursor and press Enter, and Pine will open the contents -of "Work", which will contain an empty folder "Important". Choose A)dd -folder, and create a folder named "Not Important". You now have two folders -shown, "Important" and "Not Important". You can go back to the root folder -collection by pressing '<'.</p> - -<p>When saving messages to folders in Pine, you can manually type in the -complete folder name, "Work.Not Important", or press Ctrl-T, then navigate -your folder hierarchy.</p> - -<p>You can only delete folders after you've deleted all messages from the -folder. If you display the folder collection listing, go to the "Work." -subdirectory and then delete both Important and Not Important folders, when -you return to the root folder collection, the Work. subdirectory will -automatically disappear. Subdirectories disappear automatically when all -folders in the subdirectory are deleted.</p> - -<h3>Folders containing both messages and subfolders.</h3> - -<p>It's possible to have both a folder named "Work", and a subdirectory named -"Work." that contains other folders, however Pine doesn't implement it very -well. You can go to the folder collections list, then add a folder named -"Work", then add a folder named "Work.Slacking Off".</p> - -<p>Pine will display one entry: "Work[.]". Pressing the '>' key will -display all subfolders in the Work subdirectory, and pressing Enter will open -the Work folder.</p> - -<p>There will be a minor problem navigating the folder collection when you're -saving messages in Pine. When Pine prompts you for a folder to save a -message, you can bring up the folder collection list by pressing Ctrl-T, -however there is no way to select the Work folder from the menu. The '>' -key will not work, and pressing Enter will always display all subfolders in -the Work subdirectory. To save the message in the Work folder you will have -to type in its name manually.</p> - -<h3>Removing the local mail folder collection</h3> - -<p>You may find it cumbersome to have two folder collections in Pine - the -default folder collection of mailbox files in <code>$HOME/mail</code> and the -Courier-IMAP folder collection.</p> - -<p>From Pine's main menu, choose S)etup then collectionL)ist. You can simply -delete your local mail folder collections. Pine will now create its usual -"postponed-msgs" and "sent-mail" folders in Courier-IMAP, instead of creating -mailbox files in <code>$HOME/mail</code>.</p> - -<p>Note - you will lose all your messages saved in local mail folders when -you do that, so make sure to back up any messages you want by copying them -into a Courier-IMAP folder. Also, even if you remove the local mail folder -collection, Pine will not remove <code>$HOME/mail</code>, and it will take up -space until you manually delete it.</p> - -<p>NOTE - if you use SqWebmail, resist the urge to go into Pine setup and -rename "postponed-msgs" to "Drafts". SqWebmail will have a problem with Pine -creating and deleting the Drafts folder at will.</p> - -<h2>Netscape Messenger (version tested: 4.7)</h2> - -<p>Go to Edit|Preferences. Click on Mail & Newsgroups, choose "Mail -Servers".</p> - -<p>Enter the name of the Courier-IMAP server, for server type choose "IMAP", -and make sure to enter your login name.</p> - -<p>Click on the "Advanced" tab, and UNCHECK the option "Show only subscribed -folders". Make sure that "server supports folders that contain subfolders and -messages" is checked.</p> - -<p>Under "Personal Namespace", enter "<code>INBOX.</code>", and don't forget -the trailing period. Under "Public (shared)", enter "<code>shared.</code>". -You may not actually need to do this, if you use a recent version of -Messenger (I believe that Messenger 4.5 and later support the -<code>NAMESPACE</code> server extension which automatically configures these -values).</p> - -<p>There are several known bugs in Netscape Messenger's IMAP client. See BUGS -for additional information.</p> - -<p>For the FAQ: <em>Clicking on "Get new messages" results in an error -message "Error in IMAP command received by server", or nothing happens at all -when I know there are new messages in a shared folder. ANSWER: this is a -known bug in Messenger's IMAP client. Complain to Netscape. You can try -reinstalling Courier-IMAP with the -<code>--enable-workarounds-for-imap-client-bugs</code> option, to see if it -helps.</em></p> - -<h2>Microsoft Outlook Express (version tested: 4.72)</h2> - -<p>Open the "Tools" menu, choose "Accounts". This is done for you -automatically the first time you run Outlook Express. If you already use -Outlook Express, select this option manually.</p> - -<p>Press the "Add" button, select "Mail".</p> - -<p>Enter your personal information - name, E-mail address - when prompted.</p> - -<p>Choose 'IMAP' server type, of course.</p> - -<p>Specify the name of the server that's running Courier-IMAP, in the -"Incoming Mail Server" field.</p> - -<p>Specify your usual SMTP server for outgoing mail.</p> - -<p>On the next screen, enter your Courier-IMAP logon name and password.</p> - -<p>Finish the rest of the set up by giving a name to this mail account. -Specify your appropriate connection settings.</p> - -<p>You will receive the following prompt:</p> - -<blockquote> - <p><strong>Would you like to download folder list for the IMAP account - you've just created?</strong></p> -</blockquote> - -<p>Click on "NO".</p> - -<p>You will be returned to the "Internet Accounts" dialog. If you are not -returned to this screen, choose "Accounts" from the "Tools" menu account.</p> - -<p>There will be an entry there for the new IMAP server account that you just -entered. Click on it, then choose "Properties". Click on "Advanced".</p> - -<p>If you don't need to access any shared folders, enter "INBOX" (without the -quotes) in the "Root folder path" field, and make sure that "Only show -subscribed folders" is NOT checked.</p> - -<p>If you need to access shared folders, leave the "Root folder path" field -blank. If you don't have a lot of shared folders, then leaving "Only show -subscribed folders" also unchecked would probably be easier. Otherwise, after -you download your folder list "see below", shared folders will not -immediately show up. You will have to right-click on the folder list and -select "Subscribe to all folders". Then, after all shared folders are -downloaded and shown, you can right-click and select "unsubscribe" in order -to remove any folders that you are not interested in.</p> - -<p>Save your changes, and go back to the main Outlook Express window. You -will see a new entry in the left navigation tab for the new IMAP server -you've just entered.</p> - -<p>Click on the new entry. You will be asked again whether or not you would -like to download the folder list. This time, answer "Yes".</p> - -<p>If you did not configure access to shared folders, all your folders on the -Courier-IMAP server will be shown as a single hierarchy. If you enabled -access to shared folders, there will be two separate folder hierarchies -shown: "INBOX" - your private folders, and "shared" - all your shared -folders.</p> - -<p>When shared folder access is enabled, you can only create or delete -folders by making them subfolders of INBOX. That's your private personal -folder space. You cannot create any "shared" subfolders, because that has to -be configured on the server side, either by you logging into your shell -account, or by the system administrator.</p> - -<p></p> -<hr /> - -<p>Pine is a trademark of the University Of Washington</p> - -<p>Netscape Communicator is a trademark of the Netscape Communications -Corporation</p> - -<p>Outlook Express is a trademark of the Microsoft Corporation</p> -<hr /> - -<p></p> -</body> -</html> diff --git a/imap/common.authpam b/imap/common.authpam new file mode 100644 index 0000000..ad8dcee --- /dev/null +++ b/imap/common.authpam @@ -0,0 +1,4 @@ +@include common-auth +@include common-account +@include common-session +@include common-password diff --git a/imap/configure.ac b/imap/configure.ac index 2931cf3..7d02802 100644 --- a/imap/configure.ac +++ b/imap/configure.ac @@ -318,6 +318,12 @@ then fi fi +if test -f /etc/pam.d/common-auth +then + cp $srcdir/common.authpam imapd.pam + cp $srcdir/common.authpam pop3d.pam +fi + AM_CONDITIONAL(HAVE_SGML, test -d ${srcdir}/../docbook) # This gets built by the make rule, and is not in the git repo diff --git a/maildir/Makefile.am b/maildir/Makefile.am index bcac417..213fd61 100644 --- a/maildir/Makefile.am +++ b/maildir/Makefile.am @@ -123,13 +123,11 @@ EXTRA_DIST=README.maildirquota.html README.maildirquota.txt \ maildirkwtest.txt \ testsuite testsuite.txt testsuite2 testsuite2.txt quotawarnmsg $(DOCS) -HTML2TXT=links -dump -no-numbering - README.maildirquota.txt: README.maildirquota.html - $(HTML2TXT) README.maildirquota.html >README.maildirquota.txt + elinks -dump -no-numbering README.maildirquota.html >README.maildirquota.txt README.sharedfolders.txt: README.sharedfolders.html - $(HTML2TXT) README.sharedfolders.html >README.sharedfolders.txt + elinks -dump -no-numbering README.sharedfolders.html >README.sharedfolders.txt mailbot.h: config.status echo '#define MAILBOT "@MAILBOT@"' >mailbot.h diff --git a/rfc822/rfc2047u.c b/rfc822/rfc2047u.c index 5a3bb85..0e40972 100644 --- a/rfc822/rfc2047u.c +++ b/rfc822/rfc2047u.c @@ -322,7 +322,9 @@ int rfc822_display_addr_str(const char *tok, if (chset != NULL) { +#if LIBIDN int err=0; +#endif char *utf8_ptr; if (p > tok) diff --git a/sqwebmail/ChangeLog b/sqwebmail/ChangeLog index 18aab74..e3a1a4a 100644 --- a/sqwebmail/ChangeLog +++ b/sqwebmail/ChangeLog @@ -1,3 +1,8 @@ +2022-04-14 Sam Varshavchik <mrsam@courier-mta.com> + + * Add scripts to create installable .deb packages, update + documentation. + 2022-03-23 Sam Varshavchik <mrsam@courier-mta.com> * configure.ac: Search for either "ispell" or "aspell". diff --git a/sqwebmail/Makefile.am b/sqwebmail/Makefile.am index 083f71c..9cf514b 100644 --- a/sqwebmail/Makefile.am +++ b/sqwebmail/Makefile.am @@ -9,7 +9,7 @@ AM_CPPFLAGS=@CPPAUTH@ CLEANFILES=htmllibdir.h ldapsearch webgpg ldapaddressbook.dist \ cron.cmd sqwebmail.msg TIMEZONELIST -DISTCLEANFILES=webmail.authpam +DISTCLEANFILES=webmail.authpam common.authpam SUBDIRS=images html @@ -68,7 +68,7 @@ $(GITFILES): %: %.git endif EXTRA_DIST=$(DOCS) sqwebmail.pamconf sqwebmail-system-auth.pamconf\ - sqwebmail-system-auth2.pamconf\ + sqwebmail-common.pamconf sqwebmail-system-auth2.pamconf\ strdup.c strcasecmp.c strncasecmp.c sv-make_timezonelist.pl\ $(ISPELLSOURCES) \ testhtml.tst testhtml.txt testlogindomainlist.sh testlogindomainlist.txt @@ -107,19 +107,17 @@ sqwebmail_LDFLAGS=-static sqwebpasswd_SOURCES=sqwebpasswd.c sqwebpasswd_LDADD=@NETLIBS@ @LDAUTH@ -lcourierauth -HTML2TXT=`which lynx 2>/dev/null && echo "lynx -dump -nolist" && exit; echo "links -dump"` - SECURITY: SECURITY.html rm -f SECURITY - $(HTML2TXT) $(srcdir)/SECURITY.html >SECURITY + elinks -dump -no-numbering $(srcdir)/SECURITY.html >SECURITY BUGS: BUGS.html rm -f BUGS - $(HTML2TXT) $(srcdir)/BUGS.html >BUGS + elinks -dump -no-numbering $(srcdir)/BUGS.html >BUGS TODO: TODO.html rm -f TODO - $(HTML2TXT) $(srcdir)/TODO.html >TODO + elinks -dump -no-numbering $(srcdir)/TODO.html >TODO TIMEZONELIST: sv-make_timezonelist.pl rm -f TIMEZONELIST diff --git a/sqwebmail/configure.ac b/sqwebmail/configure.ac index 1f5e2dc..d23672a 100644 --- a/sqwebmail/configure.ac +++ b/sqwebmail/configure.ac @@ -98,7 +98,7 @@ fi AC_ARG_WITH(ispell, [ --without-ispell Do not compile ispell support --with-ispell=prog Pathname to ispell (if not in default path)], - ispell="$withval", [ AC_PATH_PROGS(ispell, ispell aspell, N, $LPATH) ] ) + ispell="$withval", [ AC_PATH_PROGS(ispell, aspell ispell, N, $LPATH) ] ) case $ispell in "/"*) @@ -458,6 +458,12 @@ then fi fi +if test -f /etc/pam.d/common-auth +then + cp -f $srcdir/sqwebmail-common.pamconf webmail.authpam +fi + + AC_ARG_WITH(mailuser, [], mailuser="$withval", AC_MSG_ERROR(--with-mailuser missing)) AC_ARG_WITH(mailgroup, [], mailgroup="$withval", diff --git a/sqwebmail/html/Makefile.am b/sqwebmail/html/Makefile.am index ba38a4d..a88ffa1 100644 --- a/sqwebmail/html/Makefile.am +++ b/sqwebmail/html/Makefile.am @@ -29,7 +29,7 @@ install-perms-recursive: install-perms-local: @${srcdir}/lstsoftlinks `cat ${srcdir}/*/LANGUAGE_PREF | sort | awk ' { print $$2 } ' | sort | uniq` | sort | uniq | while read F ; \ do echo "$(htmllibdir)/$$F 644 bin bin" ; done >>permissions.dat - @echo "$(htmllibdir) 555 bin bin" >>permissions.dat + @echo "$(htmllibdir) 755 bin bin" >>permissions.dat clone: @test -d ${srcdir}/${to} || exit 0; echo ${srcdir}/${to} already exists. ; exit 1 @@ -39,7 +39,5 @@ clone: echo ${to} >${srcdir}/${to}/LANGUAGE cd ${srcdir}/${to} ; pref=`awk ' { print $$1 }' <LANGUAGE_PREF` ; echo $$pref ${to} >LANGUAGE_PREF -HTML2TXT=`which lynx 2>/dev/null && echo "lynx -dump -nolist" && exit; echo "links -dump"` - README_LANG.txt: README_LANG.html - $(HTML2TXT) README_LANG.html >README_LANG.txt + elinks -dump -no-numbering README_LANG.html >README_LANG.txt diff --git a/sqwebmail/html/en-us/Makefile.am b/sqwebmail/html/en-us/Makefile.am index 5f5bded..0ec4435 100644 --- a/sqwebmail/html/en-us/Makefile.am +++ b/sqwebmail/html/en-us/Makefile.am @@ -35,7 +35,7 @@ clonedist: distdir -rm -rf $(distdir) install-perms: - @echo "$(htmllibdir) 555 bin bin" >permissions.dat + @echo "$(htmllibdir) 755 bin bin" >permissions.dat @for f in $(conf) ; do\ echo $(htmllibdir)/$$f 644 bin bin config >>permissions.dat ;\ done diff --git a/sqwebmail/html/en-us/configure.ac b/sqwebmail/html/en-us/configure.ac index ab788e4..fc54ed1 100644 --- a/sqwebmail/html/en-us/configure.ac +++ b/sqwebmail/html/en-us/configure.ac @@ -1,6 +1,6 @@ dnl -AC_INIT(sqwebmail, 0.11, [courier-sqwebmail@lists.sourceforge.net]) +AC_INIT(sqwebmail-en-us, 0.1, [courier-sqwebmail@lists.sourceforge.net]) >confdefs.h # Kill PACKAGE_ macros diff --git a/sqwebmail/sqwebmail-common.pamconf b/sqwebmail/sqwebmail-common.pamconf new file mode 100644 index 0000000..ad8dcee --- /dev/null +++ b/sqwebmail/sqwebmail-common.pamconf @@ -0,0 +1,4 @@ +@include common-auth +@include common-account +@include common-session +@include common-password diff --git a/tcpd/tlspasswordcache.c b/tcpd/tlspasswordcache.c index e26b72e..a5de624 100644 --- a/tcpd/tlspasswordcache.c +++ b/tcpd/tlspasswordcache.c @@ -382,6 +382,10 @@ typedef EVP_CIPHER_CTX CIPHER_CONTEXT; int tlspassword_init() { +#if HAVE_GCRYPT + if (!gcry_control(GCRYCTL_INITIALIZATION_FINISHED_P)) + gcry_check_version(NULL); +#endif return 1; } diff --git a/unicode/.gitignore b/unicode/.gitignore index 9b3f46d..5affc19 100644 --- a/unicode/.gitignore +++ b/unicode/.gitignore @@ -24,20 +24,25 @@ /config.cache /config.guess /config.sub +/courier-debuild /courier-unicode.h /courier-unicode.spec /courier-unicode-version.m4 +/deb +/deb.release /depcomp /docs.stamp /enttest /graphemetest /html +/INSTALL /install-sh /linebreaktest /ltmain.sh /man /missing /normalizetest +/README /rpm /rpm.release /scripttest diff --git a/unicode/ChangeLog b/unicode/ChangeLog index d286d12..75a47c9 100644 --- a/unicode/ChangeLog +++ b/unicode/ChangeLog @@ -1,3 +1,8 @@ +2022-03-13 Sam Varshavchik <mrsam@courier-mta.com> + + * Add scripts to create installable .deb packages, update + documentation. + 2.2.3 2021-03-21 Sam Varshavchik <mrsam@courier-mta.com> diff --git a/unicode/Makefile.am b/unicode/Makefile.am index 9dc63f6..5299437 100644 --- a/unicode/Makefile.am +++ b/unicode/Makefile.am @@ -43,7 +43,7 @@ update-www: @$(MAKE) update-www-composition update-www-unicode-copyright: - links -dump https://www.unicode.org/license.html >UNICODE-LICENSE.txt.tmp + elinks -dump -no-numbering https://www.unicode.org/license.html >UNICODE-LICENSE.txt.tmp mv UNICODE-LICENSE.txt.tmp UNICODE-LICENSE.txt update-www-unicode: @@ -248,15 +248,31 @@ libcourier_unicode_la_SOURCES=\ bidi_mirroring.h \ unicode_categories.c -libcourier_unicode_la_LDFLAGS=-version-info 7:0:0 +libcourier_unicode_la_LDFLAGS=-version-info @LIBVERSION_INFO@ +DATE := $(shell date -R) dist-hook: rm -f $(distdir)/courier-unicode.h + chmod +x $(distdir)/courier-debuild + @PERL@ -p -i -e 's/\@DATE\@/'"$(DATE)"'/' $(distdir)/packaging/debian/changelog.in + @PERL@ -p -i -e 's/\@DATE\@/'"$(DATE)"'/' $(distdir)/packaging/debian/changelog EXTRA_DIST=$(noinst_SCRIPTS) $(man_MANS) $(PACKAGE).spec \ m4/courier-unicode.m4 \ packaging/freebsd10/pkg-descr +EXTRA_DIST += \ + courier-debuild \ + packaging/debian/changelog \ + packaging/debian/changelog.in \ + packaging/debian/control \ + packaging/debian/copyright \ + packaging/debian/libcourier-unicode.install \ + packaging/debian/libcourier-unicode-dev.install \ + packaging/debian/libcourier-unicode-dev.lintian-overrides \ + packaging/debian/rules \ + packaging/debian/source/format + if UPDATE_UNICODE BUILT_SOURCES=unicode_ultcasetab.c \ @@ -508,7 +524,7 @@ rpm: $(MAKE) bump.rpm.release $(MAKE) dist $(MAKE) dorpm - $$HOME/repos.sh + $$HOME/bin/rpmrepos.sh dorpm: rm -rf rpm/BUILD/* @@ -540,6 +556,28 @@ bump.rpm.release: $(PACKAGE).spec <$(PACKAGE).spec >$(PACKAGE).spec.new; \ mv $(PACKAGE).spec.new $(PACKAGE).spec +packaging/debian/changelog: packaging/debian/changelog.in configure.ac + CONFIG_FILES=packaging/debian/changelog $(srcdir)/config.status + +deb: bump.deb.release + $(MAKE) dist + rm -rf @PACKAGE@-@VERSION@ deb + tar xf @PACKAGE@-@VERSION@.tar.bz2 + cd @PACKAGE@-@VERSION@ && ./courier-debuild -us -uc && mv deb ../deb && cd .. && rm -rf @PACKAGE@-@VERSION@ + $$HOME/bin/debrepos.sh + +bump.deb.release: packaging/debian/changelog + VERSION="x"; \ + test -f $(srcdir)/deb.release && . $(srcdir)/deb.release; \ + NEXT_RELEASE=100; \ + test "$$VERSION" = "@PACKAGE_VERSION@" && NEXT_RELEASE="$$RELEASE"; \ + RELEASE=`expr $$NEXT_RELEASE + 1`; \ + echo "VERSION=@PACKAGE_VERSION@" >$(srcdir)/deb.release; \ + echo "RELEASE=$$RELEASE" >>$(srcdir)/deb.release; \ + sed 's/^@PACKAGE@.*/@PACKAGE@ (@VERSION@-'$$RELEASE') devel; urgency=medium/' \ + <packaging/debian/changelog >packaging/debian/changelog.new; \ + mv packaging/debian/changelog.new packaging/debian/changelog + upload-beta: rm -f @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.bz2.sig; gpg --detach-sign --default-key mrsam@courier-mta.com @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.bz2; test -f @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.bz2.sig || exit 1 ~/src/sftools/release.pl mrsam courier @PACKAGE_NAME@-devel `echo @PACKAGE_VERSION@|sed 's/.*\(........\)/\1/'` @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.bz2 @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.bz2.sig @@ -554,8 +592,8 @@ distrelease: $(MAKE) rpm $(MAKE) -$(MAKEFLAGS) $(MAKE) -$(MAKEFLAGS) - rm -f courier-unicode.spec - $(MAKE) courier-unicode.spec + rm -f courier-unicode.spec packaging/debian/changelog + $(MAKE) courier-unicode.spec packaging/debian/changelog $(MAKE) dist www: diff --git a/unicode/README b/unicode/README deleted file mode 100644 index 4e67d6c..0000000 --- a/unicode/README +++ /dev/null @@ -1,49 +0,0 @@ - Link: Courier Unicode Library (start) - Link: Installation and usage (next) - -Courier Unicode Library - - -------------------------------------------------------------------------- - - Table of Contents - - Current status - - Installation and usage - - Manual pages - - COPYING - - This library implements several algorithms related to the Unicode - Standard, featuring: - - * Both C and C++11 bindings, with a complete manual page documentation - set. - - * The library has all Unicode mappings compiled in as fast, compact, - lookup table. The library does not need to load the Unicode database - files at startup, every time. - - * The library implements lookups uppercase, lowercase, and titlecase - equivalents of a unicode character; grapheme and word breaking rules; - line breaking rules; and the bi-directional algorithm. - - * The library implements canonical and compatibility decomposition and - composition of Unicode text; and the Unicode script property. - - * The library also implements ancillary functions, like looking up the - unicode character that corresponds to some HTML 4.0 entity (such as - “&”, for example), and determining the normal width or a - double-width status of a unicode character. Also, an adaptation of the - iconv(3) API for this unicode library. - -Current status - - The current release of the Courier Unicode library is based on the Unicode - 13.0.0 standard. - - -------------------------------------------------------------------------- - - Next - Installation and usage diff --git a/unicode/book.xml b/unicode/book.xml index f6a5dfd..a6cbd67 100644 --- a/unicode/book.xml +++ b/unicode/book.xml @@ -89,41 +89,242 @@ See COPYING for distribution information. <section id="INSTALL"> <title>Installation and usage</title> - <para> - Download the current version of the library from - <ulink url="/download.html#unicode">https://www.courier-mta.org/download.html#unicode</ulink>. - Use the downloaded tarball to prepare an appropriate installation - package for your operating system distribution. - The typical sequence of commands is: - </para> + <section id="rpmdeb"> + <title>RPM and DEB packages</title> + <para> + These are not the same packages as the ones from various + distributions' repositories. These packages carry an higher internal + revision level in order to prevent them from getting upgraded + by the distribution packaging. This packaging exists in order to + have a convenient way of updating after a release without waiting + for the distribution's package to get built. + </para> + <note> + <para> + If a distribution package is already installed it should be removed + completely before switching to the upstream version (dnf remove or apt + purge). Preserve any existing configuration files, beforehand, in + order to reconfigure the package. + </para> + </note> + <note> + <para> + These packages use their own, generic, installation layout that may + deviate slightly from the package installation conventions that's + preferred by the + distributions. + </para> + </note> + + <section id="rpmbuild"> + <title>RPM builds</title> + + <para> + It is not necessary to unpack this tarball in order to build + this tarball. + </para> + + <para> + Run <quote>dnf install rpm-build</quote> if it's not installed + already, then: + </para> + <blockquote> + <informalexample> + <programlisting><![CDATA[ + $ rpmbuild -ta courier-unicode-VERSION.tar.bz2 + ]]></programlisting> + </informalexample> + </blockquote> + + <para> + If this fails due to any missing dependencies, install them. + This builds the main <quote>courier-unicode</quote> package + with runtime libraries, and the + <quote>courier-unicode-devel</quote> package with + link libraries and header files. + </para> + <blockquote> + <informalexample> + <programlisting><![CDATA[ + $ rpmbuild --define 'compat 1' -ta courier-unicode-VERSION.tar.bz2 + ]]></programlisting> + </informalexample> + </blockquote> + + <para> + Setting the <quote>compat 1</quote> flag during an RPM build + produces a differently-named <quote>compatibility</quote> + runtime package, with its version as part of the package's name. + The compatibility package gets installed together with the newer + version of this library that introduces a binary ABI change. + This supports a transition + period during which other software that's built to the + compatibility package's ABI version continue to load the + compatibility package's library at runtime, while new software + can be built against the newer ABI. + </para> + </section> + + <section id="debbuild"> + <title>DEB builds</title> + + <para> + Run <quote>apt install devscripts debhelper</quote>, + if it's not installed already. + Create an empty directory, and copy/move the tarball into it: + </para> + <blockquote> + <informalexample> + <programlisting><![CDATA[ + $ mkdir tmp + $ mv courier-unicode-VERSION.tar.bz2 tmp + $ cd tmp + ]]></programlisting> + </informalexample> + </blockquote> + <para> + Unpack the tarball and cd into the unpacked subdirectory: + </para> + <blockquote> + <informalexample> + <programlisting><![CDATA[ + $ tar xvf courier-unicode-VERSION.tar.bz2 + $ cd courier-unicode-VERSION + ]]></programlisting> + </informalexample> + </blockquote> + <para> + Run the <command>courier-debuild</command> script, which is a + wrapper for <command>debuild</command>, and forwards its parameters + to it: + </para> + <blockquote> + <informalexample> + <programlisting><![CDATA[ + $ ./courier-debuild -us -uc + ]]></programlisting> + </informalexample> + </blockquote> + <note> + <para> + The above steps must be followed strictly. + The <command>courier-debuild</command> + script expects the distributed tarball in its parent directory. + </para> + </note> + + <para> + This eventually produces a deb subdirectory with .deb packages + that can be installed with "dpkg -i": + </para> + <itemizedlist> + <listitem> + <para> + The <quote>libcourier-unicode-dev</quote> package + contains the development libraries and header files, for + building other packages that use the Courier Unicode + Library. + </para> + </listitem> + <listitem> + <para> + The <quote>libcourier-unicode<replaceable><N></replaceable></quote> + package + contains the runtime library. + </para> + </listitem> + </itemizedlist> + <blockquote> + <informalexample> + <programlisting><![CDATA[ + $ DEBGCC=10 ./courier-debuild -us -uc + ]]></programlisting> + </informalexample> + </blockquote> + + <para> + Setting the <envar>DEBGCC</envar> environment variable + selects a non-default gcc version. + </para> + + <note> + <para> + All Courier packages should be built using the same version of + gcc. + </para> + </note> + </section> + </section> - <blockquote> - <informalexample> - <programlisting> -./configure # Takes the default configure script options -make -make install DESTDIR=/tmp/courier-unicode-instimage # For example.</programlisting> - </informalexample> - </blockquote> + <section id="manualbuild"> + <title>Manual</title> - <para> - The library uses a stock configure script, <command>make</command> - and <command>make install</command> command that respects the - <varname>DESTDIR</varname> setting to create an installation image - in the directory specified by <varname>DESTDIR</varname>. - </para> + <blockquote> + <informalexample> + <programlisting><![CDATA[ + ./configure # Takes the default configure script options + make + make install DESTDIR=/tmp/courier-unicode-instimage # For example.]]></programlisting> + </informalexample> + </blockquote> - <note> <para> - <command>make install</command> does not take any explicit action - to uninstall any older version of the library, or remove any files - from an older version that do not exist any more in the new version. - Use the created installation image to prepare an - installable package in a native package format for your operating - system distribution. Use your native system distribution's package - manager to properly install and update this library. + The library uses a stock configure script, <command>make</command> + and <command>make install</command> command that respects the + <varname>DESTDIR</varname> setting to create an installation image + in the directory specified by <varname>DESTDIR</varname>. </para> - </note> + + <note> + <para> + <command>make install</command> does not take any explicit action + to uninstall any older version of the library, or remove any files + from an older version that do not exist any more in the new version. + Use the created installation image to prepare an + installable package in a native package format for your operating + system distribution. Use your distribution's native package + manager to properly install and update this library. + </para> + </note> + </section> + + <section id="maintbuild"> + <title>Maintainer Mode (see README in the git repository to set up)</title> + <para> + <command>make rpm</command> or <command>make deb</command>, as + appropriate, will: + </para> + <orderedlist> + <listitem> + <para> + Increment an internal release number. + </para> + </listitem> + <listitem> + <para> + Run <command>make dist</command>. + </para> + </listitem> + <listitem> + <para> + Proceed and build a new release, creating the native packages + in the rpm or deb subdirectory. + </para> + </listitem> + <listitem> + <para> + Execute either <command>$HOME/bin/rpmrepos.sh</command> or + <command>$HOME/bin/debrepos.sh</command>. This can be a script + that does nothing, or it's intended to be the maintainer's + script that pushes out the packages to a repository. + </para> + </listitem> + </orderedlist> + </section> + </section> + + <section id="using"> + <title>Using the library</title> <para> To use the library, <quote>#include <courier-unicode.h></quote> and link @@ -133,7 +334,7 @@ make install DESTDIR=/tmp/courier-unicode-instimage # For example.</programlisti Current versions of gcc use C++11, or higher, by default and do not require extra flags. For C++ code, as usual, the compiler and compilation flags for compiling any code that uses this library must be ABI-compatible - too. + too. </para> <para> @@ -145,10 +346,10 @@ make install DESTDIR=/tmp/courier-unicode-instimage # For example.</programlisti <blockquote> <informalexample> <programlisting> - AX_COURIER_UNICODE_VERSION - AX_COURIER_UNICODE_CXXFLAGS + AX_COURIER_UNICODE_VERSION + AX_COURIER_UNICODE_CXXFLAGS - AC_SUBST(COURIER_UNICODE_CXXFLAGS) + AC_SUBST(COURIER_UNICODE_CXXFLAGS) </programlisting> </informalexample> </blockquote> diff --git a/unicode/configure.ac b/unicode/configure.ac index 2d49e70..3604371 100644 --- a/unicode/configure.ac +++ b/unicode/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT([courier-unicode], [2.2.3], +AC_INIT([courier-unicode], [2.2.3.20220416], [courier-users@lists.sourceforge.net]) >confdefs.h # Kill PACKAGE_ macros @@ -133,10 +133,35 @@ p=`echo "00"$p | sed 's/.*(...)$/$[]1/'` HVERSION="$v$r$p" AC_SUBST(HVERSION) +COMPATVERSION="`echo $VERSION | tr -d '.'`" +AC_SUBST(COMPATVERSION) + +LIBVERSION_CURRENT=7 +LIBVERSION_RELEASE=0 +LIBVERSION_AGE=0 + +LIBVERSION_INFO=$LIBVERSION_CURRENT:$LIBVERSION_RELEASE:$LIBVERSION_AGE +AC_SUBST(LIBVERSION_CURRENT) +AC_SUBST(LIBVERSION_RELEASE) +AC_SUBST(LIBVERSION_AGE) +AC_SUBST(LIBVERSION_INFO) + +SOVERSION=0 +if test "$LIBVERSION_CURRENT" -ne "$LIBVERSION_AGE" +then + SOVERSION=`expr $LIBVERSION_CURRENT - $LIBVERSION_AGE` +fi + +AC_SUBST(SOVERSION) + AM_CONDITIONAL(HAVE_DOCS,[test -f $srcdir/docbook/icon.gif]) -AC_OUTPUT(Makefile + +AC_CONFIG_FILES(Makefile + courier-debuild packaging/freebsd10/Makefile courier-unicode.spec courier-unicode.h courier-unicode-version.m4 ) + +AC_OUTPUT diff --git a/unicode/courier-debuild.in b/unicode/courier-debuild.in new file mode 100644 index 0000000..010cced --- /dev/null +++ b/unicode/courier-debuild.in @@ -0,0 +1,54 @@ +#! /bin/bash +# +# Wrapper script for running debuild to build this package. +# +# export DEBGCC=10 +# +# Set DEBGCC to use a non-default version of gcc + +set -e +shopt -s extglob + +f=`cd .. && ls @PACKAGE@-@VERSION@.tar* | sed -n 1p` + +rm -rf deb +mkdir deb +cp ../$f deb/`echo $f | sed 's/@PACKAGE@-/@PACKAGE@_/;s/.tar./.orig.tar./'` +cd deb +tar xf * +cd @PACKAGE@-@VERSION@ +cp -pr packaging/debian . + +if test "$DEBGCC" = "" +then + DEBGCC=`readlink /usr/bin/gcc | sed 's/gcc-//'` + + case "$DEBGCC" in + [1-9]*([0-9])) + ;; + *) + echo "Cannot determine gcc version" + exit 1 + ;; + esac +fi + +DEBGCC="-$DEBGCC" + +for f in debian/rules debian/control +do + sed " +s/%SOVERSION%/@SOVERSION@/g +s/%DEBGCC%/$DEBGCC/g +" <$f >$f.tmp + +mv $f.tmp $f +done + +mv debian/libcourier-unicode.install debian/libcourier-unicode@SOVERSION@.install +chmod +x debian/rules + +debuild "$@" +cd .. +rm -rf @PACKAGE@-@VERSION@ +echo "Built packages in the deb subdirectory." diff --git a/unicode/courier-unicode.spec.in b/unicode/courier-unicode.spec.in index ae1c472..07585d8 100644 --- a/unicode/courier-unicode.spec.in +++ b/unicode/courier-unicode.spec.in @@ -1,6 +1,6 @@ Summary: Courier Unicode Library %if 0%{?compat:1} -Name: courier-unicode%(echo @PACKAGE_VERSION@ | tr -d '.') +Name: courier-unicode@COMPATVERSION@ %define __brp_ldconfig %{nil} diff --git a/unicode/packaging/debian/.gitignore b/unicode/packaging/debian/.gitignore new file mode 100644 index 0000000..8132460 --- /dev/null +++ b/unicode/packaging/debian/.gitignore @@ -0,0 +1 @@ +/changelog diff --git a/unicode/packaging/debian/changelog.in b/unicode/packaging/debian/changelog.in new file mode 100644 index 0000000..58c9d38 --- /dev/null +++ b/unicode/packaging/debian/changelog.in @@ -0,0 +1,5 @@ +courier-unicode (@VERSION@-100) devel; urgency=medium + + * Upstream release + + -- Sam Varshavchik <mrsam@courier-mta.com> @DATE@ diff --git a/unicode/packaging/debian/control b/unicode/packaging/debian/control new file mode 100644 index 0000000..5e7ca51 --- /dev/null +++ b/unicode/packaging/debian/control @@ -0,0 +1,29 @@ +Source: courier-unicode +Priority: optional +Maintainer: Sam Varshavchik <mrsam@courier-mta.com> +Build-Depends: debhelper-compat (= 12), gcc%DEBGCC%, g++%DEBGCC% +Standards-Version: 4.4.1 +Section: contrib/libs +Homepage: https://www.courier-mta.org/unicode/ +Rules-Requires-Root: no + +Package: libcourier-unicode-dev +Section: contrib/libdevel +Architecture: any +Depends: libcourier-unicode%SOVERSION% (= ${binary:Version}), ${misc:Depends} +Description: Courier Unicode Library (header files and development libraries) + This package contains development files for the Courier Unicode Library. + Install this package if you want to develop applications that uses this + unicode library. + +Package: libcourier-unicode%SOVERSION% +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Courier Unicode Library + This library implements several algorithms related to the Unicode + Standard. + - + This package installs only the run-time libraries needed by applications that + use this library. Install the "courier-unicode-dev" package if you want + to develop new applications using this library. + diff --git a/unicode/packaging/debian/copyright b/unicode/packaging/debian/copyright new file mode 100644 index 0000000..7aa7ab2 --- /dev/null +++ b/unicode/packaging/debian/copyright @@ -0,0 +1,25 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Courier Mail Server +Upstream-Contact: https://www.courier-mta.org/unicode/ +Source: https://www.courier-mta.org/unicode/ + +Files: * +Copyright: 2000-2021 Double Precision Inc +License: GPL-3.0 + +License: GPL-3.0 + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". diff --git a/unicode/packaging/debian/libcourier-unicode-dev.install b/unicode/packaging/debian/libcourier-unicode-dev.install new file mode 100644 index 0000000..1175cad --- /dev/null +++ b/unicode/packaging/debian/libcourier-unicode-dev.install @@ -0,0 +1,6 @@ +usr/lib/*/*.so +usr/lib/*/*.a +usr/lib/*/*.la +usr/share/aclocal/* +usr/share/man/*/* +usr/include/* diff --git a/unicode/packaging/debian/libcourier-unicode-dev.lintian-overrides b/unicode/packaging/debian/libcourier-unicode-dev.lintian-overrides new file mode 100644 index 0000000..149c7f5 --- /dev/null +++ b/unicode/packaging/debian/libcourier-unicode-dev.lintian-overrides @@ -0,0 +1 @@ +manpage-has-errors-from-man usr/share/man/man3/* diff --git a/unicode/packaging/debian/libcourier-unicode.install b/unicode/packaging/debian/libcourier-unicode.install new file mode 100644 index 0000000..3de3b10 --- /dev/null +++ b/unicode/packaging/debian/libcourier-unicode.install @@ -0,0 +1 @@ +usr/lib/*/*.so.* diff --git a/unicode/packaging/debian/rules b/unicode/packaging/debian/rules new file mode 100755 index 0000000..1258b41 --- /dev/null +++ b/unicode/packaging/debian/rules @@ -0,0 +1,7 @@ +#!/usr/bin/make -f + +export CXX=g++%DEBGCC% +export CC=gcc%DEBGCC% + +%: + dh $@ diff --git a/unicode/packaging/debian/source/format b/unicode/packaging/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/unicode/packaging/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) |
