g++ 2.8 works OK and newer egcs work well also. Nobody has tried it
on other compilers :< You will need a properly working STL as well.
- A C library with the usual POSIX functions and a BSD socket layer.
- If you OS conforms to the Single Unix Spec then you are fine:
+ If your OS conforms to the Single Unix Spec then you are fine:
http://www.opengroup.org/onlinepubs/7908799/index.html
- Refer to the Build-Depends information in debian/control for
additional requirements (some of which are Debian-specific)
** NOTICE **
The C++ global constructors do not link correctly when using non-shared
-libaries. This is probably the correct behavior of the linker, but I have
+libraries. This is probably the correct behavior of the linker, but I have
not yet had time to devise a work around for it. The correct thing to
do is add a reference to debSystem in apt-pkg/init.cc,
assert(&debSystem == 0) would be fine for instance.
much work to maintain patches for dysfunctional OSs. I highly suggest you
contact your vendor and express intrest in a conforming C library.
-That said, there are lots of finniky problems that must be delt with even
+That said, there are lots of finicky problems that must be dealt with even
between the supported OS's. Primarily the path I choose to take is to put
a shim header file in build/include that transparently adds the required
functionality. Patches to make autoconf detect these cases and generate the
* C99 integer types 'inttypes.h'
* sys/statvfs.h to convert from BSD/old-glibc statfs to SUS statvfs
* rfc2553 hostname resolution (methods/rfc*), shims to normal gethostbyname.
- The more adventerous could steal the KAME IPv6 enabled resolvers for those
+ The more adventurous could steal the KAME IPv6 enabled resolvers for those
OS's with IPv6 support but no rfc2553 (why?)
* define _XOPEN_EXTENDED_SOURCE to bring in h_errno on HP-UX
* socklen_t shim in netdb.h if the OS does not have socklen_t
-The only completely non-shimed OS is Linux with glibc2.1, glibc2.0 requires
+The only completely non-shimmed OS is Linux with glibc2.1, glibc2.0 requires
the first three shims.
Platform Notes
HP-UX
HP-UX nyquist B.10.20 C 9000/780 2016574337 32-user license
- Evil OS, does not conform very well to SUS
- 1) snprintf exists but is not prototyped, ignore spurios warnings
+ 1) snprintf exists but is not prototyped, ignore spurious warnings
2) No socklen_t
3) Requires -D_XOPEN_SOURCE_EXTENDED for h_errno
configure should fix the last two (see above)
The make system also performs dependency generation on the fly as the
compiler runs. This is extremely fast and accurate. There is however
-one failure condition that occures when a header file is erased. In
+one failure condition that occurs when a header file is erased. In
this case you should run make clean to purge the .o and .d files to
rebuild.
-The final significant deviation from normal make practicies is
-in how the build directory is managed. It is not mearly a mirror of
+The final significant deviation from normal make practices is
+in how the build directory is managed. It is not nearly a mirror of
the source directory but is logically divided in the following manner
bin/
methods/
apt-pkg/
obj/
apt-pkg/
- cmndline/
+ cmdline/
[...]
Only .o and .d files are placed in the obj/ subdirectory. The final compiled
binaries are placed in bin, published headers for inter-component linking
are placed in include/ and documentation is generated into doc/. This means
-all runnable programs are within the bin/ directory, a huge benifit for
+all runnable programs are within the bin/ directory, a huge benefit for
debugging inter-program relationships. The .so files are also placed in
bin/ for simplicity.
~~~~~~~~
Straight out of CVS you have to initialize autoconf. This requires
automake (I really don't know why) and autoconf and requires doing
- aclocal -I buidlib
+ aclocal -I buildlib
autoconf
-[Altertatively you can run make startup in the top level build dir]
+[Alternatively you can run make startup in the top level build dir]
Autoconf is configured to do some basic system probes for optional and
required functionality and generate an environment.mak and include/config.h
linking it in. To the fullest extent possible the source code should conform
to standards and not cater to broken systems.
-Autoconf will also wite a makefile into the top level of the build dir,
+Autoconf will also write a makefile into the top level of the build dir,
this simply acts as a wrapper to the main top level make in the source tree.
There is one big warning, you can't use both this make file and the
ones in the top level tree. Make is not able to resolve rules that
signed short &Score = Scores[I->ID];
- /* This is arbitary, it should be high enough to elevate an
+ /* This is arbitrary, it should be high enough to elevate an
essantial package above most other packages but low enough
to allow an obsolete essential packages to be removed by
a conflicts on a powerfull normal package (ie libc6) */
if ((A->Flags & ConfigFile) == ConfigFile)
return ReadConfigFile(*Conf,Argument);
- // Arbitary item specification
+ // Arbitrary item specification
if ((A->Flags & ArbItem) == ArbItem)
{
const char *J;
ConfigFile - Means this flag should be interprited as the name of
a config file to read in at this point in option processing.
Implies HasArg.
- ArbItem - Means the item is an arbitary configuration string of
+ ArbItem - Means the item is an arbitrary configuration string of
the form item=value, where item is passed directly
to the configuration class.
The default, if the flags are 0 is to use Boolean
return Final;
}
/*}}}*/
-// stringcmp - Arbitary string compare /*{{{*/
+// stringcmp - Arbitrary string compare /*{{{*/
// ---------------------------------------------------------------------
-/* This safely compares two non-null terminated strings of arbitary
+/* This safely compares two non-null terminated strings of arbitrary
length */
int stringcmp(const char *A,const char *AEnd,const char *B,const char *BEnd)
{
}
#endif
/*}}}*/
-// stringcasecmp - Arbitary case insensitive string compare /*{{{*/
+// stringcasecmp - Arbitrary case insensitive string compare /*{{{*/
// ---------------------------------------------------------------------
/* */
int stringcasecmp(const char *A,const char *AEnd,const char *B,const char *BEnd)
ordering.
Each of the features can be enabled in the sorting routine at an
- arbitary priority to give quite abit of control over the final unpacking
+ arbitrary priority to give quite abit of control over the final unpacking
order.
The rules listed above may never be violated and are called Critical.
# -*- make -*-
-# This installs arbitary files into a directory
+# This installs arbitrary files into a directory
# Input
# $(SOURCE) - The documents to use
echo " apt-key update - update keys using the keyring package"
echo " apt-key net-update - update keys using the network"
echo " apt-key list - list keys"
+ echo " apt-key finger - list fingerprints"
+ echo " apt-key adv - pass advanced options to gpg (download key)"
echo
}
+apt (0.7.16~exp1) UNRELEASED; urgency=low
+
+ [Luca Bruno]
+ * doc/apt-cache.8.xml:
+ - search command uses POSIX regex, and searches for virtual packages too
+ (closes: #277536)
+ * doc/offline.sgml: clarify remote and target hosts
+ (thanks to Nikolaus Schulz, closes: #175940)
+ * Fix several typos in docs, translations and debian/changelog
+ (thanks to timeless, Nicolas Bonifas and Josh Triplett,
+ closes: #368665, #298821, #411532, #431636, #461458)
+ * Document apt-key finger and adv commands
+ (thanks to Stefan Schmidt, closes: #350575)
+ * Better documentation for apt-get --option
+ (thanks to Tomas Pospisek, closes: #386579)
+ * Retitle the apt-mark.8 manpage (thanks to Justin Pryzby, closes: #471276)
+ * Better documentation on using both APT::Default-Release and
+ /etc/apt/preferences (thanks to Ingo Saitz, closes: #145575)
+
+ -- Luca Bruno <lethalman88@gmail.com> Fri, 03 Oct 2008 20:00:18 +0200
+
apt (0.7.15) unstable; urgency=low
* Upload to unstable
Daniel Burrows, closes: #429378)
* fixes in the auto-mark code (thanks to Daniel
Burrows)
- * fix FTFBFS by changing build-depends to
+ * fix FTBFS by changing build-depends to
libcurl4-gnutls-dev (closes: #428363)
* cmdline/apt-get.cc:
- fix InstallTask code when a pkgRecord ends
apt (0.7.1) experimental; urgency=low
- * ABI library name change because its build against
+ * ABI library name change because it's built against
new glibc
* implement SourceVer() in pkgRecords
(thanks to Daniel Burrows for the patch!)
apt (0.7.0) experimental; urgency=low
- * Package that contains tall the new features
+ * Package that contains all the new features
* Removed all #pragma interface/implementation
- * Branch that contains tall the new features:
+ * Branch that contains all the new features:
* translated package descriptions
* task install support
* automatic dependency removal (thanks to Daniel Burrows)
<varlistentry><term>search <replaceable>regex [ regex ... ]</replaceable></term>
<listitem><para><literal>search</literal> performs a full text search on all available package
- lists for the regex pattern given. It searches the package names and the
+ lists for the POSIX regex pattern given, see
+ <refentrytitle><command>regex</command></refentrytitle>
+ <manvolnum>7</manvolnum>.
+ It searches the package names and the
descriptions for an occurrence of the regular expression and prints out
- the package name and the short description. If <option>--full</option> is given
+ the package name and the short description, including virtual package
+ names.
+ If <option>--full</option> is given
then output identical to <literal>show</literal> is produced for each matched
package, and if <option>--names-only</option> is given then the long description
is not searched, only the package name is.</para>
<term><option>--target-release</option></term>
<term><option>--default-release</option></term>
<listitem><para>This option controls the default input to the policy engine, it creates
- a default pin at priority 990 using the specified release string. The
- preferences file may further override this setting. In short, this option
+ a default pin at priority 990 using the specified release string.
+ This overrides the general settings in <filename>/etc/apt/preferences</filename>.
+ Specifically pinned packages are not affected by the value
+ of this option. In short, this option
lets you have simple control over which distribution packages will be
retrieved from. Some common examples might be
<option>-t '2.1*'</option> or <option>-t unstable</option>.
</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>finger</term>
+ <listitem>
+ <para>
+
+ List fingerprints of trusted keys.
+
+ </para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>adv</term>
+ <listitem>
+ <para>
+
+ Pass advanced options to gpg. With adv --recv-key you can download the
+ public key.
+
+ </para>
+
</listitem>
</varlistentry>
<!-- Man page title -->
<refnamediv>
<refname>apt-mark</refname>
- <refpurpose>Utility to sort package index files</refpurpose>
+ <refpurpose>mark/unmark a package as being automatically-installed</refpurpose>
</refnamediv>
<!-- Arguments -->
.B apt
.SH DESCRIPTION
APT is a management system for software packages. For normal day to day
-package management there are several frontends available, like
+package management there are several frontends available, such as
.BR aptitude (8)
for the command line or
-.BR synaptic (8)for X-Windows. Some options are only implemented in
-.BR apt-get (8) though.
+.BR synaptic (8)
+for the X Window System. Some options are only implemented in
+.BR apt-get (8)
+though.
.SH OPTIONS
None.
.SH FILES
<term><option>--option</option></term>
<listitem><para>Set a Configuration Option; This will set an arbitrary
configuration option. The syntax is <option>-o Foo::Bar=bar</option>.
+ <option>-o</option> and <option>--option</option> can be used multiple
+ times to set different options.
</para>
</listitem>
</varlistentry>
which receives a higher priority than other distributions do by default.
The target release can be set on the <command>apt-get</command> command
line or in the APT configuration file <filename>/etc/apt/apt.conf</filename>.
+Note that this has precedence over any general priority you set in the
+<filename>/etc/apt/preferences</filename> file described later, but not
+over specifically pinned packages.
For example,
<programlisting>
<listitem><para><literal>Create a toplevel Release
file</literal>. if it does not exist already. You can do this
by running <command>apt-ftparchive release</command>
- (provided inftp apt-utils).</para></listitem>
+ (provided in package apt-utils).</para></listitem>
-->
<listitem><para><literal>上位 Release ファイルの作成</literal>
既にこれが存在しているのでなければ、
<term><option>-o</option></term>
<term><option>--option</option></term>
<!--
- <listitem><para>Set a Configuration Option; This will set an arbitary
+ <listitem><para>Set a Configuration Option; This will set an arbitrary
configuration option. The syntax is <option>-o Foo::Bar=bar</option>.
</para>
-->
is to use APT to generate a list of packages that are required and then fetch
them onto the disc using another machine with good connectivity. It is
even possible to use another Debian machine with APT or to use a completely
-different OS and a download tool like wget.
+different OS and a download tool like wget. Let <em>remote host</em> mean the
+machine downloading the packages, and <em>target host</em> the one with bad or
+no connection.
<p>
This is achieved by creatively manipulating the APT configuration file. The
The configuration file should tell APT to store its files on the disc and
to use the configuration files on the disc as well. The sources.list should
contain the proper sites that you wish to use from the remote machine, and
-the status file should be a copy of <em>/var/lib/dpkg/status</em>. Please note,
-if you are using a local archive you must use copy URIs, the syntax is identical
-to file URIs.
+the status file should be a copy of <em>/var/lib/dpkg/status</em> from the
+<em>target host</em>. Please note, if you are using a local archive you must use
+copy URIs, the syntax is identical to file URIs.
<p>
<em>apt.conf</em> must contain the necessary information to make APT use the
APT
{
/* This is not necessary if the two machines are the same arch, it tells
- the remote APT what architecture the Debian machine is */
+ the remote APT what architecture the target machine is */
Architecture "i386";
Get::Download-Only "true";
configuration file in <em>/usr/share/doc/apt/examples/apt.conf</em>.
<p>
-On the remote Debian machine the first thing to do is mount the disc and copy
+On the target machine the first thing to do is mount the disc and copy
<em>/var/lib/dpkg/status</em> to it. You will also need to create the directories
outlined in the Overview, <em>archives/partial/</em> and <em>lists/partial/</em>
Then take the disc to the remote machine and configure the sources.list.
# apt-get update
[ APT fetches the package files ]
# apt-get dist-upgrade
- [ APT fetches all the packages needed to upgrade your machine ]
+ [ APT fetches all the packages needed to upgrade the target machine ]
</example>
The dist-upgrade command can be replaced with any-other standard APT commands,
<p>
Now the disc contains all of the index files and archives needed to upgrade
-the Debian machine. Take the disc back and run:
+the target machine. Take the disc back and run:
<example>
# export APT_CONFIG="/disc/apt.conf"
" -q Disable progress indicator.\n"
" -i Show only important deps for the unmet command.\n"
" -c=? Read this configuration file\n"
-" -o=? Set an arbitary configuration option, eg -o dir::cache=/tmp\n"
+" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
"See the apt-cache(8) and apt.conf(5) manual pages for more information.\n"
#: cmdline/apt-cdrom.cc:78