summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Varshavchik2022-03-13 21:10:44 -0400
committerSam Varshavchik2022-04-16 19:59:47 -0400
commit867cce4e32e7e64651887664724aa7f06566cb4b (patch)
tree8cd198902ea0c51ca955e1bc60d4756008c74818
parenta86c03a704830534340347f0f4438e32fdb8ea50 (diff)
downloadcourier-libs-867cce4e32e7e64651887664724aa7f06566cb4b.tar.bz2
all: scripts to create installable *.deb packages.
-rw-r--r--imap/.gitignore1
-rw-r--r--imap/ChangeLog5
-rw-r--r--imap/Makefile.am11
-rw-r--r--imap/README.html256
-rw-r--r--imap/common.authpam4
-rw-r--r--imap/configure.ac6
-rw-r--r--maildir/Makefile.am6
-rw-r--r--rfc822/rfc2047u.c2
-rw-r--r--sqwebmail/ChangeLog5
-rw-r--r--sqwebmail/Makefile.am12
-rw-r--r--sqwebmail/configure.ac8
-rw-r--r--sqwebmail/html/Makefile.am6
-rw-r--r--sqwebmail/html/en-us/Makefile.am2
-rw-r--r--sqwebmail/html/en-us/configure.ac2
-rw-r--r--sqwebmail/sqwebmail-common.pamconf4
-rw-r--r--tcpd/tlspasswordcache.c4
-rw-r--r--unicode/.gitignore5
-rw-r--r--unicode/ChangeLog5
-rw-r--r--unicode/Makefile.am48
-rw-r--r--unicode/README49
-rw-r--r--unicode/book.xml269
-rw-r--r--unicode/configure.ac29
-rw-r--r--unicode/courier-debuild.in54
-rw-r--r--unicode/courier-unicode.spec.in2
-rw-r--r--unicode/packaging/debian/.gitignore1
-rw-r--r--unicode/packaging/debian/changelog.in5
-rw-r--r--unicode/packaging/debian/control29
-rw-r--r--unicode/packaging/debian/copyright25
-rw-r--r--unicode/packaging/debian/libcourier-unicode-dev.install6
-rw-r--r--unicode/packaging/debian/libcourier-unicode-dev.lintian-overrides1
-rw-r--r--unicode/packaging/debian/libcourier-unicode.install1
-rwxr-xr-xunicode/packaging/debian/rules7
-rw-r--r--unicode/packaging/debian/source/format1
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 '&lt;'.</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 '&gt;' 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 '&gt;'
-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 &amp; 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
- “&amp;”, 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>&lt;N&gt;</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&#39;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 &lt;courier-unicode.h&gt;</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)