File: INSTALL

package info (click to toggle)
courier-unicode 2.4.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,572 kB
  • sloc: ansic: 83,912; sh: 4,230; cpp: 2,596; perl: 1,023; makefile: 663
file content (183 lines) | stat: -rw-r--r-- 7,100 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
   Link: Courier Unicode Library (start)
   Link: Courier Unicode Library (parent)
   Link: Courier Unicode Library (previous)
   Link: Using the library (next)

                             Installation and usage
   Prev                                                                  Next

   ══════════════════════════════════════════════════════════════════════════

Installation and usage

  RPM and DEB packages

   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.

  Note

   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.

  Note

   These packages use their own, generic, installation layout that may
   deviate slightly from the package installation conventions that's
   preferred by the distributions.

    RPM builds

   It is not necessary to unpack this tarball in order to build this tarball.

   Run “dnf install rpm-build” if it's not installed already, then:

               $ rpmbuild -ta courier-unicode-VERSION.tar.bz2


   If this fails due to any missing dependencies, install them. This builds
   the main “courier-unicode” package with runtime libraries, and the
   “courier-unicode-devel” package with link libraries and header files.

               $ rpmbuild --define 'compat 1' -ta courier-unicode-VERSION.tar.bz2


   Setting the “compat 1” flag during an RPM build produces a
   differently-named “compatibility” 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.

      Rocky/RHEL 8 notes

   Courier packages require at least C++17 support, but the default version
   of gcc does not fully support it, and a newer gcc is needed:

               $ sudo dnf install --enablerepo=crb -y gcc-toolset-14
               $ scl enable gcc-toolset-14 "rpmbuild -ta courier-unicode-VERSION.tar.bz2"


    DEB builds

   Run “apt install devscripts debhelper”, if it's not installed already.
   Create an empty directory, and copy/move the tarball into it:

               $ mkdir tmp
               $ mv courier-unicode-VERSION.tar.bz2 tmp
               $ cd tmp


   Unpack the tarball and cd into the unpacked subdirectory:

               $ tar xvf courier-unicode-VERSION.tar.bz2
               $ cd courier-unicode-VERSION


   Run the courier-debuild script, which is a wrapper for debuild, and
   forwards its parameters to it:

               $ ./courier-debuild -us -uc


  Note

   The above steps must be followed strictly. The courier-debuild script
   expects the distributed tarball in its parent directory.

   This eventually produces a deb subdirectory with .deb packages that can be
   installed with "dpkg -i":

     • The “libcourier-unicode-dev” package contains the development
       libraries and header files, for building other packages that use the
       Courier Unicode Library.

     • The “libcourier-unicode<N>” package contains the runtime library.

               $ DEBGCC=10 ./courier-debuild -us -uc


   Setting the DEBGCC environment variable selects a non-default gcc version.
   If unset, courier-debuild determines the default version of gcc. The
   resulting deb package explicitly specifies this version of gcc as a
   dependency if the source package gets rebuilt. When using pbuilder to
   build Courier packages for a different distribution it is often desirable
   to leave the version of gcc unspecified:

               $ DEBGCC=default ./courier-debuild -us -uc


   This builds this package using the default gcc version but without pegging
   the resulting package with an explicit gcc version, so that pbuilder will
   pick up the default version of gcc when building the source package on a
   different distribution.

  Note

   Courier packages have mutual dependencies. After building each one it
   should get installed in the targeted distribution before the next one gets
   built.

   The pde-local script
   (https://github.com/svarshavchik/pbuilder-dist-extras) is a convenient way
   to automate this process.

  Note

   All Courier packages should be built using the same version of gcc, on the
   same distribution.

      Ubuntu 20

   Courier packages require at least C++17 support, but the default version
   of gcc does not fully support it, and a newer gcc is needed:

               $ sudo apt install -y gcc-10 g++-10
               $ DEBGCC=10 ./courier-debuild -us -uc


  Manual

             ./configure    # Takes the default configure script options
             make
             make install DESTDIR=/tmp/courier-unicode-instimage # For example.

   The library uses a stock configure script, make and make install command
   that respects the DESTDIR setting to create an installation image in the
   directory specified by DESTDIR.

  Note

   make install 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.

  Maintainer Mode (see README in the git repository to set up)

   make rpm or make deb, as appropriate, will:

    1. Increment an internal release number.

    2. Run make dist.

    3. Proceed and build a new release, creating the native packages in the
       rpm or deb subdirectory.

    4. Execute either $HOME/bin/rpmrepos.sh or $HOME/bin/debrepos.sh. 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.

   ══════════════════════════════════════════════════════════════════════════

   Prev                                                                  Next
   Courier Unicode Library               Home               Using the library