--- /srv/reproducible-results/rbuild-debian/r-b-build.PpSckTt1/b1/maint-guide_1.2.53_arm64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.PpSckTt1/b2/maint-guide_1.2.53_arm64.changes ├── Files │ @@ -1,12 +1,12 @@ │ │ - a8883a629c890e5c3e99c57ebddc277b 571892 doc optional maint-guide-ca_1.2.53_all.deb │ - 62eaed93f9fb845d279966193d307461 577844 doc optional maint-guide-de_1.2.53_all.deb │ - 00a9421e3c43708c8bdfa01305f827e7 575288 doc optional maint-guide-es_1.2.53_all.deb │ - 131675eabcb1239228975612ab4d8e3a 555156 doc optional maint-guide-fr_1.2.53_all.deb │ - 04f3e11451933e71a67339b36f5e8871 552156 doc optional maint-guide-it_1.2.53_all.deb │ - 2bf7f13e75b90a68924c230d7b2f09ad 691072 doc optional maint-guide-ja_1.2.53_all.deb │ - c647fe605b10bcfdc746d5b0292f4fce 627072 doc optional maint-guide-ru_1.2.53_all.deb │ - 849ccd42606ca1d57a17ae3a0a6392f0 566164 doc optional maint-guide-vi_1.2.53_all.deb │ - c206c4706b8c37c64b819b3efc24bc31 649236 doc optional maint-guide-zh-cn_1.2.53_all.deb │ - 6d76887c2fc2b7242d03e4d79023a291 668108 doc optional maint-guide-zh-tw_1.2.53_all.deb │ - d876c4f781e06b27526a0e02139dd1a1 527424 doc optional maint-guide_1.2.53_all.deb │ + 9cb6d02709d4f9e0f3c0dee874e81ebd 574396 doc optional maint-guide-ca_1.2.53_all.deb │ + f28be0b56f4ccc90934f39158fee5520 579656 doc optional maint-guide-de_1.2.53_all.deb │ + b7a0e32a21644912bf87d5f596024dfc 578312 doc optional maint-guide-es_1.2.53_all.deb │ + 5d499c3e03220722af4befdca6e5842b 555852 doc optional maint-guide-fr_1.2.53_all.deb │ + c55730bed430be8b254e75463c9b4689 554284 doc optional maint-guide-it_1.2.53_all.deb │ + a316a4fdf9db4dfdda1d209f82cde0d9 692164 doc optional maint-guide-ja_1.2.53_all.deb │ + 0ebb8bb9d193f642860ae2e8b52e7b0c 632416 doc optional maint-guide-ru_1.2.53_all.deb │ + 9773f949a073c77e43a8e42b76463aa9 568784 doc optional maint-guide-vi_1.2.53_all.deb │ + a3dd89008eb85971e301e5702401aeec 648908 doc optional maint-guide-zh-cn_1.2.53_all.deb │ + 602ec4eb827a0e5947f4a877acb4b8cb 667856 doc optional maint-guide-zh-tw_1.2.53_all.deb │ + 946c4440b4eefa177f961f0c9acc1378 527472 doc optional maint-guide_1.2.53_all.deb ├── maint-guide-ca_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1572 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 570128 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 572632 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: maint-guide-ca │ │ │ │ Source: maint-guide │ │ │ │ Version: 1.2.53 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Osamu Aoki │ │ │ │ -Installed-Size: 940 │ │ │ │ +Installed-Size: 943 │ │ │ │ Suggests: debian-policy, developers-reference, devscripts, dh-make, doc-base, dupload | dput, fakeroot, lintian, pbuilder, quilt │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://www.debian.org/doc/devel-manuals#maint-guide │ │ │ │ Description: Debian New Maintainers' Guide (Catalan) │ │ │ │ This package contains the Debian New Maintainers' Guide. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1224 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/advanced.ca.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41164 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/advanced.ca.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38529 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/build.ca.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18991 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/checkit.ca.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 64457 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/dother.ca.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 64475 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/dother.ca.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 79818 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/dreq.ca.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 55173 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/first.ca.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24528 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/index.ca.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24567 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/index.ca.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24142 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/modify.ca.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 33793 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/start.ca.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 33659 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/update.ca.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11957 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/upload.ca.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 428049 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/maint-guide.ca.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61548 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/maint-guide.ca.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11963 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/html/upload.ca.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 429694 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/maint-guide.ca.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 62143 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ca/maint-guide.ca.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 617 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-ca.maint-guide-ca │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-ca │ │ │ ├── ./usr/share/doc/maint-guide-ca/html/advanced.ca.html │ │ │ │ ├── ./usr/share/doc/maint-guide-ca/html/advanced.ca.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Apèndix A. Advanced packaging │ │ │ │ │ + Apèndix A. Tècniques avançades │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + Cal tenir en compte que el paquet de desenvolupament ha de tenir un enllaç │ │ │ │ │ +simbòlic a la biblioteca compartida associada │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + sense │ │ │ │ │ +el número de versió │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + . P. ex.: │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ You can build a Debian library package enabling multiarch support using │ │ │ │ │ │ │ │ │ │ @@ -935,15 +944,15 @@ │ │ │ │ │ │ │ │ │ │ as follows: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ +

Comprova que el paquet de biblioteca compartida conté només els fitxers que │ │ │ │ │ +s'esperava i que el paquet «-dev» continua funcionant correctament.

│ │ │ │ │

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ path should have exactly the same file content. You must be careful of │ │ │ │ │ differences generated by the data byte order and by the compression │ │ │ │ │ algorithm.

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + Si el paquet es construeix només per a Debian o fins i tot només per fer-ho │ │ │ │ │ +servir en local, les seves fonts poden incloure tots els fitxers de │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + . Hi ha dos mètodes per construir el paquet. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ You can make the upstream tarball by excluding the │ │ │ │ │ debian/* │ │ │ │ │ files and package it as a non-native Debian │ │ │ │ │ package as in │ │ │ │ │ Secció 2.1, «Pla de treball de la construcció de paquets Debian» │ │ │ │ │ . This is the normal way, which │ │ │ │ │ some people encourage using. │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

L'alternativa és seguir el model de treball pels paquets nadius Debian.

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ - 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + Genera un paquet nadiu de fonts Debian en el format │ │ │ │ │ + 3.0 │ │ │ │ │ +(native) │ │ │ │ │ + fent servir un únic arxiu comprimit en format «tar» │ │ │ │ │ +afegint tots els arxius. │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + nom_del_paquet │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versió │ │ │ │ │ │ │ │ │ │ .tar.gz │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + nom_del_paquet │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versió │ │ │ │ │ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    Construcció de paquets binaris Debian des de paquets de fonts Debian nadius.

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + nom_del_paquet │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versió │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - arch │ │ │ │ │ + arquitectura │ │ │ │ │ │ │ │ │ │ .deb │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │ @@ -1196,242 +1206,244 @@ │ │ │ │ │ files, you can create a native Debian package │ │ │ │ │ by issuing the │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ command as follows: │ │ │ │ │

    │ │ │ │ │ -
    $ cd ~/mypackage-1.0
    │ │ │ │ │ +        
    $ cd ~/el_meu_paquet-1.0
    │ │ │ │ │  $ dh_make --native
    │ │ │ │ │

    │ │ │ │ │ Then the │ │ │ │ │ debian │ │ │ │ │ directory and its contents are created │ │ │ │ │ just like in │ │ │ │ │ Secció 2.8, «Paquet Debian no nadiu inicial.» │ │ │ │ │ . This does not create a │ │ │ │ │ tarball, since this is a native Debian package. But that is the only │ │ │ │ │ difference. The rest of the packaging activities are practically the same. │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - After execution of the │ │ │ │ │ + Després d'executar l'ordre │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + , veuràs els │ │ │ │ │ +següents fitxers en el directori superior: │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ - mypackage_1.0.tar.gz │ │ │ │ │ + el_meu_paquet_1.0.tar.gz │ │ │ │ │

      │ │ │ │ │

      │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + Aquest és el «tarball» del codi font generat a partir del directori │ │ │ │ │ + el_meu_paquet-1.0 │ │ │ │ │ + per l'ordre │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + (el seu sufix no és │ │ │ │ │ orig.tar.gz │ │ │ │ │ - .) │ │ │ │ │ + ). │ │ │ │ │

      │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ - mypackage_1.0.dsc │ │ │ │ │ + el_meu_paquet_1.0.dsc │ │ │ │ │

      │ │ │ │ │

      This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ Debian package. (There is no Debian revision.)

      │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ - mypackage_1.0_i386.deb │ │ │ │ │ + el_meu_paquet_1.0_i386.deb │ │ │ │ │

      │ │ │ │ │

      This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ (There is no Debian revision.)

      │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ - mypackage_1.0_i386.changes │ │ │ │ │ + el_meu_paquet_1.0_i386.changes │ │ │ │ │

      │ │ │ │ │ -

      This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

      │ │ │ │ │ +

      Aquest arxiu descriu els canvis realitzats en la versió actual del paquet de │ │ │ │ │ +la mateixa forma que en els paquets Debian no nadius (no hi ha el codi de │ │ │ │ │ +revisió Debian).

      │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Alternativament: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + nom_biblioteca │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ - | grep │ │ │ │ │ -SONAME │ │ │ │ │ + | grep SONAME │ │ │ │ │ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Alternativament: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + nom_biblioteca │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ - | grep │ │ │ │ │ -NEEDED │ │ │ │ │ + | grep NEEDED │ │ │ │ │ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ -libraries" │ │ │ │ │ + Consulta │ │ │ │ │ + Debian Policy Manual, 8.1 "Run-time │ │ │ │ │ +shared libraries" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Consulta │ │ │ │ │ Debian Policy Manual, 8.1.1 │ │ │ │ │ "ldconfig" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Consulta │ │ │ │ │ Debian Policy Manual, 8.3 "Static │ │ │ │ │ libraries" │ │ │ │ │ - and │ │ │ │ │ + i │ │ │ │ │ Debian Policy Manual, 8.4 │ │ │ │ │ "Development files" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ + Consulta │ │ │ │ │ + Debian wiki │ │ │ │ │ +ReleaseGoals/LAFileRemoval │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Consulta │ │ │ │ │ Debian wiki RpathIssue │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + Els canvis ABI incompatibles amb versions anteriors, normalment requereixen │ │ │ │ │ +l'actualització del «SONAME» (nom lògic) de la biblioteca i del paquet de la │ │ │ │ │ +biblioteca compartida a d'altres nous. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + Per a biblioteques C++ i altres casos pels quals el maneig individual de │ │ │ │ │ +símbols és difícil, es millor guiar-se per │ │ │ │ │ + Debian Policy Manual, 8.6.4 "The shlibs │ │ │ │ │ +system" │ │ │ │ │ + . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + Totes les versions anteriors dels paquets Debian estan disponibles a │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + . La revisió Debian del │ │ │ │ │ +paquet segueix a la versió per facilitar el manteniment de versions │ │ │ │ │ +anteriors («backport») del paquet: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ - and │ │ │ │ │ + i │ │ │ │ │ 1.2 │ │ │ │ │ << │ │ │ │ │ 1.2-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.2-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + La revisió Debian es deriva de la versió per facilitar el manteniment de │ │ │ │ │ +versions anteriors («backport») del paquet: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ -library ABI changes" │ │ │ │ │ + Consulta │ │ │ │ │ + Debian Policy Manual, 8.6.2 │ │ │ │ │ +"Shared library ABI changes" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + Alternativament, pots afegir els arguments │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ and │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + a │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + . Fitxa't que │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + especifica el directori predeterminat per instal·lar programes executables │ │ │ │ │ +que són engegats per altres programes més que no pas pels usuaris. El valor │ │ │ │ │ +predeterminat per «Autotools» és │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + però a │ │ │ │ │ +Debian és │ │ │ │ │ /usr/lib/ │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-ca/html/upload.ca.html │ │ │ │ ├── ./usr/share/doc/maint-guide-ca/html/upload.ca.html │ │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ │ Capítol 9. Enviar el paquet. │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-ca/maint-guide.ca.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -33,21 +33,21 @@ │ │ │ │ │ WRITTEN BY │ │ │ │ │ │ │ │ │ │ Josip Rodin, │ │ │ │ │ Osamu Aoki, i │ │ │ │ │ Innocent De │ │ │ │ │ Marchi │ │ │ │ │ │ │ │ │ │ -25 de gener de 2025 │ │ │ │ │ +28 de febrer de 2026 │ │ │ │ │ │ │ │ │ │ Traducció al català │ │ │ │ │ │ │ │ │ │ SIGNATURE │ │ │ │ │ │ │ │ │ │ -25 de gener de 2025 │ │ │ │ │ +28 de febrer de 2026 │ │ │ │ │ │ │ │ │ │ REVISION HISTORY │ │ │ │ │ NUMBER │ │ │ │ │ │ │ │ │ │ DATE │ │ │ │ │ │ │ │ │ │ DESCRIPTION │ │ │ │ │ @@ -357,27 +357,27 @@ │ │ │ │ │ │ │ │ │ │ Incloure el fitxer orig.tar.gz per a la transferència del paquet al repositori. . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ Enviaments discontinuats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A Tècniques avançades │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ -A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ +A.1 Biblioteques compartides. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ +A.2 Gestionant debian/nom_del_paquet.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ +A.3 Multi-arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ +A.4 Construint un paquet de biblioteca compartit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ +A.5 Paquet nadiu Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -1 / 60 │ │ │ │ │ +1 / 61 │ │ │ │ │ │ │ │ │ │ Capítol 1 │ │ │ │ │ │ │ │ │ │ Començant correctament. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Aquest document descriurà com es construeix un paquet Debian GNU/Linux per a un usuari comú Debian i per a futurs desenvolupadors, fent servir un llenguatge informal i incloent molts exemples. Un antic dit romà diu Longum iter est per preaecepta, │ │ │ │ │ breve et efficax per exempla! («És un llarg camí amb les normes, però curt i eficient amb els exemples»). │ │ │ │ │ @@ -410,15 +410,15 @@ │ │ │ │ │ 1En el document s’assumeix que fas servir la versió jessie. Si vols fer servir aquest document amb versions anteriors (incloses sistemes Ubuntu i d’altres), │ │ │ │ │ cal que tenguis instal·lats (com a mínim) els paquets dpkg i debhelper . │ │ │ │ │ 2Podràs aprendre les operacions bàsiques dels sistemes Debian a Debian Reference (http://www.debian.org/doc/manuals/debian-reference/) . També │ │ │ │ │ s’expliquen alguns aspectes de la programació en sistemes Unix. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -2 / 60 │ │ │ │ │ +2 / 61 │ │ │ │ │ │ │ │ │ │ – Cal estar motivat per fer les coses per tu mateix. │ │ │ │ │ • La cooperació amistosa és la força motriu. │ │ │ │ │ – La teva contribució no ha de sobre-esforçar als altres. │ │ │ │ │ – La teva contribució és valuosa només quan els altres t’ho agraeixen. │ │ │ │ │ • Debian no és la teva escola on automàticament reps atenció dels docents. │ │ │ │ │ – Cal ésser capaç d’aprendre moltes coses per un mateix. │ │ │ │ │ @@ -453,15 +453,15 @@ │ │ │ │ │ • Debian New Member site (https://nm.debian.org/) (document oficial) │ │ │ │ │ • Debian Mentors FAQ (http://wiki.debian.org/DebianMentorsFaq) (documentació complementària) │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ 1.2 │ │ │ │ │ │ │ │ │ │ -3 / 60 │ │ │ │ │ +3 / 61 │ │ │ │ │ │ │ │ │ │ Programes necessaris per treballar. │ │ │ │ │ │ │ │ │ │ Abans de començar, cal instal·lar els paquets necessaris per a la construcció de paquets. A la llista de paquets no estan inclosos │ │ │ │ │ paquets amb prioritat «essencial» o «requerit» (essential i required) degut a què segurament ja estan instal·lats. │ │ │ │ │ The following packages come with the standard Debian installation, so you probably have them already (along with any additional │ │ │ │ │ packages they depend on). Still, you should check them with aptitude show package or with dpkg -s package. │ │ │ │ │ @@ -501,15 +501,15 @@ │ │ │ │ │ Source) bugs. (see pbuilder(8) and pdebuild(1)) │ │ │ │ │ • perl - Perl és un dels llenguatges interpretats usats amb més freqüència per als guions (o «scripts») en els sistemes Un*x. │ │ │ │ │ Tant és així que es fa servir l’expressió «navalla suïssa d’Unix» per fer referència en aquest llenguatge (llegeix perl(1)). │ │ │ │ │ 3Hi ha d’altres paquets semblants pel que fa a la seva funcionalitat però més específics, com és ara dh-make-perl, dh-make-php, etc. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -4 / 60 │ │ │ │ │ +4 / 61 │ │ │ │ │ │ │ │ │ │ • python - Python és una altre llenguatge interpretat per a fer guions a Debian degut a la combinació de funcionalitat i clara │ │ │ │ │ sintaxi (consulta python(1)). │ │ │ │ │ • quilt - aquest paquet permet aplicar els pegats i fer el seguiment dels canvis realitzats. Fa les modificacions segons l’ordre │ │ │ │ │ establert i, amb ell, és possible aplicar («push»), desfer («pop») i actualitzar les modificacions fàcilment (llegeix quilt(1) i │ │ │ │ │ /usr/share/doc/quilt/quilt.pdf.gz). │ │ │ │ │ • xutils-dev - alguns programes, si més no els escrits per a X11, fan servir aquest paquet per generar fitxers Makefile │ │ │ │ │ @@ -545,15 +545,15 @@ │ │ │ │ │ │ │ │ │ │ Before you decide to ask your question in some public place, please read this fine documentation: │ │ │ │ │ • els arxius de /usr/share/doc/package per a cada paquet │ │ │ │ │ • el contingut de man command per a cada una de les ordres │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -5 / 60 │ │ │ │ │ +5 / 61 │ │ │ │ │ │ │ │ │ │ • el contingut de info command per a cada una de les ordres │ │ │ │ │ • els continguts de l’arxiu de la llista de correu debian-mentors@lists.debian.org (http://lists.debian.org/debian-mentors/) │ │ │ │ │ • el contingut de l’arxiu de la llista de correu debian-devel@lists.debian.org (http://lists.debian.org/debian-devel/) │ │ │ │ │ Considera fer servir el motor de cerca web mitjançant la inclusió eficaç de cadenes de recerca, com ara site:lists.debian.org │ │ │ │ │ per limitar el domini. │ │ │ │ │ Començar a treballar en un paquet petit és una bona opció per aprendre els detalls de la creació de paquets. Inspeccionar els │ │ │ │ │ @@ -576,15 +576,15 @@ │ │ │ │ │ will start to use your package, and if you made some critical error you’ll get mailbombed by numerous angry Debian users…Just │ │ │ │ │ kidding. :-) │ │ │ │ │ Relaxa’t i estiguis preparat per rebre informes d’errades, perquè el camí és llarg per aconseguir el compliment de las Normes de │ │ │ │ │ Debian (una vegada més llegeix la documentació real per a més detalls). Bona sort! │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -6 / 60 │ │ │ │ │ +6 / 61 │ │ │ │ │ │ │ │ │ │ Capítol 2 │ │ │ │ │ │ │ │ │ │ Primers passos. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Començarem la construcció del teu paquet (o encara millor, pots adoptar un paquet ja existent). │ │ │ │ │ │ │ │ │ │ @@ -613,15 +613,15 @@ │ │ │ │ │ 1Per a paquets no nadius Debian construïts amb l’antic format 1.0, es fa servir nom_del_paquet_versió-revisió.diff.gz │ │ │ │ │ 2Consulta 5.6.1 ”Source” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source) , 5.6.7 ”Package” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Package) , i 5.6.12 ”Version” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version) . El codi de l’arquitectura del paquet segueix el Debian Policy Manual, 5.6.8 ”Architecture” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-fArchitecture) i s’assigna automàticament en el procés de construcció del paquet. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ 2.2 │ │ │ │ │ │ │ │ │ │ -7 / 60 │ │ │ │ │ +7 / 61 │ │ │ │ │ │ │ │ │ │ Seleccionar el programa. │ │ │ │ │ │ │ │ │ │ Probablement ja tens clar quin paquet vols construir. Primer cal que comprovis si ja està inclòs en el repositori fent servir: │ │ │ │ │ • l’ordre aptitude. │ │ │ │ │ • la pàgina web paquets Debian (http://www.debian.org/distrib/packages) . │ │ │ │ │ • pàgina web Debian Package Tracker (https://tracker.debian.org/) (Sistema de seguiment de paquets de Debian) │ │ │ │ │ @@ -656,15 +656,15 @@ │ │ │ │ │ reportbug. If someone’s already on it, contact them if you feel you need to. If not —find another interesting program that │ │ │ │ │ nobody is maintaining. │ │ │ │ │ 3See Debian Developer’s Reference 5.9.5 ”Adopting a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#adopting) . │ │ │ │ │ ⁴Tot i així, hi ha nous programes que són d’interès per a Debian. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -8 / 60 │ │ │ │ │ +8 / 61 │ │ │ │ │ │ │ │ │ │ • Cal que el programa tengui una llicència: │ │ │ │ │ – Per a paquets de la secció main cal que el programa s’ajusti a les Directrius de Debian per al programari (DFSG) lliure │ │ │ │ │ (consulta DFSG (http://www.debian.org/social_contract#guidelines) ) i no ha de precisar la instal·lació de cap altre paquet │ │ │ │ │ que no pertanyi a la secció main en la compilació o execució com requereix la directiva de Debian («Debian Policy»). │ │ │ │ │ – Per a paquets de la secció contrib, la llicència cal que compleixi tots els requisits de la DFSG però pot precisar la instal· │ │ │ │ │ lació d’altres paquets que no siguin de la secció main en la compilació o execució. │ │ │ │ │ @@ -701,15 +701,15 @@ │ │ │ │ │ – qualsevol paquet amb guions del desenvolupador no trivials │ │ │ │ │ Construir paquets molt complexes no és molt difícil, però requereix tenir més coneixements. Hauràs de buscar una orientació │ │ │ │ │ específica per a cada funció complexa. Per exemple, alguns llenguatges tenen els seus propis documents de normes: │ │ │ │ │ • Perl policy (http://www.debian.org/doc/packaging-manuals/perl-policy/) │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -9 / 60 │ │ │ │ │ +9 / 61 │ │ │ │ │ │ │ │ │ │ • Normes per a Python (http://www.debian.org/doc/packaging-manuals/python-policy/) │ │ │ │ │ • Normes per a Java (http://www.debian.org/doc/packaging-manuals/java-policy/) │ │ │ │ │ There is another old Latin saying: fabricando fit faber (practice makes perfect). It is highly recommended to practice and experiment with all the steps of Debian packaging with simple packages while reading this tutorial. A trivial upstream tarball, │ │ │ │ │ hello-sh-1.0.tar.gz, created as follows may offer a good starting point:⁵ │ │ │ │ │ $ mkdir -p hello-sh/hello-sh-1.0; cd hello-sh/hello-sh-1.0 │ │ │ │ │ $ cat > hello <>~/.bashrc < │ │ │ │ │ 4 Source: http://sourceforge.net/projects/gentoo/files/ │ │ │ │ │ @@ -1495,15 +1495,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -- Josip Rodin │ │ │ │ │ │ │ │ │ │ Mon, 22 Mar 2010 00:37:31 +0100 │ │ │ │ │ │ │ │ │ │ - 25 / 60 │ │ │ │ │ + 25 / 61 │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ (S’han afegit els números de les línies). │ │ │ │ │ Line 1 is the package name, version, distribution, and urgency. The name must match the source package name; distribution │ │ │ │ │ should be unstable, and urgency should be set to medium unless there is any particular reason for other values. │ │ │ │ │ Lines 3-5 are a log entry, where you document changes made in this package revision (not the upstream changes —there is a │ │ │ │ │ @@ -1560,15 +1560,15 @@ │ │ │ │ │ 10Si fas servir l’ordre dch -r per fer efectiu aquest darrer canvi, assegura’t que deses el fitxer changelog des del editor. │ │ │ │ │ 11You can start learning how to write a Makefile from Debian Reference, 12.2. ”Make” (http://www.debian.org/doc/manuals/debian-reference/ch12#_make) . The full documentation is available as http://www.gnu.org/software/make/manual/html_node/index.html or as the make-doc package in the │ │ │ │ │ non-free archive area. │ │ │ │ │ 12Debian Policy Manual, 4.9 ”Main building script: debian/rules” (http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules) explica els detalls. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -26 / 60 │ │ │ │ │ +26 / 61 │ │ │ │ │ │ │ │ │ │ • objectiu build-indep (obligatori) : per compilar les fonts en documents amb format independents de l’arquitectura en │ │ │ │ │ l’arbre de directoris de compilació. │ │ │ │ │ • install (opcional): fa la instal·lació en l’estructura de directoris temporal en el directori debian dels fitxers que constitueixen els paquets binaris. Si hi ha un objectiu binary*, dependrà d’aquest. │ │ │ │ │ • binary (obligatori): per a la construcció de cada un dels paquets binaris (combinat amb els objectius binary-arch i │ │ │ │ │ binary-indep) 13. │ │ │ │ │ • binary-arch (obligatori): per a la construcció de paquets dependents de l’arquitectura (els que tenen el camp Architecture: │ │ │ │ │ @@ -1619,15 +1619,15 @@ │ │ │ │ │ 1⁶This uses the new debhelper v7+ features. Its design concepts are explained in Not Your Grandpa’s Debhelper (http://joey.kitenet.net/talks/debhelper/debhelper-slides.pdf) presented at DebConf9 by the debhelper upstream. Under lenny, dh_make created a much more complicated rules file with explicit │ │ │ │ │ rules and many dh_* scripts listed for each one, most of which are now unnecessary (and show the package’s age). The new dh command is simpler and frees us │ │ │ │ │ from doing the routine work ”manually”. You still have full power to customize the process with override_dh_* targets. See Secció 4.4.3. It is based only │ │ │ │ │ on the debhelper package and does not obfuscate the package building process as the cdbs package tends to do. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -27 / 60 │ │ │ │ │ +27 / 61 │ │ │ │ │ │ │ │ │ │ és un guió que executa les seqüències necessàries d’ordres dh_* segons els seus paràmetres com es descriu a continuació 1⁷: │ │ │ │ │ • debian/rules clean executa dh clean, que al seu torn executa el següent: │ │ │ │ │ dh_testdir │ │ │ │ │ dh_auto_clean │ │ │ │ │ dh_clean │ │ │ │ │ │ │ │ │ │ @@ -1681,15 +1681,15 @@ │ │ │ │ │ 1⁷You can verify the actual sequences of dh_* programs invoked for a given target without really running them by invoking dh target --no-act │ │ │ │ │ or debian/rules -- ’target --no-act’. │ │ │ │ │ 1⁸El següent exemple assumeix que el teu fitxer debian/compat té un valor igual o major a 9 per tal d’evitar invocar qualsevol ordre «python» de suport │ │ │ │ │ automàticament. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -28 / 60 │ │ │ │ │ +28 / 61 │ │ │ │ │ │ │ │ │ │ dh_md5sums │ │ │ │ │ dh_builddeb │ │ │ │ │ │ │ │ │ │ • fakeroot debian/rules binary-arch runs fakeroot dh binary-arch, which in turn runs the same sequence as fakeroot dh binary but with the -a option appended for each command. │ │ │ │ │ • fakeroot debian/rules binary-indep runs fakeroot dh binary-indep, which in turn runs almost the same sequence as fakeroot dh binary but excluding dh_strip, dh_makeshlibs, and dh_shlibdeps with the -i option │ │ │ │ │ appended for each remaining command. │ │ │ │ │ @@ -1726,15 +1726,15 @@ │ │ │ │ │ 21Mira el primer objectiu disponible a l’arxiu Makefile com distclean, realclean o clean a l’arxiu Makefile i l’executa. │ │ │ │ │ 22En realitat executa el primer dels objectius test o check del fitxer Makefile. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ 4.4.3 │ │ │ │ │ │ │ │ │ │ -29 / 60 │ │ │ │ │ +29 / 61 │ │ │ │ │ │ │ │ │ │ Personalització del fitxer rules. │ │ │ │ │ │ │ │ │ │ Pots fer molts canvis per adaptar el fitxer rules construït per l’ordre dh. │ │ │ │ │ L’ordre dh $@ permet les següents adaptacions 23: │ │ │ │ │ • Afegir funcionalitat per a l’ordre dh_python2 (la millor opció per a Python) 2⁴. │ │ │ │ │ – Afegeix el paquet python en el camp Build-Depends. │ │ │ │ │ @@ -1770,15 +1770,15 @@ │ │ │ │ │ – Així s’actualitza i restaura config.sub i config.guess. │ │ │ │ │ 23Si un paquet instal·la el fitxer /usr/share/perl5/Debian/Debhelper/Sequence/nom_arxiu.pm pots activar la funció adaptada amb dh │ │ │ │ │ $@ --with nom_arxiu. │ │ │ │ │ 2⁴És preferible fer servir l’ordre dh_python2 abans que l’ordre dh_pysupport o dh_pycentral. No facis servir l’ordre dh_python. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -30 / 60 │ │ │ │ │ +30 / 61 │ │ │ │ │ │ │ │ │ │ • Afegir funcionalitat per a les ordres dh_autoreconf i dh_autoreconf_clean. │ │ │ │ │ – Afegeix el paquet dh-autoreconf en el camp Build-Depends. │ │ │ │ │ – Fes servir h $@ --with autoreconf en el seu lloc. │ │ │ │ │ – Així s’actualitzen els fitxers del sistema de compilació GNU i els restaura després de la compilació. │ │ │ │ │ • Afegir funcionalitat per a l’ordre dh_girepository. │ │ │ │ │ – Afegeix el paquet gobject-introspection en el camp Build-Depends. │ │ │ │ │ @@ -1823,15 +1823,15 @@ │ │ │ │ │ Si el fitxer Makefile de les fonts de gentoo té un objectiu test i desitges que no s’executi en la construcció del paquet, pots │ │ │ │ │ fer servir l’objectiu override_dh_auto_test sense ordres per tal de que no es faci res. │ │ │ │ │ 2⁵En lenny, quan calia canviar un guió dh_* calia trobar la línia adequada en el fitxer rules i canviar-la. Ara és suficient afegir un objectiu. │ │ │ │ │ 2⁶dh_auto_build sense arguments executarà el primer objectiu del fitxer Makefile. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -31 / 60 │ │ │ │ │ +31 / 61 │ │ │ │ │ │ │ │ │ │ override_dh_auto_test: │ │ │ │ │ │ │ │ │ │ Si el paquet gentoo inclou el poc freqüent arxiu de canvis de l’autor amb el nom FIXES, dh_installchangelogs no en farà la │ │ │ │ │ instal·lació (és l’opció predeterminada). L’ordre dh_installchangelogs requereix l’argument FIXES per tal d’instal·lar-lo 2⁷. │ │ │ │ │ override_dh_installchangelogs: │ │ │ │ │ dh_installchangelogs FIXES │ │ │ │ │ @@ -1840,15 +1840,15 @@ │ │ │ │ │ i de manera que siguin completament independents entre ells (sempre que sigui possible). │ │ │ │ │ │ │ │ │ │ 2⁷Els fitxers debian/changelog i debian/NEWS sempre s’instal·len automàticament. També es busca el fitxer de canvis de l’autor canviant el nom a │ │ │ │ │ minúscules i per la seva coincidència amb changelog, changes, changelog.txt, i changes.txt. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -32 / 60 │ │ │ │ │ +32 / 61 │ │ │ │ │ │ │ │ │ │ Capítol 5 │ │ │ │ │ │ │ │ │ │ Altres fitxers del directori debian. │ │ │ │ │ The dh_make command had major updates since this old document was written. So some parts of this document aren’t applicable │ │ │ │ │ any more. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ @@ -1875,15 +1875,15 @@ │ │ │ │ │ README.Debian (LLEGEIX-ME.debian) │ │ │ │ │ │ │ │ │ │ Qualsevol detall extra o discrepància entre el programa original i la seva versió Debian cal documentar-la en aquest arxiu. │ │ │ │ │ dh_make en genera un predeterminat, que és el següent: │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -33 / 60 │ │ │ │ │ +33 / 61 │ │ │ │ │ │ │ │ │ │ gentoo for Debian │ │ │ │ │ ---------------- │ │ │ │ │ -- Josip Rodin , Wed, 11 Nov 1998 21:02:14 +0100 │ │ │ │ │ │ │ │ │ │ Atès que no tenim res per explicar, eliminarem el fitxer. Consulta dh_installdocs(1). │ │ │ │ │ │ │ │ │ │ @@ -1926,15 +1926,15 @@ │ │ │ │ │ establir la realització de tasques cada hora, dia, setmana o mes o qualsevol altre període de temps. Els noms dels fitxers són: │ │ │ │ │ • nom_del_paquet.cron.hourly - instal·lats com /etc/cron.hourly/nom_del_paquet: s’executen cada hora. │ │ │ │ │ • nom_del_paquet.cron.daily - instal·lats com /etc/cron.daily/nom_del_paquet: s’executen cada dia, habitualment a primera hora del matí. │ │ │ │ │ 1Consulta dpkg(1) i Debian Policy Manual, ”D.2.5 Conffiles” (http://www.debian.org/doc/debian-policy/ap-pkg-controlfields.html#s-pkg-f-Conffiles) . │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -34 / 60 │ │ │ │ │ +34 / 61 │ │ │ │ │ │ │ │ │ │ • nom_del_paquet.cron.weekly - instal·lats com /etc/cron.weekly/nom_del_paquet: s’executen cada setmana, │ │ │ │ │ habitualment en el matí del diumenge. │ │ │ │ │ • nom_del_paquet.cron.hourly - instal·lats com /etc/cron.hourly/nom_del_paquet: s’executen cada hora. │ │ │ │ │ • nom_del_paquet.cron.d - instal·lats com /etc/cron.d/nom_del_paquet: per a qualsevol altre període de temps. │ │ │ │ │ Els fitxers tenen el format de guions shell. Amb l’excepció dels fitxers nom_del_paquet.cron.d que s’ajustaran al format │ │ │ │ │ descrit a crontab(5). │ │ │ │ │ @@ -1978,15 +1978,15 @@ │ │ │ │ │ Aquest arxiu especifica els noms dels fitxers de documentació que dh_installdocs(1) instal·larà en el directori temporal. │ │ │ │ │ L’opció predeterminada inclourà tots els fitxers existents en els directoris del nivell més alt del codi amb els noms BUGS, │ │ │ │ │ README*, TODO etc. │ │ │ │ │ També n’inclouré alguns d’altres per a gentoo: │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -35 / 60 │ │ │ │ │ +35 / 61 │ │ │ │ │ │ │ │ │ │ BUGS │ │ │ │ │ CONFIG-CHANGES │ │ │ │ │ CREDITS │ │ │ │ │ ONEWS │ │ │ │ │ README │ │ │ │ │ README.gtkrc │ │ │ │ │ @@ -2033,15 +2033,15 @@ │ │ │ │ │ destinations into this install file. They are installed by dh_install(1).2 You should first check that there is not a more specific │ │ │ │ │ tool to use. For example, documents should be in the docs file and not in this one. │ │ │ │ │ En el fitxer install hi haurà una línia per a cada un dels fitxers a instal·lar, amb el seu nom (sempre relatiu al directori superior │ │ │ │ │ de la compilació) i després d’un espai, el directori d’instal·lació (relatiu al directori d’instal·lació). En el cas que no s’instal·li el │ │ │ │ │ fitxer binari src/arxiu_binari del gentoo, hauries d’escriure el següent: │ │ │ │ │ 2Aquesta ordre reemplaça l’ordre obsoleta dh_movefiles(1) que feia servir el fitxer files. │ │ │ │ │ │ │ │ │ │ - 36 / 60 │ │ │ │ │ + 36 / 61 │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ src/arxiu_binari usr/bin │ │ │ │ │ │ │ │ │ │ Quan s’instal·li el paquet, hi haurà una ordre executable /usr/bin/arxiu_binari. │ │ │ │ │ En el fitxer install pots escriure el nom del fitxer sense el directori d’instal·lació sempre que la ruta relativa de directori no │ │ │ │ │ @@ -2100,15 +2100,15 @@ │ │ │ │ │ Ordres d’usuari │ │ │ │ │ Crides del sistema │ │ │ │ │ │ │ │ │ │ Notes │ │ │ │ │ Ordres o guions executables │ │ │ │ │ Funcions proporcionades pel nucli │ │ │ │ │ │ │ │ │ │ - 37 / 60 │ │ │ │ │ + 37 / 61 │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ Secció │ │ │ │ │ 3 │ │ │ │ │ 4 │ │ │ │ │ 5 │ │ │ │ │ @@ -2177,15 +2177,15 @@ │ │ │ │ │ 3Cal tenir present que el marcador de posició de pàgines de manual help2man reclamarà que la informació més detallada estigui disponible en el sistema │ │ │ │ │ d’informació. Si l’ordre no troba una pàgina info, caldrà que editis manualment la pàgina de manual construïda per help2man. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ 5.16 │ │ │ │ │ │ │ │ │ │ -38 / 60 │ │ │ │ │ +38 / 61 │ │ │ │ │ │ │ │ │ │ Fitxer nom_del_paquet.manpages │ │ │ │ │ │ │ │ │ │ Si el teu paquet té pàgines de manual, les instal·laràs amb dh_installman(1) llistant els fitxers corresponents en el fitxer nom_ │ │ │ │ │ del_paquet.manpages. │ │ │ │ │ │ │ │ │ │ Per instal·lar el fitxer docs/gentoo.1 del paquet gentoo com el seu manual, escriu en el fitxer gentoo.manpages el │ │ │ │ │ @@ -2236,15 +2236,15 @@ │ │ │ │ │ ⁴Encara que faig servir les expressions bash abreujades {pre,post}{inst,rm} pels noms d’aquests arxius, has de fer servir la sintaxi pura POSIX per │ │ │ │ │ a aquests guions del desenvolupador per mantenir la compatibilitat el sistema «shell» dash. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ 5.21 │ │ │ │ │ │ │ │ │ │ -39 / 60 │ │ │ │ │ +39 / 61 │ │ │ │ │ │ │ │ │ │ Fitxer watch. │ │ │ │ │ │ │ │ │ │ The watch file format is documented in the uscan(1) manpage. The watch file configures the uscan program (in the devscripts │ │ │ │ │ package) to watch the site where you originally got the source. This is also used by the Debian Package Tracker (https://tracker.debian.org/) service. │ │ │ │ │ Aquest és el seu contingut: │ │ │ │ │ # watch control file for uscan │ │ │ │ │ @@ -2291,15 +2291,15 @@ │ │ │ │ │ dpkg-source(1)). │ │ │ │ │ ⁵Consulta DebSrc3.0 (http://wiki.debian.org/Projects/DebSrc3.0) on es resumeix la informació sobre els formats 3.0 (quilt) i 3.0 (native). │ │ │ │ │ ⁶Actualment, el nou format també permet treballar amb més d’un arxiu «tar» amb les fonts originals i altres sistemes de compressió. Aquestes funcions no │ │ │ │ │ s’expliquen en aquest document. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -40 / 60 │ │ │ │ │ +40 / 61 │ │ │ │ │ │ │ │ │ │ unapply-patches │ │ │ │ │ abort-on-upstream-changes │ │ │ │ │ │ │ │ │ │ 5.24 │ │ │ │ │ │ │ │ │ │ Fitxer source/options │ │ │ │ │ @@ -2347,15 +2347,15 @@ │ │ │ │ │ ⁷Es fan servir altres mètodes d’aplicació de pegats a Debian. El sistema quilt és el recomanat. Altres sistemes són dpatch, dbs, cdbs, etc. La majoria d’ells │ │ │ │ │ conserven els pegats en fitxers en el directori debian/patches/*. │ │ │ │ │ ⁸Si has demanat a un patrocinador que afegeixi el paquet al repositori Debian, aquest sistema de separació i documentació dels canvia és molt important per │ │ │ │ │ facilitar la revisió del paquet per part del patrocinador. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -41 / 60 │ │ │ │ │ +41 / 61 │ │ │ │ │ │ │ │ │ │ Capítol 6 │ │ │ │ │ │ │ │ │ │ Construir el paquet. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Ara hauríem d’estar preparats per construir el paquet. │ │ │ │ │ │ │ │ │ │ @@ -2383,15 +2383,15 @@ │ │ │ │ │ Quan acabi el procés de construcció d’un paquet no nadiu Debian (p.ex.gentoo), veuràs els següents fitxers en el directori │ │ │ │ │ superior al directori de treball (~/gentoo/): │ │ │ │ │ 1Aquesta clau GPG ha de ser signada per un desenvolupador de Debian per connectar-se a la web de confiança i cal registrar-la a l’anell de claus de Debian │ │ │ │ │ (http://keyring.debian.org) . Això permet que els paquets siguin acceptats a l’arxiu de Debian. Consulta Creating a new GPG key (http://keyring.debian.org/creating-key.html) i Debian Wiki on Keysigning (http://wiki.debian.org/Keysigning ) . │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -42 / 60 │ │ │ │ │ +42 / 61 │ │ │ │ │ │ │ │ │ │ • gentoo_0.9.12.orig.tar.gz │ │ │ │ │ This is the original upstream source code tarball, merely renamed to the above so that it adheres to the Debian standard. Note │ │ │ │ │ that this was created initially by the command dh_make -f ../gentoo-0.9.12.tar.gz. │ │ │ │ │ • gentoo_0.9.12-1.dsc │ │ │ │ │ Aquest és un sumari dels continguts del codi font. Aquest arxiu es genera amb la informació del fitxer control i es fa servir │ │ │ │ │ quan es descomprimeixen les fonts amb dpkg-source(1). │ │ │ │ │ @@ -2435,15 +2435,15 @@ │ │ │ │ │ 2Pots evitar l’aplicació automàtica dels pegats per quilt en els paquets amb el format 3.0 (quilt) al final de l’extracció amb l’opció --skip-patches. │ │ │ │ │ També pots optar per desfer les modificacions, una vegada acabada l’extracció, executant dquilt pop -a. │ │ │ │ │ 3El funcionament del sistema actual de compilació automàtica és més complicat del que s’explica en aquest document. Molts dels detalls del seu funcionament │ │ │ │ │ no són objectiu d’aquest document. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -43 / 60 │ │ │ │ │ +43 / 61 │ │ │ │ │ │ │ │ │ │ A continuació s’executa la següent ordre en el directori de les fonts: │ │ │ │ │ $ dpkg-buildpackage -B │ │ │ │ │ │ │ │ │ │ D’aquest manera, s’executa tot el necessari per a la construcció del paquet binari depenent de l’arquitectura per a cada arquitectura. │ │ │ │ │ Fa el següent: │ │ │ │ │ • neteja l’arbre del codi (debian/rules clean). │ │ │ │ │ @@ -2484,15 +2484,15 @@ │ │ │ │ │ (errades critiques per a la publicació o «release critical») ⁶. │ │ │ │ │ És possible personalitzar el funcionament del paquet pbuilder en els següents aspectes: │ │ │ │ │ ⁴A diferència a com funciona el paquet pbuilder (que s’explicarà més endavant), l’entorn chroot del paquet sbuild fet servir pel sistema automàtic no │ │ │ │ │ té una instal·lació mínima de paquets del sistema i pot deixar molts de paquets instal·lats. │ │ │ │ │ ⁵Com que el paquet pbuilder està en evolució, comprova la configuració actual consultant la documentació. │ │ │ │ │ ⁶Consulta http://buildd.debian.org/ per a més informació sobre el sistema de construcció automatitzada de paquets Debian. │ │ │ │ │ │ │ │ │ │ - 44 / 60 │ │ │ │ │ + 44 / 61 │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ • permet que el teu usuari tengui permís d’escriptura en el directori /var/cache/pbuilder/result. │ │ │ │ │ • genera un directori, p. ex. /var/cache/pbuilder/hooks, amb permís d’escriptura per al teu usuari. En aquest directori │ │ │ │ │ posaràs els guions «hook». │ │ │ │ │ • Estableix els fitxers ~/.pbuilderrc o /etc/pbuilderrc amb el següent contingut: │ │ │ │ │ @@ -2548,15 +2548,15 @@ │ │ │ │ │ │ │ │ │ │ Tens exemples a /usr/share/doc/ │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ 6.5 │ │ │ │ │ │ │ │ │ │ -45 / 60 │ │ │ │ │ +45 / 61 │ │ │ │ │ │ │ │ │ │ git-buildpackage command and similar │ │ │ │ │ │ │ │ │ │ Si l’autor original fa servir un sistema de gestió de versions per al codi (VCS) ⁹ pots considerar fer-ho servir. Així facilites la │ │ │ │ │ coordinació i la selecció dels pegats per a les fonts. Debian disposa de diversos paquets de guions especialitzats en cada tipus de │ │ │ │ │ VCS: │ │ │ │ │ • git-buildpackage: conjunt per a la compilació de paquets en repositoris «Git». │ │ │ │ │ @@ -2600,15 +2600,15 @@ │ │ │ │ │ 13Environment variables that are normally configured to proper values are not set by this method. Never create real packages to be uploaded using this quick │ │ │ │ │ method. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ 6.7 │ │ │ │ │ │ │ │ │ │ -46 / 60 │ │ │ │ │ +46 / 61 │ │ │ │ │ │ │ │ │ │ Jerarquia d’ordres │ │ │ │ │ │ │ │ │ │ A continuació teniu un resum ràpid de la jerarquia de les ordres de construcció de paquets. Hi ha diversos procediments per fer │ │ │ │ │ el mateix. │ │ │ │ │ • debian/rules = guió del responsable del paquet per a la compilació │ │ │ │ │ • dpkg-buildpackage = nucli de l’eina de compilació de paquets │ │ │ │ │ @@ -2621,15 +2621,15 @@ │ │ │ │ │ • gbp buildpackge = pbuilder + dpkg-buildpackage + gbp │ │ │ │ │ Tot i que fer servir ordres d’alt nivell com a gbp buildpackge i pbuilder assegura un entorn de compilació de paquets perfecte, │ │ │ │ │ és important entendre com funcionen les ordres de baix nivell com les executades per debian/rules i dpkg-buildpackage │ │ │ │ │ en aquest entorn. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -47 / 60 │ │ │ │ │ +47 / 61 │ │ │ │ │ │ │ │ │ │ Capítol 7 │ │ │ │ │ │ │ │ │ │ Com comprovar el teu paquet per trobar errors. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Cal que coneguis els procediments per comprovar el paquet i localitzar les errades abans d’enviar-lo als repositoris públics. │ │ │ │ │ Provar el paquet en una màquina distinta de la que has fet servir en la construcció és una magnífica idea. Cal que posis atenció │ │ │ │ │ @@ -2666,15 +2666,15 @@ │ │ │ │ │ │ │ │ │ │ Ja s’ha comentat que els guions del desenvolupador (els fitxers preinst, prerm, postinst i postrm) són complicats, │ │ │ │ │ excepte si s’utilitzen els generats pel paquet debhelper. No es recomana la seva utilització als desenvolupadors principiants │ │ │ │ │ (consulta Secció 5.18). │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -48 / 60 │ │ │ │ │ +48 / 61 │ │ │ │ │ │ │ │ │ │ Si el paquet utilitza guions del desenvolupador modificats, has de comprovar el seu funcionament en la instal·lació, desinstal· │ │ │ │ │ lació, eliminació i actualització. Alguns dels problemes en aquests guions del desenvolupador només es detecten en l’eliminació │ │ │ │ │ o desinstal·lació. Fes servir l’ordre dpkg per fer la comprovació: │ │ │ │ │ $ sudo dpkg -r gentoo │ │ │ │ │ $ sudo dpkg -P gentoo │ │ │ │ │ $ sudo dpkg -i gentoo_versió-revisió_i386.deb │ │ │ │ │ @@ -2719,15 +2719,15 @@ │ │ │ │ │ 1No és necessari afegir a lintian l’opció -i -I --show-overrides si l’has inclòs en la configuració a /etc/devscripts.conf o ~/ │ │ │ │ │ .devscripts com s’ha explicat a Secció 6.3. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ 7.5 │ │ │ │ │ │ │ │ │ │ -49 / 60 │ │ │ │ │ +49 / 61 │ │ │ │ │ │ │ │ │ │ L’ordre debc. │ │ │ │ │ │ │ │ │ │ Pots veure una llista dels fitxers del paquet binari Debian executant l’ordre debc(1) així: │ │ │ │ │ $ debc nom_del_paquet.changes │ │ │ │ │ │ │ │ │ │ 7.6 │ │ │ │ │ @@ -2762,15 +2762,15 @@ │ │ │ │ │ gestor de fitxers com mc(1), que permet visualitzar el contingut del paquet *.deb, i dels fitxers *.udeb, *.debian.tar.gz, │ │ │ │ │ *.diff.gz i *.orig.tar.gz │ │ │ │ │ Comprova que no hi hagi fitxers innecessaris o de tamany zero, tant en el binari com en el paquet font. De vegades, hi ha coses │ │ │ │ │ que no es varen netejar adequadament: caldrà ajustar el fitxer rules per arreglar això. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -50 / 60 │ │ │ │ │ +50 / 61 │ │ │ │ │ │ │ │ │ │ Capítol 8 │ │ │ │ │ │ │ │ │ │ Actualitzar el paquet. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Després del llançament del paquet, és possible que hagis d’actualitzar-ho aviat. │ │ │ │ │ │ │ │ │ │ @@ -2800,15 +2800,15 @@ │ │ │ │ │ de Debian quan el paquet sigui acceptat en el repositori. │ │ │ │ │ • Repeteix els passos anteriors per a cada una de les modificacions realitzades actualitzant l’arxiu Debian changelog amb dch │ │ │ │ │ si és necessari. │ │ │ │ │ 1Per escriure la data i hora en el format correcte, cal fer servir LANG=C date -R. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -51 / 60 │ │ │ │ │ +51 / 61 │ │ │ │ │ │ │ │ │ │ • Repeteix el que vas fer a Secció 6.1 i Capítol 7. │ │ │ │ │ • Una vegada satisfet, canvia el valor de la distribució en el fitxer changelog de UNRELEASED al valor de la distribució │ │ │ │ │ objectiu unstable (o bé experimental).2 │ │ │ │ │ • Upload the package as in Capítol 9. The difference is that this time, the original source archive won’t be included, as it hasn’t │ │ │ │ │ been changed and it already exists in the Debian archive. │ │ │ │ │ One tricky case can occur when you make a local package, to experiment with the packaging before uploading the normal version │ │ │ │ │ @@ -2857,15 +2857,15 @@ │ │ │ │ │ │ │ │ │ │ executant │ │ │ │ │ │ │ │ │ │ zcat │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -52 / 60 │ │ │ │ │ +52 / 61 │ │ │ │ │ │ │ │ │ │ • Si un dels pegats aplicats està integrat en les fonts originals: │ │ │ │ │ – executa dquilt delete per eliminar-lo. │ │ │ │ │ • Si un dels pegats entra en conflicte amb els canvis realitzats per l’autor en les fonts originals: │ │ │ │ │ – executa dquilt push -f per aplicar els pegats de la versió anterior per forçar els rebuigs (tendràs la informació dels │ │ │ │ │ rebuigs en els fitxers truc.rej). │ │ │ │ │ – Edita els fitxers truc.rej manualment per saber l’efecte que es pretén amb truc.rej. │ │ │ │ │ @@ -2910,15 +2910,15 @@ │ │ │ │ │ ⁴Si l’ordre uscan descarrega les fonts però no executa l’ordre uupdate, cal modificar l’arxiu debian/watch afegint debian uupdate al final de l’URL │ │ │ │ │ del fitxer. │ │ │ │ │ ⁵Si la persona que patrocina el teu paquet o altres desenvolupadors fan objeccions a l’actualització del format del paquet, no val la pena entossudir-se a │ │ │ │ │ argumentar a favor. Hi ha altres coses més importants que atendre. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -53 / 60 │ │ │ │ │ +53 / 61 │ │ │ │ │ │ │ │ │ │ – The Common Debian Build System (CDBS), FOSDEM 2009 (http://meetings-archive.debian.net/pub/debian-meetings/2009/fosdem/slides/The_Common_Debian_Build_System_CDBS/) │ │ │ │ │ • Si treballes amb un paquet construït amb el format 1.0 sense l’arxiu nom_del_paquet.diff.gz, pots actualitzar-lo a la │ │ │ │ │ nova versió 3.0 (native) afegint el fitxer debian/source/format amb la línia 3.0 (native). Copia els altres │ │ │ │ │ fitxers del directori debian/*. │ │ │ │ │ • Si treballes amb un paquet construït amb el format 1.0 amb el fitxer nom_del_paquet.diff.gz, pots actualitzar-lo al │ │ │ │ │ nou format 3.0 (native) afegint el fitxer debian/source/format amb la línia 3.0 (native). Copia els altres │ │ │ │ │ @@ -2961,15 +2961,15 @@ │ │ │ │ │ • Comprova el contingut del fitxer .changes per assegurar-te que envies el paquet a la distribució correcta, que els informes │ │ │ │ │ d’errors que es tanquen amb la nova versió estan llistats en el camp Closes, que el contingut dels camps Maintainer i │ │ │ │ │ Changed-By són correctes, que has signat el fitxer amb la teva clau GPG, etc. │ │ │ │ │ ⁶Pots fragmentar el fitxer nom_del_paquet.diff en diversos fitxers de pegats fent servir l’ordre splitdiff. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -54 / 60 │ │ │ │ │ +54 / 61 │ │ │ │ │ │ │ │ │ │ Capítol 9 │ │ │ │ │ │ │ │ │ │ Enviar el paquet. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Debian now requires source-only uploads for normal upload. So this page is outdated. │ │ │ │ │ Ara que has comprovat el teu paquet en profunditat, pots publicar-ho a un arxiu públic per compartir-ho. │ │ │ │ │ @@ -3002,15 +3002,15 @@ │ │ │ │ │ un àrea de càrrega a les persones que no són DD. Pots construir un arxiu equivalent tu mateix fent servir les eines que figuren a http://wiki.debian.org/HowToSetupADebianRepository. Així, aquesta secció també és útil per a les persones que no són DD.. │ │ │ │ │ 3Consulta Secció 1.1. │ │ │ │ │ ⁴See Debian Developer’s Reference 5.6, Üploading a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#upload) . │ │ │ │ │ ⁵Consulta ftp://ftp.upload.debian.org/pub/UploadQueue/README. També pots fer servir l’ordre dcut del paquet dput. │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -55 / 60 │ │ │ │ │ +55 / 61 │ │ │ │ │ │ │ │ │ │ -----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.10 (GNU/Linux) │ │ │ │ │ [...] │ │ │ │ │ -----END PGP SIGNATURE----- │ │ │ │ │ │ │ │ │ │ 9.2 │ │ │ │ │ │ │ │ │ │ @@ -3044,99 +3044,109 @@ │ │ │ │ │ $ debuild -v1.2 │ │ │ │ │ │ │ │ │ │ Per a l’ordre pdebuild: │ │ │ │ │ $ pdebuild --debbuildopts ”-v1.2” │ │ │ │ │ │ │ │ │ │ Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -56 / 60 │ │ │ │ │ +56 / 61 │ │ │ │ │ │ │ │ │ │ Apèndix A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +Tècniques avançades │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +Pot ésser necessari editar manualment els fitxers de plantilla per a la construcció del paquet generats per l’ordre dh_make per │ │ │ │ │ +seguir els detalls tractats en aquest capítol. La nova ordre debmake gestiona millor aquestes etapes de la construcció de paquets. │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +Biblioteques compartides. │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ +Abans de construir paquets de biblioteques compartides, has de llegir les següents referències bàsicques en detall: │ │ │ │ │ • Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ • Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ • Debian Policy Manual, 10.2 L.Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -• Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -• Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -• Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -• Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ +Heus aquí alguns consells simplistes per a que pugis començar. │ │ │ │ │ +• Les biblioteques compartides son fitxers objecte en format ELF que contenen codi compilat. │ │ │ │ │ +• Les biblioteques compartides es distribueixen com a fitxers *.so (ni fitxers *.a ni *.la). │ │ │ │ │ +• Les biblioteques compartides s’utilitzen principalment per compartir codi comú entre diversos executables fent servir l’ordre │ │ │ │ │ +ld. │ │ │ │ │ +• Les biblioteques compartides, a vegades es fan servir per proporcionar complements («plugins») a un executable mitjançant el │ │ │ │ │ +procediment dlopen. │ │ │ │ │ • Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ to them from the linked executables. │ │ │ │ │ -• The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -• The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -• The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -• libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ │ │ │ │ │ - Guia del nou desenvolupador de Debian │ │ │ │ │ +• El SONAME (el nom lògic) de la biblioteca compartida libnom_biblioteca.so.1: objdump -p libnom_biblioteca.so.1 │ │ │ │ │ +| grep SONAME 1 │ │ │ │ │ +• El «SONAME» (nom lògic) d’una biblioteca compartida en general coincideix amb el nom del fitxer de la biblioteca (però no │ │ │ │ │ +sempre). │ │ │ │ │ +1Alternativament: readelf -d libnom_biblioteca.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ -57 / 60 │ │ │ │ │ + Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -• The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ +57 / 61 │ │ │ │ │ + │ │ │ │ │ +• El «SONAME» (nom lògic) de les biblioteques compartides enllaçades a /usr/bin/foo: objdump -p /usr/bin/foo │ │ │ │ │ +| grep NEEDED 2 │ │ │ │ │ +• libnom_biblioteca1: el paquet de biblioteca de la biblioteca compartida libnom_biblioteca.so.1 amb la versió ABI │ │ │ │ │ +del nom lògic («SONAME») 1.3 │ │ │ │ │ +• Els guions del desenvolupador del paquet de la biblioteca han d’executar ldconfig en les circumstàncies específiques per generar │ │ │ │ │ +els enllaços simbòlics necessaris per a «SONAME» (nom lògic).⁴ │ │ │ │ │ • libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ • libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ • Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ • Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -• Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +• Encara que és una mica antiquat i és només una referència secundària, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) encara pot ésser útil. │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +Gestionant debian/nom_del_paquet.symbols │ │ │ │ │ │ │ │ │ │ When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ • Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ • dh_makeshlibs(1) │ │ │ │ │ • dpkg-gensymbols(1) │ │ │ │ │ • dpkg-shlibdeps(1) │ │ │ │ │ • deb-symbols(5) │ │ │ │ │ Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ libfoo1.symbols file: │ │ │ │ │ -• Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -– If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -– If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1.symbols │ │ │ │ │ -in its source package, use it again. │ │ │ │ │ +• Prepara l’estructura de directoris Debian de les fonts fent servir el fitxer original de l’autor libnom_biblioteca-1.3. │ │ │ │ │ +tar.gz │ │ │ │ │ +– Si és la primera vegada que es construeix un paquet de libnom_biblioteca1, genera el fitxer debian/libnom_ │ │ │ │ │ +biblioteca1.symbols amb el contingut buit. │ │ │ │ │ +– Si la versió 1.2 anterior de l’autor es va empaquetar en el paquet libnom_biblioteca1 amb el fitxer debian/ │ │ │ │ │ +libnom_biblioteca1.symbols apropiat en el seu paquet font, fes-lo servir una altra vegada. │ │ │ │ │ +2Alternativament: readelf -d libnom_biblioteca.so.1 | grep NEEDED │ │ │ │ │ +3Consulta Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +⁴Consulta Debian Policy Manual, 8.1.1 l.ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ +⁵Consulta Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) i Debian Policy │ │ │ │ │ +Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ +⁶Consulta Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +⁷Consulta Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +⁸Els canvis ABI incompatibles amb versions anteriors, normalment requereixen l’actualització del «SONAME» (nom lògic) de la biblioteca i del paquet de │ │ │ │ │ +la biblioteca compartida a d’altres nous. │ │ │ │ │ +⁹Per a biblioteques C++ i altres casos pels quals el maneig individual de símbols és difícil, es millor guiar-se per Debian Policy Manual, 8.6.4 ”The shlibs │ │ │ │ │ +system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) . │ │ │ │ │ + │ │ │ │ │ + Guia del nou desenvolupador de Debian │ │ │ │ │ + │ │ │ │ │ +58 / 61 │ │ │ │ │ + │ │ │ │ │ – If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 l.ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ - │ │ │ │ │ - Guia del nou desenvolupador de Debian │ │ │ │ │ - │ │ │ │ │ -58 / 60 │ │ │ │ │ │ │ │ │ │ • Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ libfoo1a and you should start over again.) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ @@ -3158,169 +3168,193 @@ │ │ │ │ │ • If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ binary package of the shared library. 11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -• Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +• Construir paquets per distribuir amb eines com debuild i pdebuild. │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ +A més a més dels exemples anteriors, cal comprovar la compatibilitat ABI amb més atenció i actualitzar manualment les versions │ │ │ │ │ +dels símbols (si és necessari). 12 │ │ │ │ │ +Encara que només és una referència secundària, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) i │ │ │ │ │ +els seus enllaços a altres pàgines web pot ésser d’utilitat. │ │ │ │ │ +10Totes les versions anteriors dels paquets Debian estan disponibles a http://snapshot.debian.org/ (http://snapshot.debian.org/) . La revisió Debian del paquet │ │ │ │ │ +segueix a la versió per facilitar el manteniment de versions anteriors («backport») del paquet: 1.1 << 1.1-1~bpo70+1 << 1.1-1 i 1.2 << 1.2-1~bpo70+1 │ │ │ │ │ +<< 1.2-1 │ │ │ │ │ +11La revisió Debian es deriva de la versió per facilitar el manteniment de versions anteriors («backport») del paquet: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12Consulta Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ │ │ │ │ │ -A.3 │ │ │ │ │ + 59 / 61 │ │ │ │ │ │ │ │ │ │ -Multiarch │ │ │ │ │ +Guia del nou desenvolupador de Debian │ │ │ │ │ │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages (particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in detail: │ │ │ │ │ -• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +A.3 │ │ │ │ │ │ │ │ │ │ - 59 / 60 │ │ │ │ │ +Multi-arquitectura │ │ │ │ │ │ │ │ │ │ -Guia del nou desenvolupador de Debian │ │ │ │ │ - │ │ │ │ │ -Old path │ │ │ │ │ +La nova funció multi-arquitectura introduïda a la versió «wheezy» de Debian integra el suport per a la instal·lació en més d’una │ │ │ │ │ +arquitectura dels paquets binaris (particularment a i386<->amd64, però també amb altres combinacions) en dpkg i apt. És │ │ │ │ │ +convenient que llegeixis les següents referències detalladament: │ │ │ │ │ +• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (original) │ │ │ │ │ +• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (estat a Debian) │ │ │ │ │ +S’utilitzen triplets com i386-linux-gnu i x86_64-linux-gnu per als directoris d’instal·lació de les biblioteques compartides. El triplet actual s’estableix de forma dinàmica al valor $(DEB_HOST_MULTIARCH) per dpkg-architecture(1) a cada │ │ │ │ │ +compilació. Per exemple, el directori d’instal·lació de les biblioteques multi-arquitectura es pot canviar de la següent manera.13 │ │ │ │ │ +Directori antic │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +directori multi-arquitectura i386 │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +directori multi-arquitectura amd64 │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -• a library source libfoo-1.tar.gz │ │ │ │ │ -• a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -• a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ -Package │ │ │ │ │ -libfoo1 │ │ │ │ │ -libfoo1-dbg │ │ │ │ │ -libfoo-dev │ │ │ │ │ -libfoo-tools │ │ │ │ │ -libfoo-doc │ │ │ │ │ -bar │ │ │ │ │ -bar-doc │ │ │ │ │ -baz │ │ │ │ │ +• el codi font de la biblioteca libnom_biblioteca-1.tar.gz │ │ │ │ │ +• el codi font d’una ordre bar-1.tar.gz escrit en un llenguatge compilat │ │ │ │ │ +• el codi font d’una ordre baz-1.tar.gz escrit en un llenguatge interpretat │ │ │ │ │ │ │ │ │ │ -Architecture: │ │ │ │ │ -any │ │ │ │ │ +libnom_del_paquet1 any │ │ │ │ │ + │ │ │ │ │ +Multiarquitectura: │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libnom_del_paquet1-dbg │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libnom_del_paquet-dev │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libnom_del_paquet-tools │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +foreign │ │ │ │ │ + │ │ │ │ │ +libnom_del_paquet-doc │ │ │ │ │ all │ │ │ │ │ +bar │ │ │ │ │ any │ │ │ │ │ +bar-doc │ │ │ │ │ all │ │ │ │ │ +baz │ │ │ │ │ all │ │ │ │ │ │ │ │ │ │ -Multi-Arch: │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ +Paquet │ │ │ │ │ + │ │ │ │ │ +Arquitectura │ │ │ │ │ + │ │ │ │ │ +Contingut del paquet │ │ │ │ │ +la biblioteca compartida, és co-instal·lable │ │ │ │ │ +els símbols de depuració de la biblioteca compartida, són │ │ │ │ │ +co-instal·lables │ │ │ │ │ +els fitxers de capçalera i d’altres d’un biblioteca compilada, │ │ │ │ │ +co-instal·lable │ │ │ │ │ +els programes de suport en temps d’execució, no són │ │ │ │ │ +co-instal·lables │ │ │ │ │ +els fitxers de documentació de la biblioteca compartida │ │ │ │ │ +els fitxers del programa compilat, no són co-instal·lables │ │ │ │ │ +els fitxers de documentació del programa │ │ │ │ │ +els fitxers del programa interpretat │ │ │ │ │ │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +Cal tenir en compte que el paquet de desenvolupament ha de tenir un enllaç simbòlic a la biblioteca compartida associada sense │ │ │ │ │ +el número de versió. P. ex.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +Construint un paquet de biblioteca compartit │ │ │ │ │ │ │ │ │ │ You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -• Update debian/control. │ │ │ │ │ +• Actualitza debian/control. │ │ │ │ │ – Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -– Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -– Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ +– Afegeix Pre-Depends: ${misc:Pre-Depends} per a cada paquet binari de biblioteca compartida. │ │ │ │ │ +13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ + │ │ │ │ │ + Guia del nou desenvolupador de Debian │ │ │ │ │ + │ │ │ │ │ +60 / 61 │ │ │ │ │ + │ │ │ │ │ +– Afegeix el camp Multi-Arch: per a cada secció de paquet binari. │ │ │ │ │ • Set debian/compat to ”10”. │ │ │ │ │ -• Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ +• Canvia el directori habitual /usr/lib/ al directori multi-arquitectura /usr/lib/$(DEB_HOST_MULTIARCH)/ per a │ │ │ │ │ +tots els guions de la construcció del paquet. │ │ │ │ │ – Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -– Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ +– Canvia /usr/lib/ per /usr/lib/$(DEB_HOST_MULTIARCH)/ a debian/rules. │ │ │ │ │ – If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -– Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ +– Canvia cada repetició de /usr/lib/ per /usr/lib/*/ als fitxers debian/nom_del_paquet.install │ │ │ │ │ │ │ │ │ │ – Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ - │ │ │ │ │ - Guia del nou desenvolupador de Debian │ │ │ │ │ - │ │ │ │ │ -60 / 60 │ │ │ │ │ - │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ -debian/foo.links.in > debian/foo.links │ │ │ │ │ +debian/nom_del_paquet.links.in > debian/nom_del_paquet.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ +Comprova que el paquet de biblioteca compartida conté només els fitxers que s’esperava i que el paquet «-dev» continua funcionant correctament. │ │ │ │ │ All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ │ │ │ │ │ A.5 │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ +Paquet nadiu Debian │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ +Si el paquet es construeix només per a Debian o fins i tot només per fer-ho servir en local, les seves fonts poden incloure tots els │ │ │ │ │ +fitxers de debian/*. Hi ha dos mètodes per construir el paquet. │ │ │ │ │ You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in │ │ │ │ │ Secció 2.1. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -• Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ -– package_version.tar.gz │ │ │ │ │ -– package_version.dsc │ │ │ │ │ -• Build Debian binary packages from the native Debian source package. │ │ │ │ │ -– package_version_arch.deb │ │ │ │ │ +L’alternativa és seguir el model de treball pels paquets nadius Debian. │ │ │ │ │ +• Genera un paquet nadiu de fonts Debian en el format 3.0 (native) fent servir un únic arxiu comprimit en format «tar» │ │ │ │ │ +afegint tots els arxius. │ │ │ │ │ +– nom_del_paquet_versió.tar.gz │ │ │ │ │ +– nom_del_paquet_versió.dsc │ │ │ │ │ +• Construcció de paquets binaris Debian des de paquets de fonts Debian nadius. │ │ │ │ │ +– nom_del_paquet_versió_arquitectura.deb │ │ │ │ │ For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ package by issuing the dh_make command as follows: │ │ │ │ │ -$ cd ~/mypackage-1.0 │ │ │ │ │ +$ cd ~/el_meu_paquet-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ +1⁴Alternativament, │ │ │ │ │ +pots │ │ │ │ │ +afegir │ │ │ │ │ +els │ │ │ │ │ +arguments │ │ │ │ │ +--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ +and │ │ │ │ │ +--libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) a ./configure. Fitxa’t que --libexecdir especifica el directori predeterminat per instal·lar programes executables que són engegats per altres programes més que no pas pels usuaris. El valor predeterminat per «Autotools» és │ │ │ │ │ +/usr/libexec/ però a Debian és /usr/lib/. │ │ │ │ │ + │ │ │ │ │ + Guia del nou desenvolupador de Debian │ │ │ │ │ + │ │ │ │ │ +61 / 61 │ │ │ │ │ │ │ │ │ │ Then the debian directory and its contents are created just like in Secció 2.8. This does not create a tarball, since this is a native │ │ │ │ │ Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ -• mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ -• mypackage_1.0.dsc │ │ │ │ │ +Després d’executar l’ordre dpkg-buildpackage, veuràs els següents fitxers en el directori superior: │ │ │ │ │ +• el_meu_paquet_1.0.tar.gz │ │ │ │ │ +Aquest és el «tarball» del codi font generat a partir del directori el_meu_paquet-1.0 per l’ordre dpkg-source (el seu sufix │ │ │ │ │ +no és orig.tar.gz). │ │ │ │ │ +• el_meu_paquet_1.0.dsc │ │ │ │ │ This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -• mypackage_1.0_i386.deb │ │ │ │ │ +• el_meu_paquet_1.0_i386.deb │ │ │ │ │ This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -• mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no Debian │ │ │ │ │ -revision.) │ │ │ │ │ +• el_meu_paquet_1.0_i386.changes │ │ │ │ │ +Aquest arxiu descriu els canvis realitzats en la versió actual del paquet de la mateixa forma que en els paquets Debian no nadius │ │ │ │ │ +(no hi ha el codi de revisió Debian). │ │ │ ├── ./usr/share/doc/maint-guide-ca/maint-guide.ca.txt.gz │ │ │ │ ├── maint-guide.ca.txt │ │ │ │ │ @@ -133,20 +133,20 @@ │ │ │ │ │ 8.5. Conversió a UTF-8 │ │ │ │ │ 8.6. Recordatori per actualitzar paquets. │ │ │ │ │ 9. Enviar el paquet. │ │ │ │ │ 9.1. Enviar el paquet al repositori de Debian. │ │ │ │ │ 9.2. Incloure el fitxer orig.tar.gz per a la transferència del │ │ │ │ │ paquet al repositori. │ │ │ │ │ 9.3. Enviaments discontinuats. │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ - A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ +A. Tècniques avançades │ │ │ │ │ + A.1. Biblioteques compartides. │ │ │ │ │ + A.2. Gestionant debian/nom_del_paquet.symbols │ │ │ │ │ + A.3. Multi-arquitectura │ │ │ │ │ + A.4. Construint un paquet de biblioteca compartit │ │ │ │ │ + A.5. Paquet nadiu Debian │ │ │ │ │ │ │ │ │ │ Capítol 1. Començant correctament. │ │ │ │ │ │ │ │ │ │ The rewrite of this tutorial document with updated contents and │ │ │ │ │     more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers. Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -2996,15 +2996,15 @@ │ │ │ │ │ Debian. Has de ser acurat amb no molestar amb ells. │ │ │ │ │ │ │ │ │ │ 5.19. Fitxer nom_del_paquet.symbols. │ │ │ │ │ │ │ │ │ │ Packaging of a library is not easy for a novice maintainer and │ │ │ │ │     should be avoided. Having said it, if your package has libraries, │ │ │ │ │ you should have debian/package.symbols files. See Secció A.2, │ │ │ │ │ - «Managing debian/package.symbols». │ │ │ │ │ + «Gestionant debian/nom_del_paquet.symbols». │ │ │ │ │ │ │ │ │ │ 5.20. Fitxer TODO. │ │ │ │ │ │ │ │ │ │     L'ordre dh_installdocs(1) instal·la aquest arxiu. │ │ │ │ │ │ │ │ │ │ 5.21. Fitxer watch. │ │ │ │ │ │ │ │ │ │ @@ -4295,91 +4295,99 @@ │ │ │ │ │ │ │ │ │ │     ^[85] See Debian Developer's Reference 5.6, "Uploading a │ │ │ │ │ package". │ │ │ │ │ │ │ │ │ │     ^[86] Consulta ftp://ftp.upload.debian.org/pub/UploadQueue/ │ │ │ │ │ README. També pots fer servir l'ordre dcut del paquet dput. │ │ │ │ │ │ │ │ │ │ -Apèndix A. Advanced packaging │ │ │ │ │ +Apèndix A. Tècniques avançades │ │ │ │ │ │ │ │ │ │ The rewrite of this tutorial document with updated contents and │ │ │ │ │     more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers. Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ │ │ │ │ │ Here are some hints and pointers for advanced packaging topics │ │ │ │ │     that you are most likely to deal with. You are strongly advised │ │ │ │ │ to read all the references suggested here. │ │ │ │ │ │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ + Pot ésser necessari editar manualment els fitxers de plantilla │ │ │ │ │ + per a la construcció del paquet generats per l'ordre dh_make per │ │ │ │ │ +    seguir els detalls tractats en aquest capítol. La nova ordre │ │ │ │ │ + debmake gestiona millor aquestes etapes de la construcció de │ │ │ │ │ + paquets. │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +A.1. Biblioteques compartides. │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +    Abans de construir paquets de biblioteques compartides, has de │ │ │ │ │ + llegir les següents referències bàsicques en detall: │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ │ │ │ │ │     * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    Heus aquí alguns consells simplistes per a que pugis començar. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * Les biblioteques compartides son fitxers objecte en format │ │ │ │ │ + ELF que contenen codi compilat. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * Les biblioteques compartides es distribueixen com a fitxers │ │ │ │ │ + *.so (ni fitxers *.a ni *.la). │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * Les biblioteques compartides s'utilitzen principalment per │ │ │ │ │ + compartir codi comú entre diversos executables fent servir │ │ │ │ │ + l'ordre ld. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * Les biblioteques compartides, a vegades es fan servir per │ │ │ │ │ + proporcionar complements («plugins») a un executable │ │ │ │ │ + mitjançant el procediment dlopen. │ │ │ │ │ │ │ │ │ │ * Shared libraries export symbols, which represent compiled │ │ │ │ │ objects such as variables, functions, and classes; and enable │ │ │ │ │ access to them from the linked executables. │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ - │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ - │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ - objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ - │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ - │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * El SONAME (el nom lògic) de la biblioteca compartida lib │ │ │ │ │ + nom_biblioteca.so.1: objdump -p libnom_biblioteca.so.1 | grep │ │ │ │ │ + SONAME ^[87] │ │ │ │ │ + │ │ │ │ │ + * El «SONAME» (nom lògic) d'una biblioteca compartida en │ │ │ │ │ + general coincideix amb el nom del fitxer de la biblioteca │ │ │ │ │ + (però no sempre). │ │ │ │ │ + │ │ │ │ │ +    * El «SONAME» (nom lògic) de les biblioteques compartides │ │ │ │ │ + enllaçades a /usr/bin/foo: objdump -p /usr/bin/foo | grep │ │ │ │ │ + NEEDED ^[88] │ │ │ │ │ + │ │ │ │ │ + * libnom_biblioteca1: el paquet de biblioteca de la biblioteca │ │ │ │ │ + compartida libnom_biblioteca.so.1 amb la versió ABI del nom │ │ │ │ │ + lògic («SONAME») 1.^[89] │ │ │ │ │ + │ │ │ │ │ + * Els guions del desenvolupador del paquet de la biblioteca han │ │ │ │ │ + d'executar ldconfig en les circumstàncies específiques per │ │ │ │ │ + generar els enllaços simbòlics necessaris per a «SONAME» (nom │ │ │ │ │ + lògic).^[90] │ │ │ │ │ │ │ │ │ │ * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ debugging symbols for the shared library package libfoo1. │ │ │ │ │ │ │ │ │ │ * libfoo-dev: the development package that contains the header │ │ │ │ │ files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ │ │ │ │ │ * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ in general.^[92] │ │ │ │ │ │ │ │ │ │ * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * Encara que és una mica antiquat i és només una referència │ │ │ │ │ + secundària, Debian Library Packaging Guide encara pot ésser │ │ │ │ │ + útil. │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. Gestionant debian/nom_del_paquet.symbols │ │ │ │ │ │ │ │ │ │ When you package a shared library, you should create a debian/ │ │ │ │ │ package.symbols file to manage the minimal version associated │ │ │ │ │     with each symbol for backward-compatible ABI changes under the │ │ │ │ │ same SONAME of the library for the same shared library package │ │ │ │ │ name.^[94] You should read the following primary references in │ │ │ │ │ detail: │ │ │ │ │ @@ -4394,23 +4402,25 @@ │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ Here is a rough example of how to create the libfoo1 package from │ │ │ │ │     the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ file: │ │ │ │ │ │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ + * Prepara l'estructura de directoris Debian de les fonts fent │ │ │ │ │ + servir el fitxer original de l'autor libnom_biblioteca-1.3.tar.gz │ │ │ │ │ │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ + + Si és la primera vegada que es construeix un paquet de │ │ │ │ │ + libnom_biblioteca1, genera el fitxer debian/ │ │ │ │ │ + libnom_biblioteca1.symbols amb el contingut buit. │ │ │ │ │ + │ │ │ │ │ + + Si la versió 1.2 anterior de l'autor es va empaquetar en el │ │ │ │ │ + paquet libnom_biblioteca1 amb el fitxer debian/ │ │ │ │ │ + libnom_biblioteca1.symbols apropiat en el seu paquet font, │ │ │ │ │ + fes-lo servir una altra vegada. │ │ │ │ │ │ │ │ │ │ + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ all available binary packages of the same shared library │ │ │ │ │ package name containing the same SONAME of the library, for │ │ │ │ │ example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ │ │ │ │ │ @@ -4448,255 +4458,288 @@ │ │ │ │ │ package of the shared library. ^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * Construir paquets per distribuir amb eines com debuild i pdebuild │ │ │ │ │ + . │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ - │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ - │ │ │ │ │ -A.3. Multiarch │ │ │ │ │ - │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ + A més a més dels exemples anteriors, cal comprovar la │ │ │ │ │ +    compatibilitat ABI amb més atenció i actualitzar manualment les │ │ │ │ │ + versions dels símbols (si és necessari). ^[98] │ │ │ │ │ + │ │ │ │ │ + Encara que només és una referència secundària, Debian wiki │ │ │ │ │ +    UsingSymbolsFiles i els seus enllaços a altres pàgines web pot │ │ │ │ │ + ésser d'utilitat. │ │ │ │ │ + │ │ │ │ │ +A.3. Multi-arquitectura │ │ │ │ │ + │ │ │ │ │ + La nova funció multi-arquitectura introduïda a la versió «wheezy» │ │ │ │ │ + de Debian integra el suport per a la instal·lació en més d'una │ │ │ │ │ +    arquitectura dels paquets binaris (particularment a i386<->amd64, │ │ │ │ │ + però també amb altres combinacions) en dpkg i apt. És convenient │ │ │ │ │ + que llegeixis les següents referències detalladament: │ │ │ │ │ │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ + * Ubuntu wiki MultiarchSpec (original) │ │ │ │ │     │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ + * Debian wiki Multiarch/Implementation (estat a Debian) │ │ │ │ │ │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ + S'utilitzen triplets com i386-linux-gnu i x86_64-linux-gnu per │ │ │ │ │ + als directoris d'instal·lació de les biblioteques compartides. El │ │ │ │ │ +    triplet actual s'estableix de forma dinàmica al valor $ │ │ │ │ │ + (DEB_HOST_MULTIARCH) per dpkg-architecture(1) a cada compilació. │ │ │ │ │ + Per exemple, el directori d'instal·lació de les biblioteques │ │ │ │ │ + multi-arquitectura es pot canviar de la següent manera.^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ -    |---------+------------------------+--------------------------| │ │ │ │ │ - |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ - |---------+------------------------+--------------------------| │ │ │ │ │ - |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ + | Directori | directori | directori | │ │ │ │ │ + | antic | multi-arquitectura i386 |multi-arquitectura amd64 | │ │ │ │ │ +    |-----------+-------------------------+-------------------------| │ │ │ │ │ + |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ + |-----------+-------------------------+-------------------------| │ │ │ │ │ + |/usr/lib/ |/usr/lib/i386-linux-gnu/ |/usr/lib/x86_64-linux-gnu| │ │ │ │ │ + | | |/ | │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │     Here are some typical multiarch package split scenario examples │ │ │ │ │ for the following: │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * el codi font de la biblioteca libnom_biblioteca-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ + * el codi font d'una ordre bar-1.tar.gz escrit en un llenguatge │ │ │ │ │ +    compilat │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * el codi font d'una ordre baz-1.tar.gz escrit en un llenguatge │ │ │ │ │ + interpretat │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ - +---------------------------------------------------------------+ │ │ │ │ │ - │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ + +-------------------------------------------------------------------------+ │ │ │ │ │ + | Paquet |Arquitectura|Multi-arquitectura:| Contingut del | │ │ │ │ │ + | | | | paquet | │ │ │ │ │ + |-----------------------+------------+-------------------+----------------| │ │ │ │ │ + | | | |la biblioteca | │ │ │ │ │ + |libnom_del_paquet1 |any |same |compartida, és | │ │ │ │ │ + | | | |co-instal·lable | │ │ │ │ │ + |-----------------------+------------+-------------------+----------------| │ │ │ │ │ + | | | |els símbols de | │ │ │ │ │ + | | | |depuració de la | │ │ │ │ │ + |libnom_del_paquet1-dbg |any |same |biblioteca | │ │ │ │ │ + | | | |compartida, són | │ │ │ │ │ + | | | |co-instal·lables| │ │ │ │ │ + |-----------------------+------------+-------------------+----------------| │ │ │ │ │ + | | | |els fitxers de | │ │ │ │ │ + | | | |capçalera i | │ │ │ │ │ + |libnom_del_paquet-dev |any |same |d'altres d'un | │ │ │ │ │ + | | | |biblioteca | │ │ │ │ │ + | | | |compilada, | │ │ │ │ │ + | | | |co-instal·lable | │ │ │ │ │ + |-----------------------+------------+-------------------+----------------| │ │ │ │ │ +    | | | |els programes de| │ │ │ │ │ + | | | |suport en temps | │ │ │ │ │ + |libnom_del_paquet-tools|any |foreign |d'execució, no | │ │ │ │ │ + | | | |són | │ │ │ │ │ + | | | |co-instal·lables| │ │ │ │ │ + |-----------------------+------------+-------------------+----------------| │ │ │ │ │ + | | | |els fitxers de | │ │ │ │ │ + |libnom_del_paquet-doc |all |foreign |documentació de | │ │ │ │ │ + | | | |la biblioteca | │ │ │ │ │ + | | | |compartida | │ │ │ │ │ + |-----------------------+------------+-------------------+----------------| │ │ │ │ │ + | | | |els fitxers del | │ │ │ │ │ + |bar |any |foreign |programa | │ │ │ │ │ + | | | |compilat, no són| │ │ │ │ │ + | | | |co-instal·lables| │ │ │ │ │ + |-----------------------+------------+-------------------+----------------| │ │ │ │ │ + | | | |els fitxers de | │ │ │ │ │ + |bar-doc |all |foreign |documentació del| │ │ │ │ │ + | | | |programa | │ │ │ │ │ + |-----------------------+------------+-------------------+----------------| │ │ │ │ │ + | | | |els fitxers del | │ │ │ │ │ + |baz |all |foreign |programa | │ │ │ │ │ + | | | |interpretat | │ │ │ │ │ + +-------------------------------------------------------------------------+ │ │ │ │ │ + │ │ │ │ │ + Cal tenir en compte que el paquet de desenvolupament ha de tenir │ │ │ │ │ +    un enllaç simbòlic a la biblioteca compartida associada sense el │ │ │ │ │ + número de versió. P. ex.: /usr/lib/x86_64-linux-gnu/libfoo.so -> │ │ │ │ │ + libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. Construint un paquet de biblioteca compartit │ │ │ │ │ │ │ │ │ │     You can build a Debian library package enabling multiarch support │ │ │ │ │ using dh(1) as follows: │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ + * Actualitza debian/control. │ │ │ │ │ │ │ │ │ │ + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ section. │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + Afegeix Pre-Depends: ${misc:Pre-Depends} per a cada paquet │ │ │ │ │ + binari de biblioteca compartida. │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + Afegeix el camp Multi-Arch: per a cada secció de paquet │ │ │ │ │ + binari. │ │ │ │ │ │ │ │ │ │ * Set debian/compat to "10". │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ + * Canvia el directori habitual /usr/lib/ al directori │ │ │ │ │ + multi-arquitectura /usr/lib/$(DEB_HOST_MULTIARCH)/ per a tots els │ │ │ │ │ + guions de la construcció del paquet. │ │ │ │ │ │ │ │ │ │ + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ - debian/rules. │ │ │ │ │ +    DEB_HOST_MULTIARCH variable first. │ │ │ │ │ + │ │ │ │ │ + + Canvia /usr/lib/ per /usr/lib/$(DEB_HOST_MULTIARCH)/ a debian │ │ │ │ │ + /rules. │ │ │ │ │ │ │ │ │ │ + If ./configure is used in part of the │ │ │ │ │ override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ + + Canvia cada repetició de /usr/lib/ per /usr/lib/*/ als │ │ │ │ │ + fitxers debian/nom_del_paquet.install │ │ │ │ │ │ │ │ │ │ + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ dynamically by adding a script to the │ │ │ │ │ override_dh_auto_configure target in debian/rules. │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ - debian/foo.links.in > debian/foo.links │ │ │ │ │ + debian/nom_del_paquet.links.in > debian/nom_del_paquet.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ + Comprova que el paquet de biblioteca compartida conté només els │ │ │ │ │ +    fitxers que s'esperava i que el paquet «-dev» continua funcionant │ │ │ │ │ + correctament. │ │ │ │ │ │ │ │ │ │ All files installed simultaneously as the multiarch package to │ │ │ │ │     the same file path should have exactly the same file content. You │ │ │ │ │ must be careful of differences generated by the data byte order │ │ │ │ │ and by the compression algorithm. │ │ │ │ │ │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ +A.5. Paquet nadiu Debian │ │ │ │ │ │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ + Si el paquet es construeix només per a Debian o fins i tot només │ │ │ │ │ +    per fer-ho servir en local, les seves fonts poden incloure tots │ │ │ │ │ + els fitxers de debian/*. Hi ha dos mètodes per construir el │ │ │ │ │ + paquet. │ │ │ │ │ │ │ │ │ │ You can make the upstream tarball by excluding the debian/* files │ │ │ │ │     and package it as a non-native Debian package as in Secció 2.1, │ │ │ │ │ «Pla de treball de la construcció de paquets Debian». This is the │ │ │ │ │ normal way, which some people encourage using. │ │ │ │ │ │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ +    L'alternativa és seguir el model de treball pels paquets nadius │ │ │ │ │ + Debian. │ │ │ │ │ │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ - │ │ │ │ │ -    + package_version.tar.gz │ │ │ │ │ - + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ + * Genera un paquet nadiu de fonts Debian en el format 3.0 │ │ │ │ │ + (native) fent servir un únic arxiu comprimit en format «tar» │ │ │ │ │ + afegint tots els arxius. │ │ │ │ │ + │ │ │ │ │ +    + nom_del_paquet_versió.tar.gz │ │ │ │ │ + + nom_del_paquet_versió.dsc │ │ │ │ │ + * Construcció de paquets binaris Debian des de paquets de fonts │ │ │ │ │ + Debian nadius. │ │ │ │ │ │ │ │ │ │ - + package_version_arch.deb │ │ │ │ │ + + nom_del_paquet_versió_arquitectura.deb │ │ │ │ │ │ │ │ │ │ For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │     the debian/* files, you can create a native Debian package by │ │ │ │ │ issuing the dh_make command as follows: │ │ │ │ │ │ │ │ │ │ -    $ cd ~/mypackage-1.0 │ │ │ │ │ +    $ cd ~/el_meu_paquet-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ Then the debian directory and its contents are created just like │ │ │ │ │ in Secció 2.8, «Paquet Debian no nadiu inicial.». This does not │ │ │ │ │     create a tarball, since this is a native Debian package. But that │ │ │ │ │ is the only difference. The rest of the packaging activities are │ │ │ │ │ practically the same. │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    Després d'executar l'ordre dpkg-buildpackage, veuràs els següents │ │ │ │ │ + fitxers en el directori superior: │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0.tar.gz │ │ │ │ │ + * el_meu_paquet_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + Aquest és el «tarball» del codi font generat a partir del │ │ │ │ │ + directori el_meu_paquet-1.0 per l'ordre dpkg-source (el seu │ │ │ │ │ + sufix no és orig.tar.gz). │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0.dsc │ │ │ │ │ + * el_meu_paquet_1.0.dsc │ │ │ │ │ │ │ │ │ │ This is a summary of the contents of the source code, as in │ │ │ │ │ the non-native Debian package. (There is no Debian revision.) │ │ │ │ │     │ │ │ │ │ - * mypackage_1.0_i386.deb │ │ │ │ │ + * el_meu_paquet_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ This is your completed binary package, as in the non-native │ │ │ │ │ Debian package. (There is no Debian revision.) │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0_i386.changes │ │ │ │ │ + * el_meu_paquet_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + Aquest arxiu descriu els canvis realitzats en la versió │ │ │ │ │ + actual del paquet de la mateixa forma que en els paquets │ │ │ │ │ + Debian no nadius (no hi ha el codi de revisió Debian). │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] Alternativament: readelf -d libnom_biblioteca.so.1 | grep │ │ │ │ │ + SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] Alternativament: readelf -d libnom_biblioteca.so.1 | grep │ │ │ │ │ + NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] Consulta Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ + libraries". │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] Consulta Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ +    ^[91] Consulta Debian Policy Manual, 8.3 "Static libraries" i │ │ │ │ │ + Debian Policy Manual, 8.4 "Development files". │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] Consulta Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] Consulta Debian wiki RpathIssue. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ + ^[94] Els canvis ABI incompatibles amb versions anteriors, │ │ │ │ │ +    normalment requereixen l'actualització del «SONAME» (nom lògic) │ │ │ │ │ + de la biblioteca i del paquet de la biblioteca compartida a │ │ │ │ │ + d'altres nous. │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ + ^[95] Per a biblioteques C++ i altres casos pels quals el maneig │ │ │ │ │ +    individual de símbols és difícil, es millor guiar-se per Debian │ │ │ │ │ + Policy Manual, 8.6.4 "The shlibs system". │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] Totes les versions anteriors dels paquets Debian estan │ │ │ │ │ + disponibles a http://snapshot.debian.org/. La revisió Debian del │ │ │ │ │ +    paquet segueix a la versió per facilitar el manteniment de │ │ │ │ │ + versions anteriors («backport») del paquet: 1.1 << 1.1-1~bpo70+1 │ │ │ │ │ + << 1.1-1 i 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ + ^[97] La revisió Debian es deriva de la versió per facilitar el │ │ │ │ │ +    manteniment de versions anteriors («backport») del paquet: 1.3 << │ │ │ │ │ + 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ +    ^[98] Consulta Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ changes". │ │ │ │ │ │ │ │ │ │     ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ lib64/ are not used anymore. │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] Alternativament, pots afegir els arguments --libdir=\$$ │ │ │ │ │ + {prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/ │ │ │ │ │ + lib/$(DEB_HOST_MULTIARCH) a ./configure. Fitxa't que --libexecdir │ │ │ │ │ +    especifica el directori predeterminat per instal·lar programes │ │ │ │ │ + executables que són engegats per altres programes més que no pas │ │ │ │ │ + pels usuaris. El valor predeterminat per «Autotools» és /usr/ │ │ │ │ │ + libexec/ però a Debian és /usr/lib/. ├── maint-guide-de_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1568 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 576084 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 577896 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: maint-guide-de │ │ │ │ Source: maint-guide │ │ │ │ Version: 1.2.53 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Osamu Aoki │ │ │ │ -Installed-Size: 950 │ │ │ │ +Installed-Size: 954 │ │ │ │ Suggests: debian-policy, developers-reference, devscripts, dh-make, doc-base, dupload | dput, fakeroot, lintian, pbuilder, quilt │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://www.debian.org/doc/devel-manuals#maint-guide │ │ │ │ Description: Debian New Maintainers' Guide (German) │ │ │ │ This package contains the Debian New Maintainers' Guide. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1223 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39555 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/advanced.de.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40977 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/advanced.de.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38965 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/build.de.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18843 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/checkit.de.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 65534 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/dother.de.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 65532 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/dother.de.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 82003 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/dreq.de.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 56151 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/first.de.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24803 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/index.de.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24822 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/index.de.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24290 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/modify.de.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 34935 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/start.de.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 33158 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/update.de.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12213 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/upload.de.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 428774 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/maint-guide.de.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 64370 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/maint-guide.de.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12233 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/html/upload.de.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 430586 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/maint-guide.de.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 64479 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-de/maint-guide.de.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 615 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-de.maint-guide-de │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-de │ │ │ ├── ./usr/share/doc/maint-guide-de/html/advanced.de.html │ │ │ │ ├── ./usr/share/doc/maint-guide-de/html/advanced.de.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Anhang A. Advanced packaging │ │ │ │ │ + Anhang A. Fortgeschrittene Paketierung │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

Here are some typical multiarch package split scenario examples for the │ │ │ │ │ -following:

│ │ │ │ │ +

Es gibt einige typische Beispiele für Multiarch-Paketaufteilungsszenarien:

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a library source │ │ │ │ │ + eine Bibliotheksquelle │ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + eine in einer übersetzten Sprache geschriebene Werkzeugquelle │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in a compiled language │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + eine in einer interpretierten Sprache geschriebene Werkzeugquelle │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in an interpreted language │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -777,18 +780,18 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
PackagePaketArchitecture:Multi-Arch:Package contentPaketinhalt
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ @@ -798,15 +801,15 @@ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anysamethe shared library, co-installabledie Laufzeitbibliothek, koinstallierbar
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ @@ -815,264 +818,260 @@ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ -dbg │ │ │ │ │ │ │ │ │ │ anysamethe shared library debug symbols, co-installabledie Debug-Symbole der Laufzeitbibliothek, koinstallierbar
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -dev │ │ │ │ │ │ │ │ │ │ anysamethe shared library header files etc., co-installabledie Laufzeitbibliothek-Header-Dateien usw., koinstallierbar
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -tools │ │ │ │ │ │ │ │ │ │ anyforeignthe run-time support programs, not co-installabledie Laufzeitunterstützungsprogramme, nicht koinstallierbar
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe shared library documentation filesdie Dokumentationsdateien der Laufzeitbibliothek
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anyforeignthe compiled program files, not co-installabledie übersetzten Programmdateien, nicht koinstallierbar
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe documentation files for the programdie Dokumentationsdateien für das Programm
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ allforeignthe interpreted program filesdie interpretierten Programmdateien
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + Beachten Sie, dass die Entwicklungspakete einen Symlink für die zugehörige │ │ │ │ │ +Laufzeitbibliothek │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + ohne eine Versionsnummer │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + enthalten sollten, │ │ │ │ │ +z.B. │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - You can build a Debian library package enabling multiarch support using │ │ │ │ │ + Sie können ein Debian-Laufzeitbibliothekspaket mit Unterstützung von │ │ │ │ │ +Multiarch mit │ │ │ │ │ │ │ │ │ │ dh │ │ │ │ │ (1) │ │ │ │ │ │ │ │ │ │ - as follows: │ │ │ │ │ + wie folgt bauen: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ -

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ -path should have exactly the same file content. You must be careful of │ │ │ │ │ -differences generated by the data byte order and by the compression │ │ │ │ │ -algorithm.

│ │ │ │ │ +

Bitte stellen Sie sicher, dass das Laufzeitbibliothekspaket nur die │ │ │ │ │ +erwarteten Dateien enthält und dass Ihr -dev-Paket noch funktioniert.

│ │ │ │ │ +

Alle Dateien, die simultan aus dem Multiarch-Paket in den gleichen Dateipfad │ │ │ │ │ +installiert werden, sollten exakt den gleichen Inhalt haben. Sie müssen │ │ │ │ │ +vorsichtig mit Unterschieden sein, die durch die Byte-Reihenfolge und den │ │ │ │ │ +Kompressionsalgorithmus entstehen.

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + Falls ein Paket nur für Debian oder möglicherweise nur für lokale Benutzung │ │ │ │ │ +betreut wird, können seine Quellen alle Dateien aus │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + enthalten. Es gibt zwei Möglichkeiten, dies zu │ │ │ │ │ +paketieren: │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - You can make the upstream tarball by excluding the │ │ │ │ │ + Sie können einen Tarball der Originalautoren erstellen, bei dem Sie die │ │ │ │ │ debian/* │ │ │ │ │ - files and package it as a non-native Debian │ │ │ │ │ -package as in │ │ │ │ │ + -Dateien ausschließen und es als nicht natives │ │ │ │ │ +Debian-Paket wie in │ │ │ │ │ Abschnitt 2.1, „Arbeitsschritte beim Bau von Debian-Paketen“ │ │ │ │ │ - . This is the normal way, which │ │ │ │ │ -some people encourage using. │ │ │ │ │ + paketieren. Dies ist die │ │ │ │ │ +normale Art, zu der einige Leute raten. │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

Die Alternative wäre der Arbeitsablauf für ein natives Debian-Paket:

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ - 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + Erstellen Sie ein natives Debian-Quellpaket im Format │ │ │ │ │ + 3.0 │ │ │ │ │ +(native) │ │ │ │ │ + mit einer einzelnen komprimierten Tar-Datei, in der alle │ │ │ │ │ +Dateien enthalten sind. │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + Paket │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + Version │ │ │ │ │ │ │ │ │ │ .tar.gz │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + Paket │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + Version │ │ │ │ │ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    Bauen Sie Debian-Binärpakete aus den nativen Debian-Quellpaketen.

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + Paket │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + Version │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - arch │ │ │ │ │ + Arch │ │ │ │ │ │ │ │ │ │ .deb │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - For example, if you have source files in │ │ │ │ │ + Falls Sie beispielsweise Quelldateien in │ │ │ │ │ ~/mypackage-1.0 │ │ │ │ │ - without the │ │ │ │ │ + ohne die │ │ │ │ │ debian/* │ │ │ │ │ - files, you can create a native Debian package │ │ │ │ │ -by issuing the │ │ │ │ │ + -Dateien haben, können Sie ein natives │ │ │ │ │ +Debian-Paket mittels des Befehls │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ - command as follows: │ │ │ │ │ + wie folgt │ │ │ │ │ +erstellen: │ │ │ │ │

│ │ │ │ │ -
$ cd ~/mypackage-1.0
│ │ │ │ │ +        
$ cd ~/MeinPaket-1.0
│ │ │ │ │  $ dh_make --native
│ │ │ │ │

│ │ │ │ │ - Then the │ │ │ │ │ + Dann werden das Verzeichnis │ │ │ │ │ debian │ │ │ │ │ - directory and its contents are created │ │ │ │ │ -just like in │ │ │ │ │ + und seine Inhalte │ │ │ │ │ +genau wie in │ │ │ │ │ Abschnitt 2.8, „Das erste nicht native Debian-Paket“ │ │ │ │ │ - . This does not create a │ │ │ │ │ -tarball, since this is a native Debian package. But that is the only │ │ │ │ │ -difference. The rest of the packaging activities are practically the same. │ │ │ │ │ + erstellt. Dies erstellt │ │ │ │ │ +keinen Tarball, da dies ein natives Debian-Paket ist. Das ist aber auch der │ │ │ │ │ +einzige Unterschied. Der Rest der Paketierungsaktivitäten ist praktisch │ │ │ │ │ +identisch. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - After execution of the │ │ │ │ │ + Nach der Ausführung des Befehls │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + werden │ │ │ │ │ +Sie die folgenden Dateien im übergeordneten Verzeichnis finden: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - mypackage_1.0.tar.gz │ │ │ │ │ + meinpaket_1.0.tar.gz │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + Dies ist der Quellcode-Tarball, der aus dem Verzeichnis │ │ │ │ │ + MeinPaket-1.0 │ │ │ │ │ + durch den Befehl │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + erstellt wurde. (Seine Endung ist nicht │ │ │ │ │ orig.tar.gz │ │ │ │ │ .) │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - mypackage_1.0.dsc │ │ │ │ │ + meinpaket_1.0.dsc │ │ │ │ │

    │ │ │ │ │ -

    This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ -Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    Dies ist eine Zusammenfassung der Inhalte des Quellcodes, wie in dem nicht │ │ │ │ │ +nativen Debian-Paket. (Es gibt keine Debian-Revision.)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - mypackage_1.0_i386.deb │ │ │ │ │ + meinpaket_1.0_i386.deb │ │ │ │ │

    │ │ │ │ │ -

    This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ -(There is no Debian revision.)

    │ │ │ │ │ +

    Dies ist Ihr komplettes Binärpaket wie in dem nicht nativen │ │ │ │ │ +Debian-Paket. (Es gibt keine Debian-Revision.)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - mypackage_1.0_i386.changes │ │ │ │ │ + meinpaket_1.0_i386.changes │ │ │ │ │

    │ │ │ │ │ -

    This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    Diese Datei beschreibt wie in dem nicht nativen Debian-Paket alle │ │ │ │ │ +Änderungen, die in der aktuellen Paketversion erfolgten. (Es gibt keine │ │ │ │ │ +Debian-Revision.)

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Alternativ: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1287,15 +1291,15 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Alternativ: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1308,95 +1312,98 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ -libraries" │ │ │ │ │ + Siehe │ │ │ │ │ + Debian Policy Manual, Kapitel 8.1 │ │ │ │ │ +»Run-time shared libraries« │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1.1 │ │ │ │ │ -"ldconfig" │ │ │ │ │ + Siehe │ │ │ │ │ + Debian Policy Manual, Kapitel 8.1.1 │ │ │ │ │ +»ldconfig« │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.3 "Static │ │ │ │ │ -libraries" │ │ │ │ │ - and │ │ │ │ │ - Debian Policy Manual, 8.4 │ │ │ │ │ -"Development files" │ │ │ │ │ + Siehe │ │ │ │ │ + Debian Policy Manual, Kapitel 8.3 »Static │ │ │ │ │ +libraries« │ │ │ │ │ + und │ │ │ │ │ + Debian Policy Manual, │ │ │ │ │ +Kapitel 8.4 »Development files« │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ + Siehe │ │ │ │ │ + Debian wiki │ │ │ │ │ +ReleaseGoals/LAFileRemoval │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki RpathIssue │ │ │ │ │ + Siehe │ │ │ │ │ + Debian-Wiki RpathIssue │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + Rückwärts-inkompatible ABI-Änderungen verlangen normalerweise von Ihnen, │ │ │ │ │ +dass Sie den SONAME der Bibliothek und den Namen des │ │ │ │ │ +Laufzeitbibliothekspakets in neue SONAMEN bzw. Namen ändern. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + Für C++-Bibliotheken und andere Fälle, bei denen das Nachverfolgen │ │ │ │ │ +individueller Symbole zu schwierig ist, folgen Sie stattdessen dem │ │ │ │ │ + Debian Policy Manual, Kapitel 8.6.4 »The │ │ │ │ │ +shlibs system« │ │ │ │ │ + . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + Alle vorhergehenden Versionen eines Pakets sind unter │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + erhältlich. Die │ │ │ │ │ +Debian-Revision wird von der Version entfernt, um das Rückportieren eines │ │ │ │ │ +Paketes zu erleichtern: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ and │ │ │ │ │ 1.2 │ │ │ │ │ @@ -1407,65 +1414,64 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + Die Debian-Revision wird von der Version entfernt, um das Rückportieren │ │ │ │ │ +eines Paketes zu erleichtern: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ -library ABI changes" │ │ │ │ │ + Siehe │ │ │ │ │ + Debian Policy Manual, Kapitel 8.6.2 │ │ │ │ │ +»Shared library ABI changes« │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [99] │ │ │ │ │ │ │ │ │ │ - Old special purpose library paths such as │ │ │ │ │ + Alte Spezialbibliothekspfade wie │ │ │ │ │ /lib32/ │ │ │ │ │ - and │ │ │ │ │ + und │ │ │ │ │ /lib64/ │ │ │ │ │ - are not used anymore. │ │ │ │ │ + werden nicht mehr benutzt. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + Alternativ können Sie die Argumente │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + und │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + zu │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + hinzufügen. Beachten Sie, dass │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + den Standardpfad angibt, in den ausführbare │ │ │ │ │ +Programme installiert werden, die von anderen Programmen (nicht von │ │ │ │ │ +Benutzern) ausgeführt werden. Die Vorgabe von Autotools ist │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + , die Debian-Vorgabe ist allerdings │ │ │ │ │ /usr/lib/ │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ ├── ./usr/share/doc/maint-guide-de/html/index.de.html │ │ │ │ ├── ./usr/share/doc/maint-guide-de/html/index.de.html │ │ │ │ │ @@ -822,51 +822,52 @@ │ │ │ │ │ 9.3. Übersprungene Uploads │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │ - A. Advanced packaging │ │ │ │ │ + A. Fortgeschrittene Paketierung │ │ │ │ │ │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ + A.1. Laufzeit-Bibliothek │ │ │ │ │ │ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - A.2. Managing │ │ │ │ │ + A.2. │ │ │ │ │ │ │ │ │ │ debian/ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + Paket │ │ │ │ │ │ │ │ │ │ .symbols │ │ │ │ │ │ │ │ │ │ + verwalten │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ A.3. Multiarch │ │ │ │ │ │ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ + A.4. Erstellen eines Laufzeitbibliothekspakets │ │ │ │ │ │ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ + A.5. Natives Debian-Paket │ │ │ │ │ │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │
│ │ │ ├── ./usr/share/doc/maint-guide-de/html/upload.de.html │ │ │ │ ├── ./usr/share/doc/maint-guide-de/html/upload.de.html │ │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ │ Kapitel 9. Das Paket hochladen │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-de/maint-guide.de.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -37,35 +37,35 @@ │ │ │ │ │ Josip Rodin, │ │ │ │ │ Osamu Aoki, │ │ │ │ │ Helge Kreutzmann, │ │ │ │ │ Tobias Quathamer, │ │ │ │ │ Erik Schanze und │ │ │ │ │ Eduard Bloch │ │ │ │ │ │ │ │ │ │ -25. Januar 2025 │ │ │ │ │ +28. Februar 2026 │ │ │ │ │ │ │ │ │ │ Deutsche │ │ │ │ │ Übersetzung │ │ │ │ │ │ │ │ │ │ -25. Januar 2025 │ │ │ │ │ +28. Februar 2026 │ │ │ │ │ │ │ │ │ │ Deutsche │ │ │ │ │ Übersetzung │ │ │ │ │ │ │ │ │ │ -25. Januar 2025 │ │ │ │ │ +28. Februar 2026 │ │ │ │ │ │ │ │ │ │ Deutsche │ │ │ │ │ Übersetzung │ │ │ │ │ │ │ │ │ │ -25. Januar 2025 │ │ │ │ │ +28. Februar 2026 │ │ │ │ │ │ │ │ │ │ Deutsche │ │ │ │ │ Übersetzung │ │ │ │ │ │ │ │ │ │ -25. Januar 2025 │ │ │ │ │ +28. Februar 2026 │ │ │ │ │ │ │ │ │ │ UNTERSCHRIFT │ │ │ │ │ │ │ │ │ │ VERSIONSGESCHICHTE │ │ │ │ │ NUMMER │ │ │ │ │ │ │ │ │ │ DATUM │ │ │ │ │ @@ -383,27 +383,27 @@ │ │ │ │ │ │ │ │ │ │ Die Datei orig.tar.gz hochladen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ Übersprungene Uploads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A Fortgeschrittene Paketierung │ │ │ │ │ │ │ │ │ │ 58 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ -A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 │ │ │ │ │ +A.1 Laufzeit-Bibliothek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ +A.2 debian/Paket.symbols verwalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ +A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ +A.4 Erstellen eines Laufzeitbibliothekspakets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ +A.5 Natives Debian-Paket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -1 / 62 │ │ │ │ │ +1 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 1 │ │ │ │ │ │ │ │ │ │ Einstieg, aber richtig! │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ @@ -439,15 +439,15 @@ │ │ │ │ │ 1In diesem Dokument wird davon ausgegangen, dass Sie ein Jessie-System oder ein neueres System verwenden. Wenn Sie diesen Text auf einem älteren │ │ │ │ │ System (auch einem älteren Ubuntu-System o.ä.) lesen, müssen Sie mindestens die zurückportierten Pakete dpkg und debhelper installieren. │ │ │ │ │ 2Sie können aus der Debian-Referenz (http://www.debian.org/doc/manuals/debian-reference/) den grundlegenden Umgang mit einem Debian-System lernen. │ │ │ │ │ Sie enthält auch einige Hinweise, um etwas über Unix-Programmierung zu lernen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -2 / 62 │ │ │ │ │ +2 / 63 │ │ │ │ │ │ │ │ │ │ – Sie können anderen nicht vorgeben, was getan werden soll. │ │ │ │ │ – Sie sollten sich selbst für Ihre Tätigkeit motivieren. │ │ │ │ │ • Freundliche Zusammenarbeit ist die Triebfeder. │ │ │ │ │ – Ihr Beitrag sollte andere nicht zu sehr belasten. │ │ │ │ │ – Ihr Beitrag ist nur wertvoll, wenn andere ihn würdigen. │ │ │ │ │ • Debian ist keine Schulklasse, in der Sie automatisch vom Lehrer Aufmerksamkeit bekommen. │ │ │ │ │ @@ -481,15 +481,15 @@ │ │ │ │ │ • Debian New Member site (https://nm.debian.org/) (offiziell) │ │ │ │ │ • Debian Mentors FAQ (http://wiki.debian.org/DebianMentorsFaq) (ergänzend) │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 1.2 │ │ │ │ │ │ │ │ │ │ -3 / 62 │ │ │ │ │ +3 / 63 │ │ │ │ │ │ │ │ │ │ Programme, die zum Entwickeln notwendig sind │ │ │ │ │ │ │ │ │ │ Bevor Sie loslegen können, müssen Sie sicherstellen, dass einige zusätzliche Pakete richtig installiert sind, die für die Entwicklung │ │ │ │ │ benötigt werden. Beachten Sie, dass die Liste keine Pakete enthält, die als essential oder required markiert sind - wir gehen │ │ │ │ │ davon aus, dass Sie diese schon installiert haben. │ │ │ │ │ Die folgenden Pakete sind in der Standardinstallation von Debian enthalten, also werden Sie sie vermutlich schon haben (und │ │ │ │ │ @@ -527,15 +527,15 @@ │ │ │ │ │ Programm diff) auf die ursprüngliche Datei anwendet und daraus die neue Version erzeugt (siehe patch(1)). │ │ │ │ │ • patchutils - Dieses Paket enthält einige Hilfsprogramme, um mit Patches zu arbeiten, beispielsweise die Befehle lsdiff, │ │ │ │ │ interdiff und filterdiff. │ │ │ │ │ 3Es gibt auch einige spezialisierte aber ähnliche Pakete wie dh-make-perl, dh-make-php usw. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -4 / 62 │ │ │ │ │ +4 / 63 │ │ │ │ │ │ │ │ │ │ • pbuilder - Dieses Paket enthält Programme, um eine chroot-Umgebung aufzubauen und zu betreuen. Beim Bauen eines Debian-Pakets in dieser chroot-Umgebung wird geprüft, ob die Build-Abhängigkeiten stimmen, wodurch FTBFS-Fehler │ │ │ │ │ (»Fails To Build From Source«, kann nicht aus den Quellen gebaut werden) verhindert werden (siehe pbuilder(8) und pdebuild(1)). │ │ │ │ │ • perl - Perl ist eine der am meisten gebrauchten interpretierten Skriptsprachen auf heutigen Unix-ähnlichen Systemen, oft │ │ │ │ │ bezeichnet als »Unix’ Schweizer Offizierskettensäge« (siehe perl(1)). │ │ │ │ │ • python - Python ist eine weitere der am meisten gebrauchten interpretierten Skriptsprachen auf Debian-Systemen, die bemerkenswerte Stärke mit einer sehr klaren Syntax kombiniert (siehe python(1)). │ │ │ │ │ • quilt - Dieses Paket hilft Ihnen dabei, eine große Anzahl von Patches zu verwalten, indem es die Änderungen verfolgt, die │ │ │ │ │ @@ -575,15 +575,15 @@ │ │ │ │ │ Das Folgende ist eine alternative Anleitung, die Sie zusammen mit diesem Dokument auch lesen können: │ │ │ │ │ • Debian-Paketier-Anleitung (http://www.debian.org/doc/packaging-manuals/packaging-tutorial/packaging-tutorial) │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 1.4 │ │ │ │ │ │ │ │ │ │ -5 / 62 │ │ │ │ │ +5 / 63 │ │ │ │ │ │ │ │ │ │ Wo man Hilfe bekommen kann │ │ │ │ │ │ │ │ │ │ Bevor Sie sich entschließen, Ihre Frage an einer öffentlichen Stelle zu stellen, lesen Sie bitte diese gute Dokumentation: │ │ │ │ │ • Dateien in /usr/share/doc/Paket für alle einschlägigen Pakete │ │ │ │ │ • Inhalte von man Befehl für alle einschlägigen Pakete │ │ │ │ │ • Inhalte von info Befehl für alle einschlägigen Pakete │ │ │ │ │ @@ -612,15 +612,15 @@ │ │ │ │ │ Sie von unzähligen verärgerten Debian-Benutzern mit E-Mails überschüttet …war nur ein Scherz. :-) │ │ │ │ │ Entspannen Sie sich und stellen Sie sich auf Fehlerberichte ein, denn es ist noch viel mehr Arbeit zu erledigen, bevor Ihr Paket │ │ │ │ │ vollständig im Einklang mit den Debian-Richtlinien sowie dessen bewährten Verfahren ist (nochmals: lesen Sie die wirkliche │ │ │ │ │ Dokumentation für Details). Viel Glück! │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -6 / 62 │ │ │ │ │ +6 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 2 │ │ │ │ │ │ │ │ │ │ Erste Schritte │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ @@ -652,15 +652,15 @@ │ │ │ │ │ 2Lesen Sie 5.6.1 ”Source” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source) , 5.6.7 ”Package” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Package) und 5.6.12 ”Version” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version) . Die Paketarchitektur folgt dem Debian Policy Manual, Kapitel 5.6.8 »Architecture« (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture) │ │ │ │ │ und wird während des Paketbauprozesses automatisch zugewiesen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 2.2 │ │ │ │ │ │ │ │ │ │ -7 / 62 │ │ │ │ │ +7 / 63 │ │ │ │ │ │ │ │ │ │ Ihr Programm auswählen │ │ │ │ │ │ │ │ │ │ Sie haben sich wahrscheinlich schon ein Paket ausgesucht, das Sie erstellen wollen. Zuerst müssen Sie überprüfen, ob das Paket │ │ │ │ │ bereits in der Distribution existiert, indem Sie Folgendes benutzen: │ │ │ │ │ • den Befehl aptitude, │ │ │ │ │ • die Webseite Debian-Pakete (http://www.debian.org/distrib/packages) , │ │ │ │ │ @@ -695,15 +695,15 @@ │ │ │ │ │ niemandem betreut wird. │ │ │ │ │ • Die Software muss eine Lizenz haben. │ │ │ │ │ 3Lesen Sie die Debian-Entwicklerreferenz 5.9.5 »Adoption eines Pakets« (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#adopting) . │ │ │ │ │ ⁴Trotzdem gibt es natürlich immer neue Programme, die es wert sind, für Debian paketiert zu werden. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -8 / 62 │ │ │ │ │ +8 / 63 │ │ │ │ │ │ │ │ │ │ – Für den Bereich main verlangen die Debian-Richtlinien, dass es die Debian-Richtlinien für Freie Software komplett │ │ │ │ │ erfüllt (DFSG (http://www.debian.org/social_contract#guidelines) ) und kein Paket außerhalb von main benötigt, um zu │ │ │ │ │ kompilieren oder ausgeführt zu werden. Dies ist der erwünschte Fall. │ │ │ │ │ – Für den Bereich contrib muss es zu den DFSG konform sein, darf aber ein Paket außerhalb von main für die Kompilierung │ │ │ │ │ oder Ausführung erfordern. │ │ │ │ │ – Für den Bereich non-free darf es gegen Punkte der DFSG verstoßen, es muss aber verteilbar sein. │ │ │ │ │ @@ -739,15 +739,15 @@ │ │ │ │ │ – Kernel-Patch-Pakete │ │ │ │ │ – jedes Paket mit nicht trivialen Betreuerskripten │ │ │ │ │ Paketieren von hochkomplexen Paketen ist nicht zu schwer, erfordert aber ein bisschen mehr Wissen. Sie sollten spezielle Hilfestellungen für jede komplexe Funktionalität erbitten. Beispielsweise haben einige Sprachen ihre eigenen Unter-Richtliniendokumente: │ │ │ │ │ • Perl-Richtlinien (http://www.debian.org/doc/packaging-manuals/perl-policy/) │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -9 / 62 │ │ │ │ │ +9 / 63 │ │ │ │ │ │ │ │ │ │ • Python-Richtlinien (http://www.debian.org/doc/packaging-manuals/python-policy/) │ │ │ │ │ • Java-Richtlinien (http://www.debian.org/doc/packaging-manuals/java-policy/) │ │ │ │ │ Es gibt einen alten lateinischen Spruch: fabricando fit faber (Übung macht den Meister). Es wird nachdrücklich empfohlen, zu │ │ │ │ │ üben und mit allen Schritten der Debian-Paketierung mit einfachen Paketen zu spielen, während diese Anleitung gelesen wird. │ │ │ │ │ Ein trivialer Tarball der Originalautoren ist hello-sh-1.0.tar.gz, der einen guten Startpunkt darstellt. Er wird wie folgt │ │ │ │ │ erstellt:⁵ │ │ │ │ │ @@ -794,15 +794,15 @@ │ │ │ │ │ Veränderung der Quellen der Originalautoren installieren, indem Sie ein neues Makefile mit dem Ziel install wie in Kapitel 3 hinzufügen. │ │ │ │ │ ⁶Sie können das Archivformat herausfinden, indem Sie den Befehl file verwenden, wenn die Dateierweiterung nicht ausreicht. │ │ │ │ │ ⁷Das Programm ist bereits paketiert worden. Die aktuelle Version (http://packages.qa.debian.org/g/gentoo.html) verwendet die Autotools als Baustruktur und │ │ │ │ │ unterscheidet sich signifikant von den folgenden Beispielen, die auf Version 0.9.12 basieren. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -10 / 62 │ │ │ │ │ +10 / 63 │ │ │ │ │ │ │ │ │ │ Sie müssen eine Anleitung finden, wie man das Programm kompiliert und installiert (meistens wird von einer Installation in das │ │ │ │ │ Verzeichnis /usr/local/bin ausgegangen, aber das werden Sie nicht machen. Mehr dazu später in Abschnitt 3.3). │ │ │ │ │ Sie sollten das Paketieren mit einem komplett aufgeräumten (»pristine«, makellosen) Quellcode-Verzeichnis anfangen oder die │ │ │ │ │ Quellen einfach frisch entpacken. │ │ │ │ │ │ │ │ │ │ 2.4 │ │ │ │ │ @@ -857,15 +857,15 @@ │ │ │ │ │ ⁸Viele moderne Programme kommen mit einem Skript configure, das bei der Ausführung ein für Ihr System angepasstes Makefile erstellt. │ │ │ │ │ ⁹Autotools ist zu umfangreich, um in dieser Anleitung berücksichtigt zu werden. Dieser Abschnitt dient nur der Bereitstellung von Schlüsselwörtern und │ │ │ │ │ Referenzen. Falls Sie sie benötigen, stellen Sie sicher, dass Sie das Autotools Tutorial (http://www.lrde.epita.fr/~adl/autotools.html) und die lokale Kopie der │ │ │ │ │ /usr/share/doc/autotools-dev/README.Debian.gz lesen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -11 / 62 │ │ │ │ │ +11 / 63 │ │ │ │ │ │ │ │ │ │ Sie können in der Datei Makefile viele Dinge ändern, beispielsweise können Sie den voreingestellten Installationsort für │ │ │ │ │ Dateien ändern, idem Sie die Befehlszeilenoption »./configure --prefix=/usr« benutzen. │ │ │ │ │ Obwohl es nicht erforderlich ist, kann die Aktualisierung der Datei configure und anderer Dateien mittels »autoreconf │ │ │ │ │ -i -f« die Kompatibilität der Quellen verbessern. 10 │ │ │ │ │ CMake ist ein alternatives Build-System. Sie erkennen solche Quellen an der Datei CMakeLists.txt. │ │ │ │ │ │ │ │ │ │ @@ -909,15 +909,15 @@ │ │ │ │ │ mehr als 80% der Pakete ist die Versionsnummer der Originalautoren weniger als 8 Zeichen lang und die Debian-Revision weniger als 2 Zeichen. Für mehr als │ │ │ │ │ 90% der Pakete ist die Versionsnummer der Originalautoren weniger als 10 Zeichen lang und die Debian-Revision weniger als 3 Zeichen. │ │ │ │ │ 1⁵Versionsnummern können die Versionsnummer der Originalautoren (Version), die Debian-Revision (Revision) oder die Version │ │ │ │ │ (Version-Revision) sein. Lesen Sie Abschnitt 8.1, um zu erfahren, wie die Debian-Revision erhöht wird. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -12 / 62 │ │ │ │ │ +12 / 63 │ │ │ │ │ │ │ │ │ │ • Es gibt besondere Regeln für Punkt (.), Plus- (+) und Tilde- (~) Zeichen, wie folgt: │ │ │ │ │ 0.0 < 0.5 < 0.10 < 0.99 < 1 < 1.0~rc1 < 1.0 < 1.0+b1 < 1.0+nmu1 < 1.1 < 2.0 │ │ │ │ │ Ein schwieriger Fall tritt auf, wenn die Originalautoren gentoo-0.9.12-ReleaseCandidate-99.tar.gz als Vorabveröffentlichung von gentoo-0.9.12.tar.gz veröffentlichen. Sie müssen sicherstellen, dass das Upgrade korrekt funktioniert, │ │ │ │ │ indem Sie die Quellen der Originalautoren in gentoo-0.9.12~rc99.tar.gz umbenennen. │ │ │ │ │ │ │ │ │ │ 2.7 │ │ │ │ │ @@ -964,15 +964,15 @@ │ │ │ │ │ 1⁸Es gibt hier mehrere Auswahlmöglichkeiten: »s« für »Single binary package« (einzelnes Binärpaket), »i« für »Arch-Independent package« (Architekturunabhängiges Paket), »m« für »Multiple binary packages« (mehrere Binärpakete), »l« für »Library package« (Bibliothekspaket), »k« für »Kernel module package« (Kernel-Modul-Paket), »n« für »Kernel patch package« (Kernel-Patch-Paket) und »b« für »cdbs«-Pakete. Dieses Dokument konzentriert sich auf den │ │ │ │ │ Befehl dh (aus dem Paket debhelper), um ein einzelnes Binärpaket zu erstellen, aber zeigt auch auf, wie es für architekturunabhängige Pakete oder mehrere │ │ │ │ │ Binärpakete verwandt werden kann. Das Paket cdbs bietet eine alternative Paketierungs-Skriptinfrastruktur zum Befehl dh und wird in diesem Dokument nicht │ │ │ │ │ behandelt. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -13 / 62 │ │ │ │ │ +13 / 63 │ │ │ │ │ │ │ │ │ │ Bitte beachten Sie zwei entscheidende Merkmale in dem Dateinamen gentoo_0.9.12.orig.tar.gz: │ │ │ │ │ • Paketname und Version sind durch das Zeichen »_« (Unterstrich) getrennt. │ │ │ │ │ • Die Zeichenkette .orig wurde vor dem .tar.gz eingefügt. │ │ │ │ │ Beachten Sie außerdem, dass viele Schablonendateien im Quellverzeichnis im Unterverzeichnis debian erstellt werden. Diese │ │ │ │ │ werden in Kapitel 4 und Kapitel 5 erklärt. Weiterhin sollte Ihnen klar sein, dass das Paketieren kein vollautomatischer Prozess │ │ │ │ │ sein kann. Sie müssen die ursprünglichen Quellen für Debian verändern (siehe Kapitel 3). Danach müssen Sie die geeigneten │ │ │ │ │ @@ -982,15 +982,15 @@ │ │ │ │ │ Das Aktualisieren eines existierenden Pakets kann kompliziert werden, weil es eventuell ältere Techniken verwendet. Während │ │ │ │ │ Sie die Grundlagen lernen, bleiben Sie bei der Erstellung eines neuen Pakets; weitere Erklärungen werden in Kapitel 8 gegeben. │ │ │ │ │ Bitte beachten Sie, dass die Quellen kein in Abschnitt 2.4 und Abschnitt 2.5 beschriebenes Bausystem enthalten müssen. Es │ │ │ │ │ könnte eine reine Sammlung von graphischen Daten usw. sein. Die Installation der Dateien könnte rein mit debhelperKonfigurationsdateien wie debian/install (siehe Abschnitt 5.11) erfolgen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -14 / 62 │ │ │ │ │ +14 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 3 │ │ │ │ │ │ │ │ │ │ Den Quellcode verändern │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ @@ -1026,15 +1026,15 @@ │ │ │ │ │ Fehler in den ursprünglichen Quellen korrigieren │ │ │ │ │ │ │ │ │ │ Nehmen wir an, Sie finden den folgenden Fehler in dem ursprünglichen Makefile, wo statt »install: gentoo« besser │ │ │ │ │ »install: gentoo-target« stehen sollte. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -15 / 62 │ │ │ │ │ +15 / 63 │ │ │ │ │ │ │ │ │ │ install: gentoo │ │ │ │ │ install ./gentoo $(BIN) │ │ │ │ │ install icons/* $(ICONS) │ │ │ │ │ install gentoorc-example $(HOME)/.gentoorc │ │ │ │ │ │ │ │ │ │ Wir beheben dies und speichern es mit dem Befehl quilt wie folgt als fix-gentoo-target.patch: 1 │ │ │ │ │ @@ -1078,15 +1078,15 @@ │ │ │ │ │ 1Das Verzeichnis debian/patches sollte inzwischen existieren, wenn Sie dh_make wie vorher beschrieben ausgeführt haben. In diesem Beispiel wird │ │ │ │ │ es sicherheitshalber erstellt, nur für den Fall, dass Sie ein existierendes Paket aktualisieren. │ │ │ │ │ 2Lesen Sie GNU Coding Standards: 7.2.4 DESTDIR: Support for Staged Installs (http://www.gnu.org/prep/standards/html_node/DESTDIR.html#DESTDIR) │ │ │ │ │ . │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -16 / 62 │ │ │ │ │ +16 / 63 │ │ │ │ │ │ │ │ │ │ Bei einem Quellpaket, das ein einzelnes Binärpaket erstellt, wird das temporäre Verzeichnis, das vom Befehl dh_auto_install │ │ │ │ │ benutzt wird, auf debian/Paket gesetzt. 3 Alles, was im temporären Verzeichnis enthalten ist, wird auf dem System eines │ │ │ │ │ Benutzers installiert, wenn dieser Ihr Paket installiert. Der einzige Unterschied ist, dass dpkg die Dateien relativ zum Wurzelverzeichnis statt zu Ihrem Arbeitsverzeichnis installieren wird. │ │ │ │ │ Vergessen Sie nicht, dass Ihr Programm zwar unter debian/Paket installiert wird, es sich aber trotzdem korrekt verhalten muss, │ │ │ │ │ wenn es aus dem .deb-Paket unter dem Wurzelverzeichnis installiert wird. Daher dürfen durch das Build-System keine fest eingestellten Zeichenketten wie /home/ich/deb/Paket-Version/usr/share/Paket für Dateien im Paket festgeschrieben │ │ │ │ │ werden. │ │ │ │ │ @@ -1134,15 +1134,15 @@ │ │ │ │ │ dh_install teilt dann den Inhalt von debian/tmp mit Hilfe von debian/Paket-1.install und debian/Paket-2.install in die temporären │ │ │ │ │ Verzeichnisse debian/Paket-1 und debian/Paket-2 auf, um daraus die Binärpakete Paket-1_*.deb und Paket-2_*.deb zu erstellen. │ │ │ │ │ ⁴Dies ist nur ein Beispiel, wie ein Makefile aussehen sollte. Falls die Makefile-Datei durch den Befehl ./configure erstellt wird, ist die richtige Vorgehensweise, um diese Art Makefile zu korrigieren, ./configure durch den Befehl dh_auto_configure aufrufen zu lassen. Dabei kommen die voreingestellten │ │ │ │ │ Optionen zum Tragen, einschließlich der Option --prefix=/usr. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -17 / 62 │ │ │ │ │ +17 / 63 │ │ │ │ │ │ │ │ │ │ install: gentoo-target │ │ │ │ │ install ./gentoo $(BIN) │ │ │ │ │ install icons/* $(ICONS) │ │ │ │ │ install gentoorc-example $(HOME)/.gentoorc │ │ │ │ │ │ │ │ │ │ Wir beheben diesen Fehler der Originalautoren und speichern es mit dem Befehl dquilt als debian/patches/install. │ │ │ │ │ @@ -1188,15 +1188,15 @@ │ │ │ │ │ Es gibt ein anderes typisches Problem: Bibliotheken variieren oft von Plattform zu Plattform. Beispielsweise kann ein Makefile │ │ │ │ │ eine Referenz auf eine Bibliothek enthalten, die auf Debian-Systemen nicht existiert. In diesem Fall müssen wir sie auf eine │ │ │ │ │ Bibliothek ändern, die unter Debian existiert und den gleichen Zweck erfüllt. │ │ │ │ │ Nehmen wir an, eine Datei in dem Makefile (oder Makefile.in) Ihres Programms lautet wie folgt: │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -18 / 62 │ │ │ │ │ +18 / 63 │ │ │ │ │ │ │ │ │ │ LIBS = -lfoo -lbar │ │ │ │ │ │ │ │ │ │ Falls Ihr Programm nicht übersetzt, da die Bibliothek foo nicht existiert und auf Debian-Systemen ihr Äquivalent von der Bibliothek foo2 bereitgestellt wird, können Sie dieses Bauproblem mittels debian/patches/foo2.patch beheben, indem │ │ │ │ │ Sie foo in foo2 ändern: ⁵ │ │ │ │ │ $ dquilt new foo2.patch │ │ │ │ │ $ dquilt add Makefile │ │ │ │ │ @@ -1206,15 +1206,15 @@ │ │ │ │ │ b’’…b’’ Patch beschreiben │ │ │ │ │ │ │ │ │ │ ⁵Falls es API-Änderungen von der Bibliothek foo zu der Bibliothek foo2 gibt, müssen die Quellen entsprechend angepasst werden, um zur neuen API zu │ │ │ │ │ passen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -19 / 62 │ │ │ │ │ +19 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 4 │ │ │ │ │ │ │ │ │ │ Benötigte Dateien im Verzeichnis debian │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ @@ -1247,15 +1247,15 @@ │ │ │ │ │ Zeile 1 ist der Name des Quellcode-Pakets. │ │ │ │ │ Zeile 2 bestimmt den Bereich (Section) der Distribution, in die das Quellcode-Paket gehört. │ │ │ │ │ 1In diesem Kapitel werden zur Vereinfachung Dateien im Verzeichnis debian ohne das einleitende debian/ referenziert, wann immer die Bedeutung │ │ │ │ │ eindeutig ist. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -20 / 62 │ │ │ │ │ +20 / 63 │ │ │ │ │ │ │ │ │ │ Sie haben bestimmt schon gemerkt, dass das Debian-Archiv in mehrere Bereiche aufgeteilt ist: main (freie Software), non-free │ │ │ │ │ (nicht wirklich freie Software) und contrib (freie Software, die von non-free-Software abhängt). Jeder davon ist in Abschnitte eingeteilt, die die Pakete in grobe Kategorien sortieren. Dementsprechend gibt es admin für Programme für Administratoren, devel für Programmierwerkzeuge, doc für Dokumentation, libs für Programmbibliotheken, mail für E-MailLeseprogramme und -Daemons, net für Netzwerk-Anwendungen und Daemons, x11 für X11-Programme, die nirgendwo anders │ │ │ │ │ unterkommen, und viele mehr. 2 │ │ │ │ │ Ändern Sie den Bereich also in x11 (das Präfix main/ wird impliziert, also können wir es weglassen). │ │ │ │ │ Zeile 3 beschreibt, wie wichtig es ist, dass der Benutzer das Paket installiert. 3 │ │ │ │ │ • Die Priorität optional ist normalerweise für neue Pakete sinnvoll, die nicht mit anderen Paketen der Prioritäten required, │ │ │ │ │ @@ -1291,15 +1291,15 @@ │ │ │ │ │ 3Lesen Sie das Debian Policy Manual, Kapitel 2.5 »Priorities« (http://www.debian.org/doc/debian-policy/ch-archive.html#s-priorities) . │ │ │ │ │ ⁴Lesen Sie das Debian Policy Manual, Kapitel 7.7 »Relationships between source and binary packages - Build-Depends, Build-Depends-Indep, BuildConflicts, Build-Conflicts-Indep« (http://www.debian.org/doc/debian-policy/ch-relationships.html#s-sourcebinarydeps) │ │ │ │ │ ⁵Diese etwas merkwürdige Situation ist eine Besonderheit, die in dem Debian Policy Manual, Fußnote 55 (http://www.debian.org/doc/debian-policy/footnotes.html#f55) sehr gut dokumentiert ist. Es liegt nicht an der Verwendung des Befehls dh in der Datei debian/rules, sondern daran, wie das Programm │ │ │ │ │ dpkg-buildpackage arbeitet. Dieselbe Situation gilt auch für das »auto build system« von Ubuntu (https://bugs.launchpad.net/launchpad-buildd/+bug/238141) . │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -21 / 62 │ │ │ │ │ +21 / 63 │ │ │ │ │ │ │ │ │ │ $ dpkg -S libfoo.so.6 │ │ │ │ │ │ │ │ │ │ Dann nehmen Sie einfach die Entwicklerversion (-dev) jedes Pakets als einen Build-Depends-Eintrag. Falls Sie dafür ldd │ │ │ │ │ benutzen, werden auch indirekt abhängende Bibliotheken aufgelistet, die wiederum zu exzessiven Bauabhängigkeiten führen │ │ │ │ │ können. │ │ │ │ │ Gentoo benötigt noch xlibs-dev, libgtk1.2-dev und libglib1.2-dev, um gebaut werden zu können, deshalb hängen wir diese direkt hinter debhelper an. │ │ │ │ │ @@ -1333,15 +1333,15 @@ │ │ │ │ │ Benutzer kann diese Voreinstellung deaktivieren). dpkg ignoriert dieses Feld. │ │ │ │ │ ⁶Lesen Sie Debian Policy Manual, Kapitel 5.6.8 »Architecture« (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture) für die │ │ │ │ │ genauen Details. │ │ │ │ │ ⁷Lesen Sie Debian Policy Manual, Kapitel 7 »Declaring relationships between packages« (http://www.debian.org/doc/debian-policy/ch-relationships.html) . │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -22 / 62 │ │ │ │ │ +22 / 63 │ │ │ │ │ │ │ │ │ │ • Suggests │ │ │ │ │ Benutzen Sie dies für Pakete, die mit Ihrem Programm gut zusammenarbeiten, aber absolut nicht notwendig sind. Wenn ein │ │ │ │ │ Benutzer Ihr Programm installiert, werden sie wahrscheinlich nicht gefragt, ob die vorgeschlagenen Pakete auch installiert │ │ │ │ │ werden sollen. aptitude kann so konfiguriert werden, dass es vorgeschlagene Pakete zusammen mit Ihrem Paket installiert, │ │ │ │ │ aber dies ist nicht die Voreinstellung. dpkg und apt-get ignorieren dieses Feld. │ │ │ │ │ • Pre-Depends │ │ │ │ │ @@ -1383,15 +1383,15 @@ │ │ │ │ │ verwandt. │ │ │ │ │ │ │ │ │ │ dh_gencontrol(1) erstellt die Datei DEBIAN/control für jedes Binärpaket und ersetzt dabei ${shlibs:Depends}, ${perl:Depe │ │ │ │ │ ${misc:Depends}, usw. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -23 / 62 │ │ │ │ │ +23 / 63 │ │ │ │ │ │ │ │ │ │ Nach all diesen Erklärungen können wir das Feld Depends aber exakt so belassen, wie es jetzt ist und eine weitere Zeile dahinter │ │ │ │ │ einfügen, in der »Suggests: file« steht, weil gentoo einige Funktionen des Pakets file nutzen kann. │ │ │ │ │ Zeile 9 ist die Homepage-URL. Nehmen wir an, diese sei http://www.obsession.se/gentoo/. │ │ │ │ │ Zeile 12 enthält eine Kurzbeschreibung. Terminals sind typischerweise 80 Zeichen breit, also sollte die Kurzbeschreibung nicht │ │ │ │ │ länger als etwa 60 Zeichen sein. Ich ändere es in fully GUI-configurable, two-pane X file manager. │ │ │ │ │ In die Zeile 13 kommt eine ausführliche Beschreibung. Sie sollte aus einem kleinen Text bestehen, der mehr über das Paket verrät. │ │ │ │ │ @@ -1442,15 +1442,15 @@ │ │ │ │ │ und DEP-5: Machine-parseable debian/copyright (http://dep.debian.net/deps/dep5/) bietet Hilfestellungen für ihr Format. │ │ │ │ │ ⁸Diese Beschreibungen sind auf Englisch. Übersetzungen dieser Beschreibungen werden durch das Debian Description Translation Project - DDTP │ │ │ │ │ (http://www.debian.org/intl/l10n/ddtp) bereitgestellt. │ │ │ │ │ ⁹Lesen Sie Debian-Entwicklerreferenz, 6.2.5. »Ort des Versionsverwaltungssystems« (http://www.debian.org/doc/manuals/developers-reference/bestpkging-practices.html#bpp-vcs) . │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -24 / 62 │ │ │ │ │ +24 / 63 │ │ │ │ │ │ │ │ │ │ Dh_make kann eine Vorlage für die Datei copyright erzeugen. Verwenden Sie hier die Option »--copyright gpl2«, um │ │ │ │ │ eine Vorlage für das Paket gentoo zu erhalten, das unter GPL-2 veröffentlicht wurde. │ │ │ │ │ Sie müssen hier fehlende Informationen eintragen, um die Datei zu vervollständigen, beispielsweise die Quelle, von der Sie das │ │ │ │ │ Paket bezogen haben, die tatsächlichen Copyright-Vermerke und die Lizenz. Bei den verbreiteten Lizenzen von freier Software │ │ │ │ │ (GNU GPL-1, GNU GPL-2, GNU GPL-3, LGPL-2, LGPL-2.1, LGPL-3, GNU FDL-1.2, GNU FDL-1.3, Apache-2.0, 3-Clause │ │ │ │ │ BSD, CC0-1.0, MPL-1.1, MPL-2.0 oder der Artistic license) können Sie auf die entsprechende Datei im Verzeichnis /usr/ │ │ │ │ │ @@ -1501,15 +1501,15 @@ │ │ │ │ │ │ │ │ │ │ changelog │ │ │ │ │ │ │ │ │ │ Dies ist eine zwingend vorgeschriebene Datei, deren Format im Debian Policy Manual, Kapitel 4.4 »debian/changelog« (http://www.debia │ │ │ │ │ doc/debian-policy/ch-source.html#s-dpkgchangelog) beschrieben wird. Dieses Format benötigen dpkg und andere Programme, │ │ │ │ │ um die Versionsnummer, Revision, Distribution und die Dringlichkeit Ihres Pakets zu bestimmen. │ │ │ │ │ │ │ │ │ │ - 25 / 62 │ │ │ │ │ + 25 / 63 │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ Für Sie ist die Datei ebenfalls wichtig, weil es sinnvoll ist, alle von Ihnen vorgenommenen Änderungen zu dokumentieren. Damit │ │ │ │ │ können Leute, die Ihr Paket herunterladen, einfacher herausfinden, ob es Probleme mit dem Paket gibt, die sie kennen sollten. │ │ │ │ │ Diese Datei wird im Binärpaket als /usr/share/doc/gentoo/changelog.Debian.gz gespeichert. │ │ │ │ │ dh_make hat eine Standardvorlage erstellt, die so aussieht: │ │ │ │ │ @@ -1580,15 +1580,15 @@ │ │ │ │ │ definiert.11 Eine neue Regel beginnt mit der Ziel-Deklaration in der ersten Spalte. Die folgenden Zeilen beginnen mit einem │ │ │ │ │ 10Falls Sie den Befehl dch -r zur Durchführung dieser letzten Änderung verwenden, stellen Sie sicher, dass Sie die Datei changelog explizit im Editor │ │ │ │ │ speichern. │ │ │ │ │ 11Sie können das Schreiben einer Makefile erlernen, indem Sie Debian Reference, 12.2. ”Make” (http://www.debian.org/doc/manuals/debian-reference/ch12#_make) lesen. Die komplette Dokumentation ist als http://www.gnu.org/software/make/manual/html_node/index.html oder als Paket make-doc im Archivbereich non-free verfügbar. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -26 / 62 │ │ │ │ │ +26 / 63 │ │ │ │ │ │ │ │ │ │ Tabulator (ASCII 9), nach dem das Rezept zur Durchführung des Ziels angegeben wird. Leere Zeilen und Zeilen, die mit einem │ │ │ │ │ # (Hash) anfangen, werden als Kommentare behandelt und ignoriert. 12 │ │ │ │ │ Eine Regel, die Sie ausführen möchten, wird durch ihren Zielnamen als Befehlszeilenargument aufgerufen. Beispielsweise führen │ │ │ │ │ debian/rules build und fakeroot make -f debian/rules binary die Regeln für die Ziele build respektive │ │ │ │ │ binary aus. │ │ │ │ │ Es folgt eine vereinfachte Erklärung der Ziele: │ │ │ │ │ @@ -1634,15 +1634,15 @@ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 14 │ │ │ │ │ 15 │ │ │ │ │ 16 %: │ │ │ │ │ 17 │ │ │ │ │ │ │ │ │ │ -27 / 62 │ │ │ │ │ +27 / 63 │ │ │ │ │ │ │ │ │ │ dh $@ │ │ │ │ │ │ │ │ │ │ (Die Zeilennummerierung habe ich hinzugefügt und auch einige Kommentare verkürzt. In der richtigen rules-Datei sind die │ │ │ │ │ führenden Leerzeichen Tabulatoren.) │ │ │ │ │ Sie sind wahrscheinlich mit ähnlichen Zeilen wie der Zeile 1 aus Shell- oder Perl-Skripten vertraut. Sie teilt dem Betriebssystem │ │ │ │ │ mit, dass das Skript mit /usr/bin/make verarbeitet werden soll. │ │ │ │ │ @@ -1690,15 +1690,15 @@ │ │ │ │ │ auf dem Paket debhelper und verschleiert den Prozess des Paketbaus nicht, wie dies beim Paket cdbs sein kann. │ │ │ │ │ 1⁷Sie können überprüfen, welche Sequenzen von dh_*-Programmen für ein bestimmtes Ziel tatsächlich aufgerufen werden, indem Sie »dh Ziel │ │ │ │ │ --no-act« oder »debian/rules -- ’Ziel --no-act’« ausführen. Dadurch werden die Sequenzen nicht ausgeführt. │ │ │ │ │ 1⁸Im folgenden Beispiel wird angenommen, dass debian/compat einen Wert gleich oder größer als 9 hat, um die Python-Unterstützungsbefehle automatisch aufzurufen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -28 / 62 │ │ │ │ │ +28 / 63 │ │ │ │ │ │ │ │ │ │ dh_installinit │ │ │ │ │ dh_installmenu │ │ │ │ │ dh_installmime │ │ │ │ │ dh_installmodules │ │ │ │ │ dh_installlogcheck │ │ │ │ │ dh_installlogrotate │ │ │ │ │ @@ -1745,15 +1745,15 @@ │ │ │ │ │ 20Diese Befehle unterstützen andere Bauumgebungen wie setup.py, die durch Ausführen von dh_auto_build --list in einem Paketbauverzeichnis │ │ │ │ │ aufgelistet werden können. │ │ │ │ │ 21Tatsächlich wird nach dem ersten verfügbaren Ziel aus der Liste distclean, realclean oder clean in dem Makefile gesucht und dieses ausgeführt. │ │ │ │ │ 22Tatsächlich wird nach dem ersten verfügbaren Ziel aus der Liste test oder check in dem Makefile gesucht und dieses ausgeführt. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -29 / 62 │ │ │ │ │ +29 / 63 │ │ │ │ │ │ │ │ │ │ make test │ │ │ │ │ │ │ │ │ │ • dh_auto_install führt normalerweise folgendes aus, falls ein Makefile mit dem Ziel install existiert (Zeile zur besseren │ │ │ │ │ Lesbarkeit umgebrochen). │ │ │ │ │ make install \ │ │ │ │ │ DESTDIR=/Pfad/zum/Paket_Version-Revision/debian/Paket │ │ │ │ │ @@ -1793,15 +1793,15 @@ │ │ │ │ │ 23Falls ein Paket die Datei /usr/share/perl5/Debian/Debhelper/Sequence/Eigener_Name.pm installiert, können Sie dessen angepasste │ │ │ │ │ Funktion mittels »dh $@ --with Eigener-Name« aktivieren. │ │ │ │ │ 2⁴Die Benutzung des Befehls dh_python2 wird gegenüber den Befehlen dh_pysupport oder dh_pycentral bevorzugt. Verwenden Sie nicht den Befehl │ │ │ │ │ dh_python. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -30 / 62 │ │ │ │ │ +30 / 63 │ │ │ │ │ │ │ │ │ │ – Verwenden Sie stattdessen »dh $@ --with quilt«. │ │ │ │ │ – Hiermit werden für ein Quellpaket im Format 1.0 aus Dateien im Verzeichnis debian/patches Patches auf die ursprünglichen Quellen angewendet und auch wieder rückgängig gemacht. │ │ │ │ │ – Dies wird nicht benötigt, falls Sie das neue Quellpaketformat 3.0 (quilt) benutzen. │ │ │ │ │ • Unterstützung für den Befehl dh_dkms hinzufügen. │ │ │ │ │ – Aufnahme des Pakets dkms in »Build-Depends«. │ │ │ │ │ – Verwenden Sie stattdessen »dh $@ --with dkms«. │ │ │ │ │ @@ -1837,15 +1837,15 @@ │ │ │ │ │ gentoo statt im normalen Verzeichnis /etc speichern wollen, können Sie das Vorgabeargument --sysconfig=/etc für │ │ │ │ │ ./configure im Befehl dh_auto_configure durch folgendes außer Kraft setzen: │ │ │ │ │ 2⁵Falls Sie unter Lenny das Verhalten eines dh_*-Skripts ändern wollten, mussten Sie die entsprechende Zeile in der Datei rules aufsuchen und dort │ │ │ │ │ anpassen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -31 / 62 │ │ │ │ │ +31 / 63 │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure -- --sysconfig=/etc/gentoo │ │ │ │ │ │ │ │ │ │ Die nach dem -- übergebenen Argumente werden zu den vorgegebenen Argumenten des automatisch ausgeführten Programms │ │ │ │ │ hinzugefügt, um sie zu überschreiben. Die Benutzung des Befehls dh_auto_configure ist besser als der direkte Aufruf von │ │ │ │ │ ./configure, weil in diesem Fall lediglich das Argument --sysconfig überschrieben wird und andere, sehr wohl beabsichtigte, │ │ │ │ │ @@ -1876,15 +1876,15 @@ │ │ │ │ │ │ │ │ │ │ 2⁶dh_auto_build ohne Argumente führt das erste Ziel in dem Makefile aus. │ │ │ │ │ 2⁷Die Dateien debian/changelog und debian/NEWS werden immer automatisch installiert. Das Changelog der Originalautoren wird gefunden, indem │ │ │ │ │ die Dateinamen in Kleinbuchstaben umgewandelt werden und mit changelog, changes, changelog.txt und changes.txt verglichen werden. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -32 / 62 │ │ │ │ │ +32 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 5 │ │ │ │ │ │ │ │ │ │ Andere Dateien im Verzeichnis debian │ │ │ │ │ Der Befehl dh_make wurde umfangreich aktualisiert, seitdem dieses alte Dokument geschrieben wurde. Daher treffen einige │ │ │ │ │ Teile dieses Dokuments nicht mehr zu. │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ @@ -1912,15 +1912,15 @@ │ │ │ │ │ dass der Name des Pakets als Präfix vor den Namen der Konfigurationsdatei gestellt wird. Beispiele sind Paket-1.install, │ │ │ │ │ Paket-2.install usw. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 5.1 │ │ │ │ │ │ │ │ │ │ -33 / 62 │ │ │ │ │ +33 / 63 │ │ │ │ │ │ │ │ │ │ README.Debian │ │ │ │ │ │ │ │ │ │ Alle zusätzlichen Details oder Unterschiede zwischen dem ursprünglichen Paket und Ihrer Debian-Version sollten hier dokumentiert werden. │ │ │ │ │ dh_make erstellt eine Standardvorlage, die so aussieht: │ │ │ │ │ gentoo for Debian │ │ │ │ │ ---------------- │ │ │ │ │ @@ -1960,15 +1960,15 @@ │ │ │ │ │ Für weitere Informationen über die Betreuerskripte lesen Sie Abschnitt 5.18. │ │ │ │ │ 1Lesen Sie dpkg(1) und das Debian Policy Manual, »D.2.5 Conffiles« (http://www.debian.org/doc/debian-policy/ap-pkg-controlfields.html#s-pkg-fConffiles) . │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 5.4 │ │ │ │ │ │ │ │ │ │ -34 / 62 │ │ │ │ │ +34 / 63 │ │ │ │ │ │ │ │ │ │ Paket.cron.* │ │ │ │ │ │ │ │ │ │ Falls Ihr Paket immer wiederkehrende Aufgaben erledigen muss, um korrekt zu arbeiten, können Sie diese Dateien benutzen, │ │ │ │ │ um das einzurichten. Sie können regelmäßige Aufgaben erstellen, die stündlich, täglich, wöchentlich oder monatlich ausgeführt │ │ │ │ │ werden. Alternativ kann dies auch zu jedem anderen von Ihnen gewünschten Zeitpunkt stattfinden. Die Dateinamen lauten: │ │ │ │ │ • Paket.cron.hourly - wird als /etc/cron.hourly/Paket installiert: Ausführung einmal pro Stunde. │ │ │ │ │ @@ -2013,15 +2013,15 @@ │ │ │ │ │ Kopie /usr/share/doc/doc-base/doc-base.html/index.html, die vom Paket doc-base bereitgestellt wird. │ │ │ │ │ Für weitere Details über das Installieren von zusätzlicher Dokumentation sehen Sie bitte in Abschnitt 3.3 nach. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 5.7 │ │ │ │ │ │ │ │ │ │ -35 / 62 │ │ │ │ │ +35 / 63 │ │ │ │ │ │ │ │ │ │ docs │ │ │ │ │ │ │ │ │ │ Diese Datei enthält die Dateinamen der Dokumentationsdateien, die dh_installdocs(1) für uns in das temporäre Verzeichnis installiert. │ │ │ │ │ Standardmäßig schließt das alle Dateien im obersten Verzeichnis des Quellcodes ein, die da heißen »BUGS«, »README*«, │ │ │ │ │ »TODO« usw. │ │ │ │ │ Für gentoo werden noch weitere Dateien hinzugefügt: │ │ │ │ │ @@ -2067,15 +2067,15 @@ │ │ │ │ │ │ │ │ │ │ Falls Sie das nicht benötigen, löschen Sie die Dateien. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 5.11 │ │ │ │ │ │ │ │ │ │ -36 / 62 │ │ │ │ │ +36 / 63 │ │ │ │ │ │ │ │ │ │ install │ │ │ │ │ │ │ │ │ │ Falls es Dateien gibt, die in Ihr Paket installiert werden müssen, die aber vom Standardaufruf »make install« nicht erfasst │ │ │ │ │ werden, schreiben Sie diese Dateinamen und Ziele in die Datei install. Sie werden dann von dh_install(1) installiert. 2 Sie │ │ │ │ │ sollten zunächst überprüfen, ob es nicht ein spezielleres Werkzeug gibt, das verwendet werden kann. Beispielsweise sollten │ │ │ │ │ Dokumente in der Datei docs stehen und nicht in dieser hier. │ │ │ │ │ @@ -2120,15 +2120,15 @@ │ │ │ │ │ manpage.* │ │ │ │ │ │ │ │ │ │ Ihr(e) Programm(e) sollte(n) eine Handbuchseite haben. Ist keine vorhanden, sollten Sie sie erstellen. Der Befehl dh_make │ │ │ │ │ erzeugt einige Vorlagendateien für Handbuchseiten. Diese müssen für jeden Befehl kopiert und bearbeitet werden, dem eine │ │ │ │ │ Handbuchseite fehlt. Bitte löschen Sie alle nicht benutzten Vorlagen. │ │ │ │ │ 2Dies ersetzt den veralteten Befehl dh_movefiles(1), der durch die Datei files konfiguriert wurde. │ │ │ │ │ │ │ │ │ │ - 37 / 62 │ │ │ │ │ + 37 / 63 │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 5.15.1 │ │ │ │ │ │ │ │ │ │ manpage.1.ex │ │ │ │ │ │ │ │ │ │ @@ -2200,15 +2200,15 @@ │ │ │ │ │ • Umbenennen der Quelldatei in etwas wie gentoo.1.xml │ │ │ │ │ • Installieren Sie das Paket docbook-xsl und einen XSLT-Prozessor wie xsltproc (empfohlen). │ │ │ │ │ 3Beachten Sie, dass die Platzhalter-Handbuchseite von help2man behaupten wird, dass detailliertere Informationen im info-System vorhanden seien. Falls │ │ │ │ │ dem Befehl eine Info-Seite fehlt, sollten Sie die von help2man erstellte Handbuchseite manuell bearbeiten. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -38 / 62 │ │ │ │ │ +38 / 63 │ │ │ │ │ │ │ │ │ │ • Fügen Sie docbook-xsl, docbook-xml und xsltproc der Zeile Build-Depends in der Datei control hinzu │ │ │ │ │ • Fügen Sie das Target override_dh_auto_build in Ihrer Datei rules hinzu: │ │ │ │ │ override_dh_auto_build: │ │ │ │ │ xsltproc --nonet \ │ │ │ │ │ --param make.year.ranges 1 \ │ │ │ │ │ --param make.single.year.ranges 1 \ │ │ │ │ │ @@ -2253,15 +2253,15 @@ │ │ │ │ │ sichere Voreinstellung wählen (beispielsweise den Service deaktivieren) und die von den Richtlinien verlangte ausführliche Information (README.Debian und NEWS.Debian) bereitstellen. Belästigen Sie den Benutzer nicht mit debconf-Hinweisen, │ │ │ │ │ die von den Betreuerskripten bei Upgrades angezeigt werden. │ │ │ │ │ ⁴Trotz der hier verwendeten Abkürzungssyntax {pre,post}{inst,rm} von bash, um die Dateinamen zu bezeichnen, sollten Sie reine POSIX-Syntax │ │ │ │ │ für diese Betreuerskripte verwenden, um kompatibel zu der Verwendung von dash als System-Shell zu bleiben. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -39 / 62 │ │ │ │ │ +39 / 63 │ │ │ │ │ │ │ │ │ │ Das Paket ucf stellt eine ähnliche Infrastruktur wie für Dateien zur Verfügung, die als Conffile gekennzeichnet wurden. Damit │ │ │ │ │ bleiben von Benutzern durchgeführte Änderungen an Dateien erhalten, auch wenn diese Dateien nicht als Conffiles gekennzeichnet werden können. Beispiele hierfür sind Dateien, die von den Betreuerskripten verwaltet werden. Hierdurch sollen Probleme in │ │ │ │ │ der Behandlung dieser Dateien minimiert werden. │ │ │ │ │ Diese Betreuerskripte gehören zu den Errungenschaften von Debian, die erklären, warum jemand Debian verwendet. Sie müssen sehr darauf achten, diese Skripte nicht zu einem Grund für Ärger werden zu lassen. │ │ │ │ │ │ │ │ │ │ 5.19 │ │ │ │ │ @@ -2309,15 +2309,15 @@ │ │ │ │ │ │ │ │ │ │ In der Datei debian/source/format soll eine einzelne Zeile stehen, in der das gewünschte Format für das Quellpaket │ │ │ │ │ angegeben wird (lesen Sie dpkg-source(1) für eine ausführliche Liste). Nach Squeeze sollte dort entweder: │ │ │ │ │ • 3.0 (native) für native Debian-Pakete oder │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -40 / 62 │ │ │ │ │ +40 / 63 │ │ │ │ │ │ │ │ │ │ • 3.0 (quilt) für alles andere stehen. │ │ │ │ │ Das neuere Quellformat 3.0 (quilt) zeichnet Änderungen in einer Patchserie im Verzeichnis debian/patches für quilt │ │ │ │ │ auf. Diese Änderungen werden dann während des Entpackens des Quellpakets automatisch angewendet. ⁵ Die Debian-spezifischen │ │ │ │ │ Änderungen werden einfach in einem Archiv namens debian.tar.gz gespeichert, das alle Dateien im Verzeichnis debian │ │ │ │ │ enthält. Mit diesem neuen Format können binäre Dateien wie PNG-Icons vom Paketbetreuer eingebunden werden, ohne Tricks │ │ │ │ │ anwenden zu müssen. ⁶ │ │ │ │ │ @@ -2364,15 +2364,15 @@ │ │ │ │ │ ⁵Siehe DebSrc3.0 (http://wiki.debian.org/Projects/DebSrc3.0) für eine Zusammenfassung zum Wechsel auf die neuen Quellformate 3.0 (quilt) und │ │ │ │ │ 3.0 (native). │ │ │ │ │ ⁶Tatsächlich unterstützt dieses neue Format sogar mehrere ursprüngliche Tarbälle und mehr Kompressionsmethoden. Dies würde in diesem Dokument aber │ │ │ │ │ zu weit führen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -41 / 62 │ │ │ │ │ +41 / 63 │ │ │ │ │ │ │ │ │ │ Das neuere Quellformat 3.0 (quilt) speichert Patches in debian/patches/*-Dateien unter Verwendung des Befehls │ │ │ │ │ quilt ab. Diese Patches sowie andere Paketdaten bleiben alle innerhalb des Verzeichnisses debian und werden als debian. │ │ │ │ │ tar.gz-Datei gepackt. Da der Befehl dpkg-source in 3.0 (quilt)-Quellen die Patch-Daten im quilt-Format verarbeiten │ │ │ │ │ kann, ohne auf das Paket quilt zurückzugreifen, wird keine Build-Depends für quilt benötigt. ⁷ │ │ │ │ │ Der Befehl quilt wird in der Handbuchseite von quilt(1) erklärt. Er zeichnet Änderungen an den Quellen als Stapel von -p1Patch-Dateien im Verzeichnis debian/patches auf, dadurch bleibt der Quelltextbaum außerhalb des debian-Verzeichnisses │ │ │ │ │ unangetastet. Die Reihenfolge der Patches wird in der Datei debian/patches/series gespeichert. Sie können die Patches │ │ │ │ │ @@ -2395,15 +2395,15 @@ │ │ │ │ │ │ │ │ │ │ ⁷Es wurden verschiedene Methoden für die Organisation der Patches in Debian-Paketen vorgeschlagen und auch angewendet. Das quilt-System ist das bevorzugteste Organisationssystem. Weitere Systeme sind u.A. dpatch, dbs und cdbs. Viele von diesen Systemen speichern solche Patches in debian/patches/*Dateien ab. │ │ │ │ │ ⁸Falls Sie einen Sponsor darum bitten, Ihr Paket hochzuladen, ist diese Art der klaren Aufteilung und Dokumentation Ihrer Änderungen sehr wichtig, um │ │ │ │ │ die Durchsicht Ihres Pakets durch den Sponsor zu beschleunigen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -42 / 62 │ │ │ │ │ +42 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 6 │ │ │ │ │ │ │ │ │ │ Bau des Pakets │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ @@ -2432,15 +2432,15 @@ │ │ │ │ │ Für nicht native Debian-Pakete, z.B. gentoo, werden Sie die folgenden Dateien im übergeordneten Verzeichnis (~/gentoo) │ │ │ │ │ nach dem Paketbau sehen: │ │ │ │ │ 1Dieser GPG-Schlüssel muss von einem Debian-Entwickler signiert worden sein, um mit dem Vertrauensnetz verbunden zu sein, und muss im DebianSchlüsselring (http://keyring.debian.org) registriert sein. Dies ermöglicht es, dass Ihre hochgeladenen Pakete im Debian-Archiv akzeptiert werden. Lesen Sie │ │ │ │ │ Creating a new GPG key (http://keyring.debian.org/creating-key.html) und Debian Wiki on Keysigning (http://wiki.debian.org/Keysigning ) . │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -43 / 62 │ │ │ │ │ +43 / 63 │ │ │ │ │ │ │ │ │ │ • gentoo_0.9.12.orig.tar.gz │ │ │ │ │ Dies ist der ursprüngliche Quelltext-Tarball der Originalautoren, lediglich umbenannt, um dem Debian-Standard zu genügen. │ │ │ │ │ Beachten Sie, dass diese Umbenennung beim initialen Aufruf von »dh_make -f ../gentoo-0.9.12.tar.gz« erfolgt │ │ │ │ │ ist. │ │ │ │ │ • gentoo_0.9.12-1.dsc │ │ │ │ │ Dies ist eine Zusammenfassung des Inhalts des Quellcode-Pakets. Diese Datei wird aus Ihrer Datei control erzeugt und für │ │ │ │ │ @@ -2480,15 +2480,15 @@ │ │ │ │ │ 2Sie können das Anwenden der quilt-Patches im 3.0 (quilt)-Quellformat am Ende des Auspackens verhindern, indem Sie die Option │ │ │ │ │ --skip-patches benutzen. Alternativ können Sie »dquilt pop -a« nach dem normalen Auspacken aufrufen. │ │ │ │ │ 3Das tatsächliche Autobuilder-System besteht aus einem wesentlich komplizierteren Schema als dem hier dargestellten. Diese Details führen aber hier zu │ │ │ │ │ weit. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -44 / 62 │ │ │ │ │ +44 / 63 │ │ │ │ │ │ │ │ │ │ • des Pakets build-essential und │ │ │ │ │ • der Pakete, die im Feld Build-Depends (siehe Abschnitt 4.1) aufgeführt sind. │ │ │ │ │ Dann führt es den folgenden Befehl im Quellverzeichnis aus: │ │ │ │ │ $ dpkg-buildpackage -B │ │ │ │ │ │ │ │ │ │ Hiermit wird alles erledigt, um ein architekturabhängiges Binärpaket für eine andere Architektur zu erstellen. Im Einzelnen: │ │ │ │ │ @@ -2524,15 +2524,15 @@ │ │ │ │ │ ⁴Im Gegensatz zum pbuilder-Paket erzwingt die chroot-Umgebung im Paket sbuild, die vom Autobuilder-System verwendet wird, keine Verwendung │ │ │ │ │ einer Minimalumgebung. Daher können übriggebliebene Pakete installiert sein. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 6.4 │ │ │ │ │ │ │ │ │ │ -45 / 62 │ │ │ │ │ +45 / 63 │ │ │ │ │ │ │ │ │ │ Das Paket pbuilder │ │ │ │ │ │ │ │ │ │ Um die Abhängigkeiten für den Bau in einer sauberen Umgebung (chroot) zu überprüfen, ist das Paket pbuilder sehr gut │ │ │ │ │ geeignet. ⁵ Es stellt sicher, dass das Paket aus den Quellen auf einem Sid-Autobuilder für verschiedene Architekturen gebaut │ │ │ │ │ werden kann. Weiterhin wird hierdurch ein schwerwiegender FTBFS-Fehler (»Fails To Build From Source«, kann nicht aus den │ │ │ │ │ Quellen gebaut werden) verhindert, der immer als release-kritisch (RC) angesehen wird. ⁶ │ │ │ │ │ @@ -2575,15 +2575,15 @@ │ │ │ │ │ ⁵Weil das Paket pbuilder ständig weiterentwickelt wird, sollten Sie die tatsächliche Konfiguration herausfinden, indem Sie die aktuelle offizielle Dokumentation durchlesen. │ │ │ │ │ ⁶Lesen Sie http://buildd.debian.org/ für weitere Informationen über das automatische Bauen von Debian-Paketen. │ │ │ │ │ ⁷Dies setzt HOOKDIR=/var/cache/pbuilder/hooks voraus. Sie finden viele Beispiele für Hook-Skripte im Verzeichnis /usr/share/doc/ │ │ │ │ │ pbuilder/examples. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -46 / 62 │ │ │ │ │ +46 / 63 │ │ │ │ │ │ │ │ │ │ } │ │ │ │ │ install_packages lintian │ │ │ │ │ echo ”+++ Lintian-Ausgabe +++” │ │ │ │ │ su -c ”lintian -i -I --show-overrides /tmp/buildd/*.changes” - pbuilder │ │ │ │ │ # Verwenden Sie diese Version, falls Lintian beim Bau nicht fehlschlagen soll │ │ │ │ │ #su -c ”lintian -i -I --show-overrides /tmp/buildd/*.changes; :” - pbuilder │ │ │ │ │ @@ -2628,15 +2628,15 @@ │ │ │ │ │ binäre Deltadatei und den Inhalt des Tarballs verwendet, der typischerweise im Zweig upstream des VCS gehalten wird. │ │ │ │ │ 12Hier sind einige Quellen im Web für fortgeschrittene Anwender. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 6.6 │ │ │ │ │ │ │ │ │ │ -47 / 62 │ │ │ │ │ +47 / 63 │ │ │ │ │ │ │ │ │ │ Schneller Neubau │ │ │ │ │ │ │ │ │ │ Bei einem großen Paket wollen Sie bestimmt nicht alles nach jeder kleiner Änderung in debian/rules neu kompilieren. Für │ │ │ │ │ Testzwecke können Sie folgendermaßen eine .deb-Datei erstellen, ohne alle Schritte durchzumachen13: │ │ │ │ │ $ fakeroot debian/rules binary │ │ │ │ │ │ │ │ │ │ @@ -2669,15 +2669,15 @@ │ │ │ │ │ • »Using Git for Debian Packaging (http://www.eyrie.org/~eagle/notes/debian/git.html) « │ │ │ │ │ • »git-dpm: Debian packages in Git manager (http://git-dpm.alioth.debian.org/) « │ │ │ │ │ 13Umgebungsvariablen, die normalerweise auf vernünftige Werte gesetzt sind, werden bei dieser Methode nicht eingerichtet. Erstellen Sie niemals echte │ │ │ │ │ Pakete, die hochgeladen werden sollen, mit dieser schnellen Methode. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -48 / 62 │ │ │ │ │ +48 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 7 │ │ │ │ │ │ │ │ │ │ Überprüfen des Pakets auf Fehler │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ @@ -2714,15 +2714,15 @@ │ │ │ │ │ │ │ │ │ │ Alle Betreuerskripte (das heißt, die Dateien preinst, prerm, postinst und postrm) sind schwer korrekt zu schreiben, │ │ │ │ │ falls Sie nicht vom Programm debhelper automatisch erstellt werden. Verwenden Sie sie daher als neuer Betreuer nicht (siehe │ │ │ │ │ Abschnitt 5.18). │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -49 / 62 │ │ │ │ │ +49 / 63 │ │ │ │ │ │ │ │ │ │ Falls das Paket nicht triviale Betreuerskripte verwendet, testen Sie nicht nur die Installation, sondern auch das Entfernen, das │ │ │ │ │ vollständige Entfernen und den Upgrade-Prozess. Viele Betreuerskriptfehler zeigen sich, wenn Pakete entfernt oder endgültig │ │ │ │ │ entfernt werden. Verwenden Sie für die Tests den Befehl dpkg wie folgt: │ │ │ │ │ $ sudo dpkg -r gentoo │ │ │ │ │ $ sudo dpkg -P gentoo │ │ │ │ │ $ sudo dpkg -i gentoo_Version-Revision_i386.deb │ │ │ │ │ @@ -2762,15 +2762,15 @@ │ │ │ │ │ debuild(1) oder pdebuild(1) verwenden. │ │ │ │ │ 1Sie müssen die Option -i -I --show-overrides von lintian angeben, falls Sie /etc/devscripts.conf oder ~/.devscripts wie in Abschnitt 6.3 beschrieben angepasst haben. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ 7.5 │ │ │ │ │ │ │ │ │ │ -50 / 62 │ │ │ │ │ +50 / 63 │ │ │ │ │ │ │ │ │ │ Der Befehl debc │ │ │ │ │ │ │ │ │ │ Sie können Dateien im binären Debian-Paket mit dem Befehl debc(1) auflisten. │ │ │ │ │ $ debc package.changes │ │ │ │ │ │ │ │ │ │ 7.6 │ │ │ │ │ @@ -2805,15 +2805,15 @@ │ │ │ │ │ werden. Er ermöglicht es Ihnen, nicht nur die Inhalte eines *.deb-Pakets anzuschauen, sondern auch die von *.udeb, *. │ │ │ │ │ debian.tar.gz, *.diff.gz und *.orig.tar.gz-Dateien. │ │ │ │ │ Schauen Sie nach zusätzlichen, nicht benötigten Dateien oder solchen der Länge 0, sowohl im binären als auch im Quellpaket. │ │ │ │ │ Oft werden (Programm-)Reste nicht korrekt bereinigt; passen Sie Ihre Datei rules an, um dies zu ermöglichen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -51 / 62 │ │ │ │ │ +51 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 8 │ │ │ │ │ │ │ │ │ │ Aktualisieren des Pakets │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ @@ -2844,15 +2844,15 @@ │ │ │ │ │ #654321. Auf diese Art wird der Fehlerbericht automatisch geschlossen, sobald Ihre neue Paketversion im Archiv akzeptiert wird. │ │ │ │ │ • Wiederholen Sie die obigen Schritte, um weitere Fehler zu beheben, und aktualisieren Sie dabei die Debian-Datei changelog │ │ │ │ │ mit dch. │ │ │ │ │ 1Um das Datum in das benötigte Format zu bekommen, verwenden Sie LANG=C date -R. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -52 / 62 │ │ │ │ │ +52 / 63 │ │ │ │ │ │ │ │ │ │ • Wiederholen Sie die Tätigkeiten aus Abschnitt 6.1 und Kapitel 7. │ │ │ │ │ • Sobald Sie zufrieden sind, sollten Sie den Wert für die Distribution im changelog von UNRELEASED auf den Ziel-Distributionswert │ │ │ │ │ unstable (oder ggf. experimental) setzen.2 │ │ │ │ │ • Laden Sie Ihr Paket wie in Kapitel 9 beschrieben hoch. Der Unterschied besteht darin, dass Sie diesmal das ursprüngliche │ │ │ │ │ Quellarchiv nicht beifügen, da es sich nicht geändert hat und im Debian-Archiv bereits existiert. │ │ │ │ │ Ein schwieriger Fall kann auftreten, falls Sie ein lokales Paket erstellen, um mit dem Paketieren zu experimentieren, bevor Sie │ │ │ │ │ @@ -2897,15 +2897,15 @@ │ │ │ │ │ 2Falls Sie den Befehl dch -r zur Durchführung dieser letzten Änderung verwenden, stellen Sie sicher, dass Sie die Datei changelog explizit im Editor │ │ │ │ │ speichern. │ │ │ │ │ 3Falls ein Paket foo im alten Format 1.0 paketiert ist, kann dies stattdessen durch zcat /Pfad/nach/foo_alte_Version.diff.gz|patch │ │ │ │ │ -p1 in der neuen entpackten Quelle durchgeführt werden. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -53 / 62 │ │ │ │ │ +53 / 63 │ │ │ │ │ │ │ │ │ │ Falls das Patchen/Zusammenfügen nicht reibungsfrei lief, prüfen Sie die Situation (Hinweise verbleiben in .rej-Dateien). │ │ │ │ │ • Falls ein Patch, den Sie an den Quellen angewandt hatten, in die Quellen der Originalautoren integriert wurde, │ │ │ │ │ – führen Sie dquilt delete aus, um ihn zu entfernen. │ │ │ │ │ • Falls ein Patch, den Sie auf die Quellen anwandten, mit den neuen Änderungen in den Quellen der Originalautoren in Konflikt │ │ │ │ │ steht, │ │ │ │ │ – wenden Sie dquilt push -f an, um die alten Patches anzuwenden und Rückweisungen als baz.rej zu erzwingen. │ │ │ │ │ @@ -2948,15 +2948,15 @@ │ │ │ │ │ ⁴Falls der Befehl uscan die aktualisierten Quellen herunterlädt, aber nicht den Befehl uupdate ausführt, sollten Sie die Datei debian/watch korrigieren, │ │ │ │ │ um debian uupdate am Ende der URL zu haben. │ │ │ │ │ ⁵Falls Ihr Sponsor oder andere Betreuer dem Aktualisieren des Paketierungsstils widersprechen, argumentieren Sie nicht. Es gibt wichtigere Dinge zu │ │ │ │ │ erledigen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -54 / 62 │ │ │ │ │ +54 / 63 │ │ │ │ │ │ │ │ │ │ • Falls Sie die mit dem Makefile-Einschlussmechanismus des Common Debian Build System (cdbs) erzeugte Datei rules in │ │ │ │ │ die dh-Syntax umwandeln wollen, schauen Sie sich die folgenden Informationen an, um seine DEB_*-Konfigurationsvariablen │ │ │ │ │ zu verstehen: │ │ │ │ │ – lokale Kopie von /usr/share/doc/cdbs/cdbs-doc.pdf.gz │ │ │ │ │ – The Common Debian Build System (CDBS), FOSDEM 2009 (http://meetings-archive.debian.net/pub/debian-meetings/2009/fosdem/slides/The_Common_Debian_Build_System_CDBS/) │ │ │ │ │ • Falls Sie ein 1.0-Quellpaket ohne die Datei foo.diff.gz haben, können Sie sie auf das neuere Quellformat 3.0 (native) │ │ │ │ │ @@ -2998,25 +2998,25 @@ │ │ │ │ │ • Existierende Debian-Änderungen müssen neu geprüft werden; entfernen Sie Dinge, die die Originalautoren integriert haben (in │ │ │ │ │ einer oder der anderen Form) und denken Sie daran, Dinge zu behalten, die noch nicht integriert wurden, falls es nicht doch │ │ │ │ │ überzeugende Gründe für die Entfernung gibt. │ │ │ │ │ ⁶Mit dem Befehl splitdiff können Sie gross.diff in viele kleine, inkrementelle Patches zerteilen. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -55 / 62 │ │ │ │ │ +55 / 63 │ │ │ │ │ │ │ │ │ │ • Falls Änderungen am Bausystem vorgenommen wurden (hoffentlich wissen Sie es bei der Prüfung der Änderungen der Originalautoren), aktualisieren Sie debian/rules und die Bauabhängigkeiten in debian/control, falls notwendig. │ │ │ │ │ • Prüfen Sie in der Fehlerdatenbank (BTS) (http://www.debian.org/Bugs/) , ob jemand Patches für derzeit offene Fehler bereitgestellt hat. │ │ │ │ │ • Prüfen Sie den Inhalt der Datei .changes, um sicherzustellen, dass Sie in die korrekte Distribution hochladen, die richtigen │ │ │ │ │ Fehlerschließanweisungen im Feld Closes enthalten sind, die Felder Maintainer and Changed-By passen, die Datei │ │ │ │ │ GPG-signiert ist usw. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -56 / 62 │ │ │ │ │ +56 / 63 │ │ │ │ │ │ │ │ │ │ Kapitel 9 │ │ │ │ │ │ │ │ │ │ Das Paket hochladen │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ @@ -3050,15 +3050,15 @@ │ │ │ │ │ 3Das Paket dput scheint mehr Funktionalitäten zu enthalten und beliebter als das Paket dupload zu werden. Es verwendet die Datei /etc/dput für seine │ │ │ │ │ globale Konfiguration und die Datei ~/.dput.cf für die benutzerspezifische Konfiguration. Es unterstützt auch standardmäßig Ubuntu-bezogene Dienste. │ │ │ │ │ ⁴Siehe Debian-Entwicklerreferenz 5.6, »Ein Paket hochladen« (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#upload) . │ │ │ │ │ ⁵Lesen Sie ftp://ftp.upload.debian.org/pub/UploadQueue/README. Alternativ können Sie den Befehl dcut aus dem Paket dput verwenden. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -57 / 62 │ │ │ │ │ +57 / 63 │ │ │ │ │ │ │ │ │ │ -----BEGIN PGP SIGNED MESSAGE----Hash: SHA1 │ │ │ │ │ Uploader: Foo Bar │ │ │ │ │ Commands: │ │ │ │ │ rm hello_1.0-1_i386.deb │ │ │ │ │ mv hello_1.0-1.dsx hello_1.0-1.dsc │ │ │ │ │ -----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.10 (GNU/Linux) │ │ │ │ │ @@ -3096,176 +3096,181 @@ │ │ │ │ │ $ debuild -v1.2 │ │ │ │ │ │ │ │ │ │ Für den Befehl pdebuild: │ │ │ │ │ $ pdebuild --debbuildopts ”-v1.2” │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -58 / 62 │ │ │ │ │ +58 / 63 │ │ │ │ │ │ │ │ │ │ Anhang A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +Fortgeschrittene Paketierung │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) verfügbar. Bitte verwenden Sie diese neue Anleitung als │ │ │ │ │ primäre Anleitung. │ │ │ │ │ -Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ -to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +Es folgen einige Tipps und Verweise für fortgeschrittene Paketierungsfragen, mit denen Sie wahrscheinlich zu tun bekommen │ │ │ │ │ +werden. Es wird Ihnen nachdrücklich empfohlen, alle hier vorgeschlagenen Referenzen zu lesen. │ │ │ │ │ +Es könnte sein, dass Sie die durch den Befehl dh_make erstellten Paketierungsvorlagedateien manuell bearbeiten müssen, um │ │ │ │ │ +Punkte aus diesem Kapitel zu berücksichtigen. Der neuere Befehl debmake sollte diese Punkte besser berücksichtigen. │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +Laufzeit-Bibliothek │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ -• Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ -• Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ -• Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -• Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -• Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -• Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -• Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ -• Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ -to them from the linked executables. │ │ │ │ │ -• The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -• The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -• The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +Bevor Sie Laufzeit-Bibliotheken paketieren, sollten Sie die folgenden Referenzen im Detail lesen: │ │ │ │ │ +• Debian Policy Manual, Kapitel 8 »Shared libraries« (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ +• Debian Policy Manual, Kapitel 9.1.1 »File System Structure« (http://www.debian.org/doc/debian-policy/ch-opersys.html#sfhs) │ │ │ │ │ +• Debian Policy Manual, Kapitel 10.2 »Libraries« (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ +Es folgen einige stark vereinfachte Tipps für den Anfang: │ │ │ │ │ +• Laufzeitbibliotheken (engl. »shared libraries«) sind ELF-Objektdateien, die übersetzten Code enthalten. │ │ │ │ │ +• Laufzeitbibliotheken werden als *.so-Dateien vertrieben, d.h. weder als *.a- noch als *.la-Dateien. │ │ │ │ │ +• Laufzeitbibliotheken werden hauptsächlich benutzt, um gemeinsamen Programmcode aus mehreren Programmen mittels des │ │ │ │ │ +ld-Mechanismus’ gemeinsam zu nutzen. │ │ │ │ │ +• Laufzeitbibliotheken werden manchmal dazu benutzt, mehrere Erweiterungen eines Programms mittels des dlopen-Mechanismus’ │ │ │ │ │ +bereitzustellen. │ │ │ │ │ +• Laufzeitbibliotheken exportieren Symbole, die übersetzte Objekte wie Variablen, Funktionen und Klassen darstellen und darauf │ │ │ │ │ +Zugriff von dem verlinkten Programm ermöglichen. │ │ │ │ │ +• Der SONAME einer Laufzeitbibliothek libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ +• Der SONAME einer Laufzeitbibliothek passt typischerweise (aber nicht immer) auf den Dateinamen der Bibliothek. │ │ │ │ │ +1Alternativ: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -59 / 62 │ │ │ │ │ - │ │ │ │ │ -• libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -• The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ -• libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ -• libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ -• Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ -• Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -• Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +59 / 63 │ │ │ │ │ + │ │ │ │ │ +• Der SONAME von Laufzeitbibliotheken, die nach /usr/bin/foo gelinkt sind: objdump -p /usr/bin/foo | grep │ │ │ │ │ +NEEDED 2 │ │ │ │ │ +• libfoo1: das Paket für die Laufzeitbibliothek libfoo.so.1 mit der SONAME-ABI-Version 1.3 │ │ │ │ │ +• Die Paketbetreuerskripte des Bibliothekspakets müssen ldconfig unter den bestimmten Randbedingungen aufrufen, um die │ │ │ │ │ +notwendigen symbolischen Links für den SONAME zu erzeugen.⁴ │ │ │ │ │ +• libfoo1-dbg: das Fehlersuch-Symbol-Paket, das die Debugging-Symbole für das Laufzeitpaket libfoo1 enthält. │ │ │ │ │ +• libfoo-dev: das Entwicklungspaket, das die Header-Dateien usw. für die Laufzeitbibliothek libfoo.soenthält.1.⁵ │ │ │ │ │ +• Debian-Pakete sollten im Allgemeinen keine *.la-Libtool-Archive enthalten.⁶ │ │ │ │ │ +• Debian-Pakete sollten im Allgemeinen keinen RPATH enthalten.⁷ │ │ │ │ │ +• Obwohl er etwas veraltet und nur Sekundärliteratur ist, könnte der Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) noch nützlich sein. │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +debian/Paket.symbols verwalten │ │ │ │ │ │ │ │ │ │ -When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ -associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ -library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ -• Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ +Wenn Sie eine Laufzeitbibliothek paketieren, sollten Sie eine Datei debian/Paket.symbols erstellen, um die minimale │ │ │ │ │ +Version zu verwalten, die jedem Symbol für rückwärts-kompatible ABI-Änderungen unter dem gleichen SONAME der Bibliothek │ │ │ │ │ +für den gleichen Laufzeitbibliotheksnamen zugeordnet ist.⁸ Sie sollten die folgenden primären Referenzen im Detail lesen: │ │ │ │ │ +• Debian Policy Manual, Kapitel 8.6.3 »The symbols system« (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#ssharedlibs-symbols) ⁹ │ │ │ │ │ • dh_makeshlibs(1) │ │ │ │ │ • dpkg-gensymbols(1) │ │ │ │ │ • dpkg-shlibdeps(1) │ │ │ │ │ • deb-symbols(5) │ │ │ │ │ -Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ -libfoo1.symbols file: │ │ │ │ │ -• Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -– If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -– If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1.symbols │ │ │ │ │ -in its source package, use it again. │ │ │ │ │ -– If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ -from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ -for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ +Es folgt ein grobes Beispiel, wie das Paket libfoo1 aus der Version 1.3 der Originalautoren mit der korrekten Datei debian/ │ │ │ │ │ +libfoo1.symbols zu erstellen ist: │ │ │ │ │ +• Bereiten Sie das Gerüst des debianisierten Quellbaums mit der Datei der Originalautoren libfoo-1.3.tar.gz vor. │ │ │ │ │ +– Falls dies das erstmalige Paketieren des Pakets libfoo1 ist, erstellen Sie die Datei debian/libfoo1.symbols mit │ │ │ │ │ +leerem Inhalt. │ │ │ │ │ +– Falls die vorherige Version 1.2 der Originalautoren im Paket libfoo1 mit der korrekten debian/libfoo1.symbols │ │ │ │ │ +in seinem Quellpaket paketiert war, verwenden sie diese wieder. │ │ │ │ │ +2Alternativ: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +3Siehe Debian Policy Manual, Kapitel 8.1 »Run-time shared libraries« (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) │ │ │ │ │ +. │ │ │ │ │ +⁴Siehe Debian Policy Manual, Kapitel 8.1.1 »ldconfig« (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ +⁵Siehe Debian Policy Manual, Kapitel 8.3 »Static libraries« (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) und Debian │ │ │ │ │ +Policy Manual, Kapitel 8.4 »Development files« (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ +⁶Siehe Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +⁷Siehe Debian-Wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +⁸Rückwärts-inkompatible ABI-Änderungen verlangen normalerweise von Ihnen, dass Sie den SONAME der Bibliothek und den Namen des Laufzeitbibliothekspakets in neue SONAMEN bzw. Namen ändern. │ │ │ │ │ +⁹Für C++-Bibliotheken und andere Fälle, bei denen das Nachverfolgen individueller Symbole zu schwierig ist, folgen Sie stattdessen dem Debian Policy │ │ │ │ │ +Manual, Kapitel 8.6.4 »The shlibs system« (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) . │ │ │ │ │ + │ │ │ │ │ + Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ + │ │ │ │ │ +60 / 63 │ │ │ │ │ + │ │ │ │ │ +– Falls die vorhergehende Version 1.2 der Originalautoren nicht mit debian/libfoo1.symbols paketiert worden war, │ │ │ │ │ +erstellen Sie sie als Datei symbols von allen verfügbaren Binärpaketen des selben Laufzeitbibliotheksnamens, der den │ │ │ │ │ +gleichen SONAME der Bibliothek enthält, beispielsweise Version 1.1-1 und 1.2-1. 10 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ - Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ - │ │ │ │ │ -60 / 62 │ │ │ │ │ - │ │ │ │ │ -• Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ -were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ -libfoo1a and you should start over again.) │ │ │ │ │ +• Bauen Sie mit Werkzeugen wie debuild und pdebuild versuchsweise den Quellbaum. (Falls das aufgrund fehlender Symbole usw. fehlschlägt, gibt es einige rückwärtsinkompatible ABI-Änderungen, die es notwendig machen, den Paketnamen der │ │ │ │ │ +Laufzeitbibliothek auf etwas wie libfoo1a zu erhöhen. Sie sollten dann wieder von vorne anfangen.) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ -dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ -see diff output below │ │ │ │ │ +dpkg-gensymbols: Warnung: einige neue Symbole sind in der Symboldatei aufgetaucht: b’’… │ │ │ │ │ +b’’ │ │ │ │ │ +lesen Sie die folgende Diff-Ausgabe │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx │ │ │ │ │ 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ foo_get_name@Base 1.1 │ │ │ │ │ foo_get_longname@Base 1.2 │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -• If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ -binary package of the shared library. 11 │ │ │ │ │ +• Falls Sie wie oben den von dpkg-gensymbols ausgegebenen Diff sehen, extrahieren Sie die korrekt aktualisierte symbolsDatei aus dem erstellten Binärpaket der Laufzeitbibliothek. 11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -• Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +• Bauen Sie mit Werkzeugen wie debuild und pdebuild die Veröffentlichungspakete. │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ -... │ │ │ │ │ +b’’…b’’ │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ - │ │ │ │ │ -A.3 │ │ │ │ │ +Zusätzlich zu den obigen Beispielen müssen wir die ABI-Kompatibilität weiter prüfen und die Versionen für einige Symbole wo │ │ │ │ │ +notwendig erhöhen. 12 │ │ │ │ │ +Obwohl es nur eine nachrangige Referenz ist, könnte UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) im Debian │ │ │ │ │ +Wiki sowie die darin verlinkten Webseiten hilfreich sein. │ │ │ │ │ +10Alle vorhergehenden Versionen eines Pakets sind unter http://snapshot.debian.org/ (http://snapshot.debian.org/) erhältlich. Die Debian-Revision wird von │ │ │ │ │ +der Version entfernt, um das Rückportieren eines Paketes zu erleichtern: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ +11Die Debian-Revision wird von der Version entfernt, um das Rückportieren eines Paketes zu erleichtern: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12Siehe Debian Policy Manual, Kapitel 8.6.2 »Shared library ABI changes« (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibsupdates) . │ │ │ │ │ │ │ │ │ │ -Multiarch │ │ │ │ │ + 61 / 63 │ │ │ │ │ │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages (particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in detail: │ │ │ │ │ -• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ - 61 / 62 │ │ │ │ │ +A.3 │ │ │ │ │ │ │ │ │ │ -Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ +Multiarch │ │ │ │ │ │ │ │ │ │ -Old path │ │ │ │ │ +Die Multiarch-Funktionalität, die mit Debian Wheezy eingeführt wurde, unterstützt die architekturübergreifende Installation von │ │ │ │ │ +Binärpaketen (insbesondere i386<->amd64, aber auch andere Kombinationen) in dpkg und apt. Sie sollten die folgenden │ │ │ │ │ +Referenzen im Detail lesen: │ │ │ │ │ +• MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) im Ubuntu Wiki (Originalautoren) │ │ │ │ │ +• Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) im Debian Wiki (Debian-Situation) │ │ │ │ │ +Es verwendet ein Triplet wie i386-linux-gnu und x86_64-linux-gnu für den Installationspfad der Laufzeitbibliotheken. Der tatsächliche Triplett-Pfad wird durch dpkg-architecture(1) für jeden Bau dynamisch in $(DEB_HOST_MULTIARCH) │ │ │ │ │ +gesetzt. Beispielsweise werden die Pfade zu Multiarch-Bibliotheken wie folgt geändert:13 │ │ │ │ │ +Alter Pfad │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +I386-Multiarch-Pfad │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +Amd64-Multiarch-Pfad │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -• a library source libfoo-1.tar.gz │ │ │ │ │ -• a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -• a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ -Package │ │ │ │ │ +Es gibt einige typische Beispiele für Multiarch-Paketaufteilungsszenarien: │ │ │ │ │ +• eine Bibliotheksquelle libfoo-1.tar.gz │ │ │ │ │ +• eine in einer übersetzten Sprache geschriebene Werkzeugquelle bar-1.tar.gz │ │ │ │ │ +• eine in einer interpretierten Sprache geschriebene Werkzeugquelle baz-1.tar.gz │ │ │ │ │ +Paket │ │ │ │ │ libfoo1 │ │ │ │ │ libfoo1-dbg │ │ │ │ │ libfoo-dev │ │ │ │ │ libfoo-tools │ │ │ │ │ libfoo-doc │ │ │ │ │ bar │ │ │ │ │ bar-doc │ │ │ │ │ @@ -3287,94 +3292,101 @@ │ │ │ │ │ same │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ +Paketinhalt │ │ │ │ │ +die Laufzeitbibliothek, koinstallierbar │ │ │ │ │ +die Debug-Symbole der Laufzeitbibliothek, koinstallierbar │ │ │ │ │ +die Laufzeitbibliothek-Header-Dateien usw., koinstallierbar │ │ │ │ │ +die Laufzeitunterstützungsprogramme, nicht koinstallierbar │ │ │ │ │ +die Dokumentationsdateien der Laufzeitbibliothek │ │ │ │ │ +die übersetzten Programmdateien, nicht koinstallierbar │ │ │ │ │ +die Dokumentationsdateien für das Programm │ │ │ │ │ +die interpretierten Programmdateien │ │ │ │ │ │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +Beachten Sie, dass die Entwicklungspakete einen Symlink für die zugehörige Laufzeitbibliothek ohne eine Versionsnummer │ │ │ │ │ +enthalten sollten, z.B. /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +Erstellen eines Laufzeitbibliothekspakets │ │ │ │ │ │ │ │ │ │ -You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -• Update debian/control. │ │ │ │ │ -– Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -– Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -– Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ -• Set debian/compat to ”10”. │ │ │ │ │ -• Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ -– Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ -to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -– Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ -– If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ -replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -– Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ -– Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ -target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ +Sie können ein Debian-Laufzeitbibliothekspaket mit Unterstützung von Multiarch mit dh(1) wie folgt bauen: │ │ │ │ │ +• debian/control aktualisieren │ │ │ │ │ +– Build-Depends: debhelper (>=10) zum Quellpaketabschnitt hinzufügen │ │ │ │ │ +– Pre-Depends: ${misc:Pre-Depends} für jedes Laufzeitbibliothekspaket hinzufügen │ │ │ │ │ +– Fügen Sie den Multi-Arch:-Absatz zu jedem Binärpaketabschnitt hinzu. │ │ │ │ │ +• debian/compat auf »10« setzen │ │ │ │ │ +13Alte Spezialbibliothekspfade wie /lib32/ und /lib64/ werden nicht mehr benutzt. │ │ │ │ │ │ │ │ │ │ Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ │ │ │ │ │ -62 / 62 │ │ │ │ │ +62 / 63 │ │ │ │ │ │ │ │ │ │ +• Passen Sie für alle Paketierungsskripte die Pfade vom normalen /usr/lib/ auf die Multiarch-Variante /usr/lib/$(DEB_HOST_ │ │ │ │ │ +an. │ │ │ │ │ +– Zuerst DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/ │ │ │ │ │ +rules aufrufen, um die Variable DEB_HOST_MULTIARCH zu setzen. │ │ │ │ │ +– Ersetzen Sie in debian/rules /usr/lib/ durch /usr/lib/$(DEB_HOST_MULTIARCH)/. │ │ │ │ │ +– Falls ./configure als Teil des Ziels override_dh_auto_configure in debian/rules verwandt wird, stellen │ │ │ │ │ +Sie sicher, dass Sie es durch dh_auto_configure -- ersetzen. 1⁴ │ │ │ │ │ +– Ersetzen Sie in debian/foo.install-Dateien alle Vorkommen von /usr/lib/ durch /usr/lib/*/. │ │ │ │ │ +– Erstellen Sie dynamisch durch Hinzufügen eines Skripts im Ziel override_dh_auto_configure in debian/rules │ │ │ │ │ +Dateien wie debian/foo.links aus debian/foo.links.in. │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ -All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ -must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ +Bitte stellen Sie sicher, dass das Laufzeitbibliothekspaket nur die erwarteten Dateien enthält und dass Ihr -dev-Paket noch funktioniert. │ │ │ │ │ +Alle Dateien, die simultan aus dem Multiarch-Paket in den gleichen Dateipfad installiert werden, sollten exakt den gleichen │ │ │ │ │ +Inhalt haben. Sie müssen vorsichtig mit Unterschieden sein, die durch die Byte-Reihenfolge und den Kompressionsalgorithmus │ │ │ │ │ +entstehen. │ │ │ │ │ │ │ │ │ │ A.5 │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ +Natives Debian-Paket │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ -You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in │ │ │ │ │ -Abschnitt 2.1. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -• Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ -– package_version.tar.gz │ │ │ │ │ -– package_version.dsc │ │ │ │ │ -• Build Debian binary packages from the native Debian source package. │ │ │ │ │ -– package_version_arch.deb │ │ │ │ │ -For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ -package by issuing the dh_make command as follows: │ │ │ │ │ -$ cd ~/mypackage-1.0 │ │ │ │ │ +Falls ein Paket nur für Debian oder möglicherweise nur für lokale Benutzung betreut wird, können seine Quellen alle Dateien aus │ │ │ │ │ +debian/* enthalten. Es gibt zwei Möglichkeiten, dies zu paketieren: │ │ │ │ │ +Sie können einen Tarball der Originalautoren erstellen, bei dem Sie die debian/*-Dateien ausschließen und es als nicht natives │ │ │ │ │ +Debian-Paket wie in Abschnitt 2.1 paketieren. Dies ist die normale Art, zu der einige Leute raten. │ │ │ │ │ +Die Alternative wäre der Arbeitsablauf für ein natives Debian-Paket: │ │ │ │ │ +• Erstellen Sie ein natives Debian-Quellpaket im Format 3.0 (native) mit einer einzelnen komprimierten Tar-Datei, in der │ │ │ │ │ +alle Dateien enthalten sind. │ │ │ │ │ +– Paket_Version.tar.gz │ │ │ │ │ +– Paket_Version.dsc │ │ │ │ │ +• Bauen Sie Debian-Binärpakete aus den nativen Debian-Quellpaketen. │ │ │ │ │ +– Paket_Version_Arch.deb │ │ │ │ │ +Falls Sie beispielsweise Quelldateien in ~/mypackage-1.0 ohne die debian/*-Dateien haben, können Sie ein natives │ │ │ │ │ +Debian-Paket mittels des Befehls dh_make wie folgt erstellen: │ │ │ │ │ +$ cd ~/MeinPaket-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ -Then the debian directory and its contents are created just like in Abschnitt 2.8. This does not create a tarball, since this is a │ │ │ │ │ -native Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ -• mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ -• mypackage_1.0.dsc │ │ │ │ │ -This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -• mypackage_1.0_i386.deb │ │ │ │ │ -This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -• mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no Debian │ │ │ │ │ -revision.) │ │ │ │ │ +Dann werden das Verzeichnis debian und seine Inhalte genau wie in Abschnitt 2.8 erstellt. Dies erstellt keinen Tarball, da │ │ │ │ │ +dies ein natives Debian-Paket ist. Das ist aber auch der einzige Unterschied. Der Rest der Paketierungsaktivitäten ist praktisch │ │ │ │ │ +identisch. │ │ │ │ │ +Nach der Ausführung des Befehls dpkg-buildpackage werden Sie die folgenden Dateien im übergeordneten Verzeichnis finden: │ │ │ │ │ + │ │ │ │ │ +1⁴Alternativ können Sie die Argumente --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) und --libexecdir=\$${prefix}/lib/$(DEB_H │ │ │ │ │ +zu ./configure hinzufügen. Beachten Sie, dass --libexecdir den Standardpfad angibt, in den ausführbare Programme installiert werden, die von anderen │ │ │ │ │ +Programmen (nicht von Benutzern) ausgeführt werden. Die Vorgabe von Autotools ist /usr/libexec/, die Debian-Vorgabe ist allerdings /usr/lib/. │ │ │ │ │ + │ │ │ │ │ + Debian-Leitfaden für Neue Paketbetreuer │ │ │ │ │ + │ │ │ │ │ +63 / 63 │ │ │ │ │ + │ │ │ │ │ +• meinpaket_1.0.tar.gz │ │ │ │ │ +Dies ist der Quellcode-Tarball, der aus dem Verzeichnis MeinPaket-1.0 durch den Befehl dpkg-source erstellt wurde. │ │ │ │ │ +(Seine Endung ist nicht orig.tar.gz.) │ │ │ │ │ +• meinpaket_1.0.dsc │ │ │ │ │ +Dies ist eine Zusammenfassung der Inhalte des Quellcodes, wie in dem nicht nativen Debian-Paket. (Es gibt keine DebianRevision.) │ │ │ │ │ +• meinpaket_1.0_i386.deb │ │ │ │ │ +Dies ist Ihr komplettes Binärpaket wie in dem nicht nativen Debian-Paket. (Es gibt keine Debian-Revision.) │ │ │ │ │ +• meinpaket_1.0_i386.changes │ │ │ │ │ +Diese Datei beschreibt wie in dem nicht nativen Debian-Paket alle Änderungen, die in der aktuellen Paketversion erfolgten. │ │ │ │ │ +(Es gibt keine Debian-Revision.) │ │ │ ├── ./usr/share/doc/maint-guide-de/maint-guide.de.txt.gz │ │ │ │ ├── maint-guide.de.txt │ │ │ │ │ @@ -143,20 +143,20 @@ │ │ │ │ │ 8.4. Den Paketstil aktualisieren │ │ │ │ │ 8.5. UTF-8-Umstellung │ │ │ │ │ 8.6. Erinnerungen für die Paketaktualisierung │ │ │ │ │ 9. Das Paket hochladen │ │ │ │ │ 9.1. In das Debian-Archiv hochladen │ │ │ │ │ 9.2. Die Datei orig.tar.gz hochladen │ │ │ │ │ 9.3. Übersprungene Uploads │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ +A. Fortgeschrittene Paketierung │ │ │ │ │ + A.1. Laufzeit-Bibliothek │ │ │ │ │ + A.2. debian/Paket.symbols verwalten │ │ │ │ │ A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ + A.4. Erstellen eines Laufzeitbibliothekspakets │ │ │ │ │ + A.5. Natives Debian-Paket │ │ │ │ │ │ │ │ │ │ Kapitel 1. Einstieg, aber richtig! │ │ │ │ │ │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten │ │ │ │ │     und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers verfügbar. Bitte verwenden Sie diese neue Anleitung │ │ │ │ │ als primäre Anleitung. │ │ │ │ │ @@ -3117,16 +3117,16 @@ │ │ │ │ │ werden zu lassen. │ │ │ │ │ │ │ │ │ │ 5.19. Paket.symbols │ │ │ │ │ │ │ │ │ │ Die Paketierung einer Bibliothek ist für einen neuen Betreuer │ │ │ │ │ nicht leicht und sollte vermieden werden. Hat Ihr Paket │ │ │ │ │     allerdings Bibliotheken, dann sollten Sie eine Datei debian/Paket │ │ │ │ │ - .symbols haben. Lesen Sie Abschnitt A.2, „Managing debian/package │ │ │ │ │ - .symbols“. │ │ │ │ │ + .symbols haben. Lesen Sie Abschnitt A.2, „debian/Paket.symbols │ │ │ │ │ + verwalten“. │ │ │ │ │ │ │ │ │ │ 5.20. TODO │ │ │ │ │ │ │ │ │ │     Der Befehl dh_installdocs(1) installiert diese Datei. │ │ │ │ │ │ │ │ │ │ 5.21. watch │ │ │ │ │ │ │ │ │ │ @@ -4449,408 +4449,433 @@ │ │ │ │ │ │ │ │ │ │     ^[85] Siehe Debian-Entwicklerreferenz 5.6, »Ein Paket hochladen«. │ │ │ │ │ │ │ │ │ │ ^[86] Lesen Sie ftp://ftp.upload.debian.org/pub/UploadQueue/ │ │ │ │ │     README. Alternativ können Sie den Befehl dcut aus dem Paket dput │ │ │ │ │ verwenden. │ │ │ │ │ │ │ │ │ │ -Anhang A. Advanced packaging │ │ │ │ │ +Anhang A. Fortgeschrittene Paketierung │ │ │ │ │ │ │ │ │ │ Die Überarbeitung dieser Anleitung mit aktualisierten Inhalten │ │ │ │ │     und weiteren praktischen Beispielen ist unter Guide for Debian │ │ │ │ │ Maintainers verfügbar. Bitte verwenden Sie diese neue Anleitung │ │ │ │ │ als primäre Anleitung. │ │ │ │ │ │ │ │ │ │ - Here are some hints and pointers for advanced packaging topics │ │ │ │ │ -    that you are most likely to deal with. You are strongly advised │ │ │ │ │ - to read all the references suggested here. │ │ │ │ │ + Es folgen einige Tipps und Verweise für fortgeschrittene │ │ │ │ │ +    Paketierungsfragen, mit denen Sie wahrscheinlich zu tun bekommen │ │ │ │ │ + werden. Es wird Ihnen nachdrücklich empfohlen, alle hier │ │ │ │ │ + vorgeschlagenen Referenzen zu lesen. │ │ │ │ │ │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ + Es könnte sein, dass Sie die durch den Befehl dh_make erstellten │ │ │ │ │ +    Paketierungsvorlagedateien manuell bearbeiten müssen, um Punkte │ │ │ │ │ + aus diesem Kapitel zu berücksichtigen. Der neuere Befehl debmake │ │ │ │ │ + sollte diese Punkte besser berücksichtigen. │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +A.1. Laufzeit-Bibliothek │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +    Bevor Sie Laufzeit-Bibliotheken paketieren, sollten Sie die │ │ │ │ │ + folgenden Referenzen im Detail lesen: │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ + * Debian Policy Manual, Kapitel 8 »Shared libraries« │ │ │ │ │ │ │ │ │ │ -    * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ +    * Debian Policy Manual, Kapitel 9.1.1 »File System Structure« │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ + * Debian Policy Manual, Kapitel 10.2 »Libraries« │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    Es folgen einige stark vereinfachte Tipps für den Anfang: │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * Laufzeitbibliotheken (engl. »shared libraries«) sind │ │ │ │ │ + ELF-Objektdateien, die übersetzten Code enthalten. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * Laufzeitbibliotheken werden als *.so-Dateien vertrieben, d.h. │ │ │ │ │ + weder als *.a- noch als *.la-Dateien. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * Laufzeitbibliotheken werden hauptsächlich benutzt, um │ │ │ │ │ + gemeinsamen Programmcode aus mehreren Programmen mittels des │ │ │ │ │ + ld-Mechanismus' gemeinsam zu nutzen. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * Laufzeitbibliotheken werden manchmal dazu benutzt, mehrere │ │ │ │ │ + Erweiterungen eines Programms mittels des dlopen-Mechanismus' │ │ │ │ │ + bereitzustellen. │ │ │ │ │ │ │ │ │ │ - * Shared libraries export symbols, which represent compiled │ │ │ │ │ - objects such as variables, functions, and classes; and enable │ │ │ │ │ - access to them from the linked executables. │ │ │ │ │ + * Laufzeitbibliotheken exportieren Symbole, die übersetzte │ │ │ │ │ + Objekte wie Variablen, Funktionen und Klassen darstellen und │ │ │ │ │ + darauf Zugriff von dem verlinkten Programm ermöglichen. │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ + * Der SONAME einer Laufzeitbibliothek libfoo.so.1: objdump -p │ │ │ │ │ + libfoo.so.1 | grep SONAME ^[87] │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ + * Der SONAME einer Laufzeitbibliothek passt typischerweise │ │ │ │ │ + (aber nicht immer) auf den Dateinamen der Bibliothek. │ │ │ │ │ │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ - objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ +    * Der SONAME von Laufzeitbibliotheken, die nach /usr/bin/foo │ │ │ │ │ + gelinkt sind: objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ + * libfoo1: das Paket für die Laufzeitbibliothek libfoo.so.1 mit │ │ │ │ │ + der SONAME-ABI-Version 1.^[89] │ │ │ │ │ │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * Die Paketbetreuerskripte des Bibliothekspakets müssen │ │ │ │ │ + ldconfig unter den bestimmten Randbedingungen aufrufen, um │ │ │ │ │ + die notwendigen symbolischen Links für den SONAME zu │ │ │ │ │ + erzeugen.^[90] │ │ │ │ │ │ │ │ │ │ - * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ - debugging symbols for the shared library package libfoo1. │ │ │ │ │ + * libfoo1-dbg: das Fehlersuch-Symbol-Paket, das die │ │ │ │ │ + Debugging-Symbole für das Laufzeitpaket libfoo1 enthält. │ │ │ │ │ │ │ │ │ │ - * libfoo-dev: the development package that contains the header │ │ │ │ │ - files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ + * libfoo-dev: das Entwicklungspaket, das die Header-Dateien │ │ │ │ │ + usw. für die Laufzeitbibliothek libfoo.so enthält.1.^[91] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ - in general.^[92] │ │ │ │ │ + * Debian-Pakete sollten im Allgemeinen keine │ │ │ │ │ + *.la-Libtool-Archive enthalten.^[92] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ + * Debian-Pakete sollten im Allgemeinen keinen RPATH enthalten.^ │ │ │ │ │ + [93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * Obwohl er etwas veraltet und nur Sekundärliteratur ist, │ │ │ │ │ + könnte der Debian Library Packaging Guide noch nützlich sein. │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. debian/Paket.symbols verwalten │ │ │ │ │ │ │ │ │ │ - When you package a shared library, you should create a debian/ │ │ │ │ │ - package.symbols file to manage the minimal version associated │ │ │ │ │ -    with each symbol for backward-compatible ABI changes under the │ │ │ │ │ - same SONAME of the library for the same shared library package │ │ │ │ │ - name.^[94] You should read the following primary references in │ │ │ │ │ - detail: │ │ │ │ │ + Wenn Sie eine Laufzeitbibliothek paketieren, sollten Sie eine │ │ │ │ │ + Datei debian/Paket.symbols erstellen, um die minimale Version zu │ │ │ │ │ +    verwalten, die jedem Symbol für rückwärts-kompatible │ │ │ │ │ + ABI-Änderungen unter dem gleichen SONAME der Bibliothek für den │ │ │ │ │ + gleichen Laufzeitbibliotheksnamen zugeordnet ist.^[94] Sie │ │ │ │ │ + sollten die folgenden primären Referenzen im Detail lesen: │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8.6.3 "The symbols system"^[95] │ │ │ │ │ + * Debian Policy Manual, Kapitel 8.6.3 »The symbols system«^[95] │ │ │ │ │ │ │ │ │ │ * dh_makeshlibs(1) │ │ │ │ │ │ │ │ │ │     * dpkg-gensymbols(1) │ │ │ │ │ │ │ │ │ │ * dpkg-shlibdeps(1) │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ - Here is a rough example of how to create the libfoo1 package from │ │ │ │ │ -    the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ - file: │ │ │ │ │ - │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ - │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ - debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ - all available binary packages of the same shared library │ │ │ │ │ - package name containing the same SONAME of the library, for │ │ │ │ │ - example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ + Es folgt ein grobes Beispiel, wie das Paket libfoo1 aus der │ │ │ │ │ +    Version 1.3 der Originalautoren mit der korrekten Datei debian/ │ │ │ │ │ + libfoo1.symbols zu erstellen ist: │ │ │ │ │ + │ │ │ │ │ + * Bereiten Sie das Gerüst des debianisierten Quellbaums mit der │ │ │ │ │ + Datei der Originalautoren libfoo-1.3.tar.gz vor. │ │ │ │ │ + │ │ │ │ │ + + Falls dies das erstmalige Paketieren des Pakets libfoo1 ist, │ │ │ │ │ + erstellen Sie die Datei debian/libfoo1.symbols mit leerem │ │ │ │ │ + Inhalt. │ │ │ │ │ + │ │ │ │ │ + + Falls die vorherige Version 1.2 der Originalautoren im Paket │ │ │ │ │ + libfoo1 mit der korrekten debian/libfoo1.symbols in seinem │ │ │ │ │ + Quellpaket paketiert war, verwenden sie diese wieder. │ │ │ │ │ + │ │ │ │ │ + + Falls die vorhergehende Version 1.2 der Originalautoren nicht │ │ │ │ │ + mit debian/libfoo1.symbols paketiert worden war, erstellen │ │ │ │ │ + Sie sie als Datei symbols von allen verfügbaren Binärpaketen │ │ │ │ │ + des selben Laufzeitbibliotheksnamens, der den gleichen SONAME │ │ │ │ │ + der Bibliothek enthält, beispielsweise Version 1.1-1 und │ │ │ │ │ + 1.2-1. ^[96] │ │ │ │ │ │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ - * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ - and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ - were some backward-incompatible ABI changes that require you to │ │ │ │ │ - bump the shared library package name to something like libfoo1a │ │ │ │ │ - and you should start over again.) │ │ │ │ │ + * Bauen Sie mit Werkzeugen wie debuild und pdebuild versuchsweise │ │ │ │ │ + den Quellbaum. (Falls das aufgrund fehlender Symbole usw. │ │ │ │ │ + fehlschlägt, gibt es einige rückwärtsinkompatible ABI-Änderungen, │ │ │ │ │ + die es notwendig machen, den Paketnamen der Laufzeitbibliothek │ │ │ │ │ + auf etwas wie libfoo1a zu erhöhen. Sie sollten dann wieder von │ │ │ │ │ + vorne anfangen.) │ │ │ │ │ │ │ │ │ │ - $ cd libfoo-1.3 │ │ │ │ │ -    $ debuild │ │ │ │ │ +    $ cd libfoo-1.3 │ │ │ │ │ + $ debuild │ │ │ │ │ ... │ │ │ │ │ - dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ - see diff output below │ │ │ │ │ + dpkg-gensymbols: Warnung: einige neue Symbole sind in der Symboldatei aufgetaucht: … │ │ │ │ │ + lesen Sie die folgende Diff-Ausgabe │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ foo_get_name@Base 1.1 │ │ │ │ │ foo_get_longname@Base 1.2 │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - * If you see the diff printed by the dpkg-gensymbols as above, │ │ │ │ │ - extract the proper updated symbols file from the generated binary │ │ │ │ │ - package of the shared library. ^[97] │ │ │ │ │ + * Falls Sie wie oben den von dpkg-gensymbols ausgegebenen Diff │ │ │ │ │ + sehen, extrahieren Sie die korrekt aktualisierte symbols-Datei │ │ │ │ │ + aus dem erstellten Binärpaket der Laufzeitbibliothek. ^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * Bauen Sie mit Werkzeugen wie debuild und pdebuild die │ │ │ │ │ + Veröffentlichungspakete. │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ - ... │ │ │ │ │ - │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ + … │ │ │ │ │ │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ + Zusätzlich zu den obigen Beispielen müssen wir die │ │ │ │ │ +    ABI-Kompatibilität weiter prüfen und die Versionen für einige │ │ │ │ │ + Symbole wo notwendig erhöhen. ^[98] │ │ │ │ │ + │ │ │ │ │ + Obwohl es nur eine nachrangige Referenz ist, könnte │ │ │ │ │ +    UsingSymbolsFiles im Debian Wiki sowie die darin verlinkten │ │ │ │ │ + Webseiten hilfreich sein. │ │ │ │ │ │ │ │ │ │ A.3. Multiarch │ │ │ │ │ │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ + Die Multiarch-Funktionalität, die mit Debian Wheezy eingeführt │ │ │ │ │ + wurde, unterstützt die architekturübergreifende Installation von │ │ │ │ │ +    Binärpaketen (insbesondere i386<->amd64, aber auch andere │ │ │ │ │ + Kombinationen) in dpkg und apt. Sie sollten die folgenden │ │ │ │ │ + Referenzen im Detail lesen: │ │ │ │ │ │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ + * MultiarchSpec im Ubuntu Wiki (Originalautoren) │ │ │ │ │     │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ + * Multiarch/Implementation im Debian Wiki (Debian-Situation) │ │ │ │ │ │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ + Es verwendet ein Triplet wie i386-linux-gnu und x86_64-linux-gnu │ │ │ │ │ + für den Installationspfad der Laufzeitbibliotheken. Der │ │ │ │ │ +    tatsächliche Triplett-Pfad wird durch dpkg-architecture(1) für │ │ │ │ │ + jeden Bau dynamisch in $(DEB_HOST_MULTIARCH) gesetzt. │ │ │ │ │ + Beispielsweise werden die Pfade zu Multiarch-Bibliotheken wie │ │ │ │ │ + folgt geändert:^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ -    |---------+------------------------+--------------------------| │ │ │ │ │ - |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ - |---------+------------------------+--------------------------| │ │ │ │ │ - |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ + +--------------------------------------------------------------+ │ │ │ │ │ + |Alter Pfad| I386-Multiarch-Pfad | Amd64-Multiarch-Pfad | │ │ │ │ │ +    |----------+------------------------+--------------------------| │ │ │ │ │ + |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ + |----------+------------------------+--------------------------| │ │ │ │ │ + |/usr/lib/ |/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ + +--------------------------------------------------------------+ │ │ │ │ │ + │ │ │ │ │ +    Es gibt einige typische Beispiele für │ │ │ │ │ + Multiarch-Paketaufteilungsszenarien: │ │ │ │ │ │ │ │ │ │ -    Here are some typical multiarch package split scenario examples │ │ │ │ │ - for the following: │ │ │ │ │ + * eine Bibliotheksquelle libfoo-1.tar.gz │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * eine in einer übersetzten Sprache geschriebene Werkzeugquelle │ │ │ │ │ +    bar-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ - │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * eine in einer interpretierten Sprache geschriebene │ │ │ │ │ + Werkzeugquelle baz-1.tar.gz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ - +---------------------------------------------------------------+ │ │ │ │ │ - │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ - │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ - │ │ │ │ │ -    You can build a Debian library package enabling multiarch support │ │ │ │ │ - using dh(1) as follows: │ │ │ │ │ - │ │ │ │ │ - * Update debian/control. │ │ │ │ │ - │ │ │ │ │ - + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ - section. │ │ │ │ │ - │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ - │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ - │ │ │ │ │ - * Set debian/compat to "10". │ │ │ │ │ - │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ - │ │ │ │ │ - + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ - -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ - debian/rules. │ │ │ │ │ - │ │ │ │ │ - + If ./configure is used in part of the │ │ │ │ │ - override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ - to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ - │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ - + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ - dynamically by adding a script to the │ │ │ │ │ - override_dh_auto_configure target in debian/rules. │ │ │ │ │ + +------------------------------------------------------------------------+ │ │ │ │ │ + | Paket |Architecture:|Multi-Arch:| Paketinhalt | │ │ │ │ │ + |------------+-------------+-----------+---------------------------------| │ │ │ │ │ + |libfoo1 |any |same |die Laufzeitbibliothek, | │ │ │ │ │ + | | | |koinstallierbar | │ │ │ │ │ + |------------+-------------+-----------+---------------------------------| │ │ │ │ │ + | | | |die Debug-Symbole der | │ │ │ │ │ + |libfoo1-dbg |any |same |Laufzeitbibliothek, | │ │ │ │ │ + | | | |koinstallierbar | │ │ │ │ │ + |------------+-------------+-----------+---------------------------------| │ │ │ │ │ + | | | |die | │ │ │ │ │ + |libfoo-dev |any |same |Laufzeitbibliothek-Header-Dateien| │ │ │ │ │ + | | | |usw., koinstallierbar | │ │ │ │ │ + |------------+-------------+-----------+---------------------------------| │ │ │ │ │ +    | | | |die | │ │ │ │ │ + |libfoo-tools|any |foreign |Laufzeitunterstützungsprogramme, | │ │ │ │ │ + | | | |nicht koinstallierbar | │ │ │ │ │ + |------------+-------------+-----------+---------------------------------| │ │ │ │ │ + |libfoo-doc |all |foreign |die Dokumentationsdateien der | │ │ │ │ │ + | | | |Laufzeitbibliothek | │ │ │ │ │ + |------------+-------------+-----------+---------------------------------| │ │ │ │ │ + |bar |any |foreign |die übersetzten Programmdateien, | │ │ │ │ │ + | | | |nicht koinstallierbar | │ │ │ │ │ + |------------+-------------+-----------+---------------------------------| │ │ │ │ │ + |bar-doc |all |foreign |die Dokumentationsdateien für das| │ │ │ │ │ + | | | |Programm | │ │ │ │ │ + |------------+-------------+-----------+---------------------------------| │ │ │ │ │ + |baz |all |foreign |die interpretierten | │ │ │ │ │ + | | | |Programmdateien | │ │ │ │ │ + +------------------------------------------------------------------------+ │ │ │ │ │ + │ │ │ │ │ + Beachten Sie, dass die Entwicklungspakete einen Symlink für die │ │ │ │ │ +    zugehörige Laufzeitbibliothek ohne eine Versionsnummer enthalten │ │ │ │ │ + sollten, z.B. /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ + │ │ │ │ │ +A.4. Erstellen eines Laufzeitbibliothekspakets │ │ │ │ │ + │ │ │ │ │ +    Sie können ein Debian-Laufzeitbibliothekspaket mit Unterstützung │ │ │ │ │ + von Multiarch mit dh(1) wie folgt bauen: │ │ │ │ │ + │ │ │ │ │ + * debian/control aktualisieren │ │ │ │ │ + │ │ │ │ │ + + Build-Depends: debhelper (>=10) zum Quellpaketabschnitt │ │ │ │ │ + hinzufügen │ │ │ │ │ + │ │ │ │ │ + + Pre-Depends: ${misc:Pre-Depends} für jedes │ │ │ │ │ + Laufzeitbibliothekspaket hinzufügen │ │ │ │ │ + │ │ │ │ │ + + Fügen Sie den Multi-Arch:-Absatz zu jedem Binärpaketabschnitt │ │ │ │ │ + hinzu. │ │ │ │ │ + │ │ │ │ │ + * debian/compat auf »10« setzen │ │ │ │ │ + │ │ │ │ │ + * Passen Sie für alle Paketierungsskripte die Pfade vom normalen / │ │ │ │ │ + usr/lib/ auf die Multiarch-Variante /usr/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH)/ an. │ │ │ │ │ + │ │ │ │ │ + + Zuerst DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ + -qDEB_HOST_MULTIARCH) in debian/rules aufrufen, um die │ │ │ │ │ +    Variable DEB_HOST_MULTIARCH zu setzen. │ │ │ │ │ + │ │ │ │ │ + + Ersetzen Sie in debian/rules /usr/lib/ durch /usr/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH)/. │ │ │ │ │ + │ │ │ │ │ + + Falls ./configure als Teil des Ziels │ │ │ │ │ + override_dh_auto_configure in debian/rules verwandt wird, │ │ │ │ │ + stellen Sie sicher, dass Sie es durch dh_auto_configure -- │ │ │ │ │ + ersetzen. ^[100] │ │ │ │ │ + │ │ │ │ │ + + Ersetzen Sie in debian/foo.install-Dateien alle Vorkommen von │ │ │ │ │ + /usr/lib/ durch /usr/lib/*/. │ │ │ │ │ + │ │ │ │ │ + + Erstellen Sie dynamisch durch Hinzufügen eines Skripts im │ │ │ │ │ + Ziel override_dh_auto_configure in debian/rules Dateien wie │ │ │ │ │ + debian/foo.links aus debian/foo.links.in. │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ - │ │ │ │ │ - All files installed simultaneously as the multiarch package to │ │ │ │ │ -    the same file path should have exactly the same file content. You │ │ │ │ │ - must be careful of differences generated by the data byte order │ │ │ │ │ - and by the compression algorithm. │ │ │ │ │ - │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ - │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ - │ │ │ │ │ - You can make the upstream tarball by excluding the debian/* files │ │ │ │ │ -    and package it as a non-native Debian package as in │ │ │ │ │ - Abschnitt 2.1, „Arbeitsschritte beim Bau von Debian-Paketen“. │ │ │ │ │ - This is the normal way, which some people encourage using. │ │ │ │ │ + Bitte stellen Sie sicher, dass das Laufzeitbibliothekspaket nur │ │ │ │ │ +    die erwarteten Dateien enthält und dass Ihr -dev-Paket noch │ │ │ │ │ + funktioniert. │ │ │ │ │ + │ │ │ │ │ + Alle Dateien, die simultan aus dem Multiarch-Paket in den │ │ │ │ │ + gleichen Dateipfad installiert werden, sollten exakt den gleichen │ │ │ │ │ +    Inhalt haben. Sie müssen vorsichtig mit Unterschieden sein, die │ │ │ │ │ + durch die Byte-Reihenfolge und den Kompressionsalgorithmus │ │ │ │ │ + entstehen. │ │ │ │ │ + │ │ │ │ │ +A.5. Natives Debian-Paket │ │ │ │ │ + │ │ │ │ │ + Falls ein Paket nur für Debian oder möglicherweise nur für lokale │ │ │ │ │ +    Benutzung betreut wird, können seine Quellen alle Dateien aus │ │ │ │ │ + debian/* enthalten. Es gibt zwei Möglichkeiten, dies zu │ │ │ │ │ + paketieren: │ │ │ │ │ + │ │ │ │ │ + Sie können einen Tarball der Originalautoren erstellen, bei dem │ │ │ │ │ + Sie die debian/*-Dateien ausschließen und es als nicht natives │ │ │ │ │ +    Debian-Paket wie in Abschnitt 2.1, „Arbeitsschritte beim Bau von │ │ │ │ │ + Debian-Paketen“ paketieren. Dies ist die normale Art, zu der │ │ │ │ │ + einige Leute raten. │ │ │ │ │ + │ │ │ │ │ +    Die Alternative wäre der Arbeitsablauf für ein natives │ │ │ │ │ + Debian-Paket: │ │ │ │ │ + │ │ │ │ │ + * Erstellen Sie ein natives Debian-Quellpaket im Format 3.0 │ │ │ │ │ + (native) mit einer einzelnen komprimierten Tar-Datei, in der │ │ │ │ │ + alle Dateien enthalten sind. │ │ │ │ │ + │ │ │ │ │ +    + Paket_Version.tar.gz │ │ │ │ │ + + Paket_Version.dsc │ │ │ │ │ + * Bauen Sie Debian-Binärpakete aus den nativen │ │ │ │ │ + Debian-Quellpaketen. │ │ │ │ │ + │ │ │ │ │ + + Paket_Version_Arch.deb │ │ │ │ │ + │ │ │ │ │ + Falls Sie beispielsweise Quelldateien in ~/mypackage-1.0 ohne die │ │ │ │ │ +    debian/*-Dateien haben, können Sie ein natives Debian-Paket │ │ │ │ │ + mittels des Befehls dh_make wie folgt erstellen: │ │ │ │ │ │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ - │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ - │ │ │ │ │ -    + package_version.tar.gz │ │ │ │ │ - + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ - │ │ │ │ │ - + package_version_arch.deb │ │ │ │ │ - │ │ │ │ │ - For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │ -    the debian/* files, you can create a native Debian package by │ │ │ │ │ - issuing the dh_make command as follows: │ │ │ │ │ - │ │ │ │ │ -    $ cd ~/mypackage-1.0 │ │ │ │ │ +    $ cd ~/MeinPaket-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ - Then the debian directory and its contents are created just like │ │ │ │ │ - in Abschnitt 2.8, „Das erste nicht native Debian-Paket“. This │ │ │ │ │ -    does not create a tarball, since this is a native Debian package. │ │ │ │ │ - But that is the only difference. The rest of the packaging │ │ │ │ │ - activities are practically the same. │ │ │ │ │ + Dann werden das Verzeichnis debian und seine Inhalte genau wie in │ │ │ │ │ + Abschnitt 2.8, „Das erste nicht native Debian-Paket“ erstellt. │ │ │ │ │ +    Dies erstellt keinen Tarball, da dies ein natives Debian-Paket │ │ │ │ │ + ist. Das ist aber auch der einzige Unterschied. Der Rest der │ │ │ │ │ + Paketierungsaktivitäten ist praktisch identisch. │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    Nach der Ausführung des Befehls dpkg-buildpackage werden Sie die │ │ │ │ │ + folgenden Dateien im übergeordneten Verzeichnis finden: │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0.tar.gz │ │ │ │ │ + * meinpaket_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + Dies ist der Quellcode-Tarball, der aus dem Verzeichnis │ │ │ │ │ + MeinPaket-1.0 durch den Befehl dpkg-source erstellt wurde. │ │ │ │ │ + (Seine Endung ist nicht orig.tar.gz.) │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0.dsc │ │ │ │ │ + * meinpaket_1.0.dsc │ │ │ │ │ │ │ │ │ │ - This is a summary of the contents of the source code, as in │ │ │ │ │ - the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -    │ │ │ │ │ - * mypackage_1.0_i386.deb │ │ │ │ │ + Dies ist eine Zusammenfassung der Inhalte des Quellcodes, wie │ │ │ │ │ + in dem nicht nativen Debian-Paket. (Es gibt keine │ │ │ │ │ +    Debian-Revision.) │ │ │ │ │ + │ │ │ │ │ + * meinpaket_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ - This is your completed binary package, as in the non-native │ │ │ │ │ - Debian package. (There is no Debian revision.) │ │ │ │ │ + Dies ist Ihr komplettes Binärpaket wie in dem nicht nativen │ │ │ │ │ + Debian-Paket. (Es gibt keine Debian-Revision.) │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0_i386.changes │ │ │ │ │ + * meinpaket_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + Diese Datei beschreibt wie in dem nicht nativen Debian-Paket │ │ │ │ │ + alle Änderungen, die in der aktuellen Paketversion erfolgten. │ │ │ │ │ + (Es gibt keine Debian-Revision.) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] Alternativ: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] Alternativ: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] Siehe Debian Policy Manual, Kapitel 8.1 »Run-time shared │ │ │ │ │ + libraries«. │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] Siehe Debian Policy Manual, Kapitel 8.1.1 »ldconfig«. │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ +    ^[91] Siehe Debian Policy Manual, Kapitel 8.3 »Static libraries« │ │ │ │ │ + und Debian Policy Manual, Kapitel 8.4 »Development files«. │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] Siehe Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] Siehe Debian-Wiki RpathIssue. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ + ^[94] Rückwärts-inkompatible ABI-Änderungen verlangen │ │ │ │ │ +    normalerweise von Ihnen, dass Sie den SONAME der Bibliothek und │ │ │ │ │ + den Namen des Laufzeitbibliothekspakets in neue SONAMEN bzw. │ │ │ │ │ + Namen ändern. │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ + ^[95] Für C++-Bibliotheken und andere Fälle, bei denen das │ │ │ │ │ +    Nachverfolgen individueller Symbole zu schwierig ist, folgen Sie │ │ │ │ │ + stattdessen dem Debian Policy Manual, Kapitel 8.6.4 »The shlibs │ │ │ │ │ + system«. │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] Alle vorhergehenden Versionen eines Pakets sind unter http: │ │ │ │ │ + //snapshot.debian.org/ erhältlich. Die Debian-Revision wird von │ │ │ │ │ +    der Version entfernt, um das Rückportieren eines Paketes zu │ │ │ │ │ + erleichtern: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << │ │ │ │ │ + 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ + ^[97] Die Debian-Revision wird von der Version entfernt, um das │ │ │ │ │ +    Rückportieren eines Paketes zu erleichtern: 1.3 << 1.3-1~bpo70+1 │ │ │ │ │ + << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ - changes". │ │ │ │ │ +    ^[98] Siehe Debian Policy Manual, Kapitel 8.6.2 »Shared library │ │ │ │ │ + ABI changes«. │ │ │ │ │ │ │ │ │ │ -    ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ - lib64/ are not used anymore. │ │ │ │ │ +    ^[99] Alte Spezialbibliothekspfade wie /lib32/ und /lib64/ werden │ │ │ │ │ + nicht mehr benutzt. │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] Alternativ können Sie die Argumente --libdir=\$${prefix}/ │ │ │ │ │ + lib/$(DEB_HOST_MULTIARCH) und --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) zu ./configure hinzufügen. Beachten Sie, │ │ │ │ │ +    dass --libexecdir den Standardpfad angibt, in den ausführbare │ │ │ │ │ + Programme installiert werden, die von anderen Programmen (nicht │ │ │ │ │ + von Benutzern) ausgeführt werden. Die Vorgabe von Autotools ist / │ │ │ │ │ + usr/libexec/, die Debian-Vorgabe ist allerdings /usr/lib/. ├── maint-guide-es_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ --rw-r--r-- 0 0 0 1572 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 573524 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 1576 2022-10-08 03:52:48.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 576544 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: maint-guide-es │ │ │ │ Source: maint-guide │ │ │ │ Version: 1.2.53 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Osamu Aoki │ │ │ │ -Installed-Size: 947 │ │ │ │ +Installed-Size: 951 │ │ │ │ Suggests: debian-policy, developers-reference, devscripts, dh-make, doc-base, dupload | dput, fakeroot, lintian, pbuilder, quilt │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://www.debian.org/doc/devel-manuals#maint-guide │ │ │ │ Description: Debian New Maintainers' Guide (Spanish) │ │ │ │ This package contains the Debian New Maintainers' Guide. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1223 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39567 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/advanced.es.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 40984 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/advanced.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 39180 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/build.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 19397 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/checkit.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 65530 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/dother.es.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 65536 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/dother.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 79743 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/dreq.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 55623 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/first.es.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 26047 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/index.es.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 26088 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/index.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24006 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/modify.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 34725 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/start.es.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 34272 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/update.es.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12023 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/upload.es.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 428492 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/maint-guide.es.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 62979 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/maint-guide.es.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12025 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/html/upload.es.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 430806 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/maint-guide.es.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 63426 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-es/maint-guide.es.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 617 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-es.maint-guide-es │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-es │ │ │ ├── ./usr/share/doc/maint-guide-es/html/advanced.es.html │ │ │ │ ├── ./usr/share/doc/maint-guide-es/html/advanced.es.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Apéndice A. Advanced packaging │ │ │ │ │ + Apéndice A. Técnicas avanzadas │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + Hay que tener en cuenta que el paquete de desarrollo debe contener un enlace │ │ │ │ │ +simbólico a la biblioteca compartida asociada │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + sin el │ │ │ │ │ +número de versión │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + . P. ej.: │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ You can build a Debian library package enabling multiarch support using │ │ │ │ │ │ │ │ │ │ @@ -935,15 +943,15 @@ │ │ │ │ │ │ │ │ │ │ as follows: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ +

Debes comprobar que el paquete de biblioteca compartida solo contiene los │ │ │ │ │ +ficheros esperados y que el paquete «-dev» sigue funcionando correctamente.

│ │ │ │ │

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ path should have exactly the same file content. You must be careful of │ │ │ │ │ differences generated by the data byte order and by the compression │ │ │ │ │ algorithm.

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + Si un paquete se mantiene exclusivamente para Debian o para uso local, su │ │ │ │ │ +paquete fuente puede contener todos los ficheros │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + . Hay dos maneras para empaquetarlos. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ You can make the upstream tarball by excluding the │ │ │ │ │ debian/* │ │ │ │ │ files and package it as a non-native Debian │ │ │ │ │ package as in │ │ │ │ │ Sección 2.1, “Plan de trabajo para la construcción de paquetes Debian” │ │ │ │ │ . This is the normal way, which │ │ │ │ │ some people encourage using. │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

La alternativa es el esquema de trabajo para paquetes nativos Debian.

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ - 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + Generaremos un paquete fuente Debian en el formato │ │ │ │ │ + 3.0 │ │ │ │ │ +(native) │ │ │ │ │ + , utilizando un archivo comprimido en formato «tar» que │ │ │ │ │ +incluirá todos los archivos. │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + nombre_del_paquete │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versión │ │ │ │ │ │ │ │ │ │ .tar.gz │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + nombre_del_paquete │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versión │ │ │ │ │ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    Construiremos un paquete binario Debian del paquete de fuentes nativo │ │ │ │ │ +Debian.

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + nombre_del_paquete │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versión │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - arch │ │ │ │ │ + arquitectura │ │ │ │ │ │ │ │ │ │ .deb │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │ @@ -1196,106 +1206,106 @@ │ │ │ │ │ files, you can create a native Debian package │ │ │ │ │ by issuing the │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ command as follows: │ │ │ │ │

    │ │ │ │ │ -
    $ cd ~/mypackage-1.0
    │ │ │ │ │ +        
    $ cd ~/mi_paquete-1.0
    │ │ │ │ │  $ dh_make --native
    │ │ │ │ │

    │ │ │ │ │ Then the │ │ │ │ │ debian │ │ │ │ │ directory and its contents are created │ │ │ │ │ just like in │ │ │ │ │ Sección 2.8, “Paquete no nativo Debian inicial” │ │ │ │ │ . This does not create a │ │ │ │ │ tarball, since this is a native Debian package. But that is the only │ │ │ │ │ difference. The rest of the packaging activities are practically the same. │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - After execution of the │ │ │ │ │ + Después de la ejecución de la orden │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + , │ │ │ │ │ +encontrarás los siguientes ficheros en el directorio superior: │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ - mypackage_1.0.tar.gz │ │ │ │ │ + mi_paquete_1.0.tar.gz │ │ │ │ │

      │ │ │ │ │

      │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + Este es el archivo del código fuente generado a partir del directorio │ │ │ │ │ + mi_paquete-1.0 │ │ │ │ │ + por la orden │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + (su sufijo no es │ │ │ │ │ orig.tar.gz │ │ │ │ │ - .) │ │ │ │ │ + .). │ │ │ │ │

      │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ - mypackage_1.0.dsc │ │ │ │ │ + mi_paquete_1.0.dsc │ │ │ │ │

      │ │ │ │ │

      This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ Debian package. (There is no Debian revision.)

      │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ - mypackage_1.0_i386.deb │ │ │ │ │ + mi_paquete_1.0_i386.deb │ │ │ │ │

      │ │ │ │ │

      This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ (There is no Debian revision.)

      │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ - mypackage_1.0_i386.changes │ │ │ │ │ + mi_paquete_1.0_i386.changes │ │ │ │ │

      │ │ │ │ │ -

      This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

      │ │ │ │ │ +

      Este archivo describe todos los cambios realizados en el versión actual del │ │ │ │ │ +paquete en el caso de los paquetes Debian no nativos (no tiene código de │ │ │ │ │ +revisión Debian).

      │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Como alternativa: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + nombre_biblioteca │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ - | grep │ │ │ │ │ -SONAME │ │ │ │ │ + | grep SONAME │ │ │ │ │ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Como alternativa: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1308,128 +1318,131 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ -libraries" │ │ │ │ │ + Véase │ │ │ │ │ + Debian Policy Manual, 8.1 "Run-time │ │ │ │ │ +shared libraries" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Véase │ │ │ │ │ Debian Policy Manual, 8.1.1 │ │ │ │ │ "ldconfig" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Consulta │ │ │ │ │ Debian Policy Manual, 8.3 "Static │ │ │ │ │ libraries" │ │ │ │ │ - and │ │ │ │ │ + y │ │ │ │ │ Debian Policy Manual, 8.4 │ │ │ │ │ "Development files" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ + Consulta │ │ │ │ │ + Debian wiki │ │ │ │ │ +ReleaseGoals/LAFileRemoval │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Consulta │ │ │ │ │ Debian wiki RpathIssue │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + Los cambios ABI incompatibles con versiones anteriores, normalmente │ │ │ │ │ +requieren actualizar el «SONAME» (el nombre lógico) de la biblioteca y el de │ │ │ │ │ +la biblioteca compartida a otros nuevos. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + Para bibliotecas C++ y otros casos en los que el seguimiento individual de │ │ │ │ │ +símbolos es difícil, es mejor consultar │ │ │ │ │ + Debian Policy Manual, 8.6.4 "The shlibs │ │ │ │ │ +system" │ │ │ │ │ + . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + Las versiones previas de los paquetes Debian están disponibles en │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + . La revisión Debian del │ │ │ │ │ +paquete sigue a la versión para facilitar mantenimiento de versiones │ │ │ │ │ +anteriores («backport») del paquete: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ - and │ │ │ │ │ + y │ │ │ │ │ 1.2 │ │ │ │ │ << │ │ │ │ │ 1.2-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.2-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + La revisión de Debian se deriva de la versión para hacer más fácil el │ │ │ │ │ +mantenimiento de versiones anteriores («backport») del paquete: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Véase │ │ │ │ │ Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ library ABI changes" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ @@ -1444,28 +1457,27 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + Como alternativa, puedes añadir los argumentos │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + y │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + en │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + . Fíjate que │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + especifica el directorio predeterminado para la instalación de programas │ │ │ │ │ +ejecutables que son ejecutados por otros programas en lugar de por los │ │ │ │ │ +usuarios. El valor predeterminado por «Autotools» es │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + pero en Debian es │ │ │ │ │ /usr/lib/ │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-es/html/upload.es.html │ │ │ │ ├── ./usr/share/doc/maint-guide-es/html/upload.es.html │ │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ │ Capítulo 9. Enviar el paquete │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-es/maint-guide.es.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -40,27 +40,27 @@ │ │ │ │ │ Ana Beatriz │ │ │ │ │ Guerrero López, │ │ │ │ │ Francisco Javier │ │ │ │ │ Cuadrado, y │ │ │ │ │ Innocent De │ │ │ │ │ Marchi │ │ │ │ │ │ │ │ │ │ -25 de enero de 2025 │ │ │ │ │ +28 de febrero de 2026 │ │ │ │ │ │ │ │ │ │ FIRMA │ │ │ │ │ │ │ │ │ │ -25 de enero de 2025 │ │ │ │ │ +28 de febrero de 2026 │ │ │ │ │ │ │ │ │ │ -25 de enero de 2025 │ │ │ │ │ +28 de febrero de 2026 │ │ │ │ │ │ │ │ │ │ -25 de enero de 2025 │ │ │ │ │ +28 de febrero de 2026 │ │ │ │ │ │ │ │ │ │ -25 de enero de 2025 │ │ │ │ │ +28 de febrero de 2026 │ │ │ │ │ │ │ │ │ │ -25 de enero de 2025 │ │ │ │ │ +28 de febrero de 2026 │ │ │ │ │ │ │ │ │ │ HISTORIAL DE REVISIONES │ │ │ │ │ NÚMERO │ │ │ │ │ │ │ │ │ │ FECHA │ │ │ │ │ │ │ │ │ │ MODIFICACIONES │ │ │ │ │ @@ -213,27 +213,27 @@ │ │ │ │ │ 9. Enviar el paquete │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ 9.1. Enviar al repositorio de Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ 9.2. Incluir orig.tar.gz para la transferencia del paquete al repositorio. . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ 9.3. Envíos discontinuados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ +A. Técnicas avanzadas │ │ │ │ │ │ │ │ │ │ 58 │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ -A.2. Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ -A.3. Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ -A.4. Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ -A.5. Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 │ │ │ │ │ +A.1. Bibliotecas compartidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ +A.2. Gestionando debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ +A.3. Varias arquitecturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ +A.4. Construcción de un paquete de biblioteca compartida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ +A.5. Paquete nativo Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -1 / 62 │ │ │ │ │ +1 / 63 │ │ │ │ │ │ │ │ │ │ Capítulo 1 │ │ │ │ │ │ │ │ │ │ Empezando «de la forma correcta». │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Este documento tratará de describir cómo se construye un paquete Debian GNU/Linux para el usuario común de Debian y para │ │ │ │ │ futuros desarrolladores en un lenguaje informal, y con multitud de ejemplos. Hay un antiguo dicho romano que dice, «Longum │ │ │ │ │ @@ -264,15 +264,15 @@ │ │ │ │ │ 1El documento asume que estás utilizando la versión jessie. Si quieres utilizar este documento con una versión anterior (incluidas versiones anteriores de │ │ │ │ │ Ubuntu u otras) debes instalar (como mínimo) la versión «backport» de los paquetes dpkg y debhelper. │ │ │ │ │ 2Puedes aprender las operaciones básicas del sistema Debian en Debian Reference (http://www.debian.org/doc/manuals/debian-reference/) . Ese documento │ │ │ │ │ también trata algunos aspectos sobre programación en UNIX. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -2 / 62 │ │ │ │ │ +2 / 63 │ │ │ │ │ │ │ │ │ │ La cooperación amistosa es la fuerza motriz. │ │ │ │ │ • Tu contribución no debe estresar a los demás. │ │ │ │ │ • Tu contribución es valiosa sólo cuando los demás te lo agradecen.. │ │ │ │ │ Debian no es la escuela donde recibir atención automática de los profesores. │ │ │ │ │ • Debes ser capaz de aprender muchas cosas por ti mismo. │ │ │ │ │ • La atención por parte de otros voluntarios es un recurso muy escaso. │ │ │ │ │ @@ -305,15 +305,15 @@ │ │ │ │ │ Las Preguntas Frecuentes de Debian GNU/Linux FAQ, capítulo 13 - ’Contribuir al proyecto Debian’ (https://www.debian.org/doc/manuals/debian-faq/contributing.en.html) (documentación semi-oficial) │ │ │ │ │ Debian Wiki, HelpDebian (http://wiki.debian.org/HelpDebian) (documentación complementaria) │ │ │ │ │ Sitio web de nuevos miembros de Debian (https://nm.debian.org/) (documentación oficial) │ │ │ │ │ PUF de mentores en Debian (http://wiki.debian.org/DebianMentorsFaq) (documentación complementaria) │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -3 / 62 │ │ │ │ │ +3 / 63 │ │ │ │ │ │ │ │ │ │ 1.2. Programas necesarios para el desarrollo │ │ │ │ │ Antes de empezar, debes asegurarte que tienes instalados algunos paquetes adicionales necesarios para el desarrollo. Observa que │ │ │ │ │ la lista no contiene paquetes marcados como esencial o requerido - al dar por supuesto que ya los tienes instalados. │ │ │ │ │ The following packages come with the standard Debian installation, so you probably have them already (along with any additional │ │ │ │ │ packages they depend on). Still, you should check them with aptitude show package or with dpkg -s package. │ │ │ │ │ El paquete imprescindible para el desarrollo es build-essential. Al instalarlo, también se instalaran otros paquetes requeridos, consiguiendo una instalación básica para la construcción de paquetes. │ │ │ │ │ @@ -351,15 +351,15 @@ │ │ │ │ │ Source) bugs. (see pbuilder(8) and pdebuild(1)) │ │ │ │ │ perl - Perl es uno de los lenguajes interpretados para hacer guiones (o «scripts») más usados en los sistemas Un*x de hoy en │ │ │ │ │ día, comúnmente se refiere a él como la «navaja suiza de Unix» (véase perl(1)). │ │ │ │ │ 3Hay varios paquetes similares pero más específicos como dh-make-perl, dh-make-php, etc. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -4 / 62 │ │ │ │ │ +4 / 63 │ │ │ │ │ │ │ │ │ │ python - Python es otro de los lenguajes interpretados para hacer guiones (o «scripts») en Debian debido a la combinación │ │ │ │ │ de su poder y sintaxis clara (véase python(1)). │ │ │ │ │ quilt - este paquete ayuda a aplicar modificaciones («parches») y hacer el seguimiento de los cambios realizados. Aplica las │ │ │ │ │ modificaciones ordenadamente en pila, y es posible aplicar, deshacer y actualizar las modificaciones fácilmente recorriendo la │ │ │ │ │ pila (véase quilt(1) y /usr/share/doc/quilt/quilt.pdf.gz.) │ │ │ │ │ xutils-dev - algunos programas, normalmente aquellos hechos para X11, también usan programas para generar Makefile │ │ │ │ │ @@ -391,15 +391,15 @@ │ │ │ │ │ │ │ │ │ │ 1.4. Dónde pedir ayuda │ │ │ │ │ Before you decide to ask your question in some public place, please read this fine documentation: │ │ │ │ │ archivos en /usr/share/doc/package para cada uno de los paquetes │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -5 / 62 │ │ │ │ │ +5 / 63 │ │ │ │ │ │ │ │ │ │ contenidos de man command para todos los comandos pertinentes │ │ │ │ │ contenidos de info command para todos los comandos pertinentes │ │ │ │ │ contenidos de debian-mentors@lists.debian.org archivo de la lista de correo (http://lists.debian.org/debian-mentors/) │ │ │ │ │ contenidos de debian-devel@lists.debian.org mailing list archive (http://lists.debian.org/debian-devel/) │ │ │ │ │ Considera el uso eficaz de los motores de búsqueda en la web incluyendo site:lists.debian.org en la cadena de búsqueda, para limitar el dominio. │ │ │ │ │ Construir un paquete pequeño es una buena forma de aprender los detalles del mantenimiento de paquetes. Inspeccionar paquetes │ │ │ │ │ @@ -424,15 +424,15 @@ │ │ │ │ │ will start to use your package, and if you made some critical error you’ll get mailbombed by numerous angry Debian users…Just │ │ │ │ │ kidding. :-) │ │ │ │ │ Relájate y prepárate para recibir informes de fallos, porque hay mucho más trabajo que realizar antes de que tu paquete cumpla │ │ │ │ │ las Normas de Debian (una vez más lee la documentación real para más detalles). ¡Buena suerte! │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -6 / 62 │ │ │ │ │ +6 / 63 │ │ │ │ │ │ │ │ │ │ Capítulo 2 │ │ │ │ │ │ │ │ │ │ Primeros pasos │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Vamos a construir nuestro propio paquete (o, mejor aún, adoptar un paquete ya existente). │ │ │ │ │ │ │ │ │ │ @@ -457,15 +457,15 @@ │ │ │ │ │ 1Para paquetes no nativos Debian construidos en el formato anterior 1.0, se utiliza nombre_del_paquete_versión-revisión.diff.gz │ │ │ │ │ 2Consulta 5.6.1 ”Source” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source) , 5.6.7 ”Package” (http://www.debian.org/doc/debianpolicy/ch-controlfields.html#s-f-Package) , and 5.6.12 ”Version” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version) . La arquitectura │ │ │ │ │ del paquete sigue el Debian Policy Manual, 5.6.8 ”Architecture” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture) y se asigna │ │ │ │ │ automáticamente en el proceso de compilación del paquete. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -7 / 62 │ │ │ │ │ +7 / 63 │ │ │ │ │ │ │ │ │ │ 2.2. Elige el programa │ │ │ │ │ Probablemente hayas escogido ya el paquete que deseas construir. Lo primero que debes hacer es comprobar si el paquete está │ │ │ │ │ ya en el archivo de la distribución utilizando: │ │ │ │ │ la orden aptitude │ │ │ │ │ la página web Debian packages (http://www.debian.org/distrib/packages) │ │ │ │ │ the Debian Package Tracker (https://tracker.debian.org/) web page │ │ │ │ │ @@ -501,15 +501,15 @@ │ │ │ │ │ nobody is maintaining. │ │ │ │ │ El programa debe tener una licencia. │ │ │ │ │ 3See Debian Developer’s Reference 5.9.5 ”Adopting a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#adopting) . │ │ │ │ │ ⁴Dicho esto, por supuesto, hay nuevos programas que vale la pena empaquetar para Debian. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -8 / 62 │ │ │ │ │ +8 / 63 │ │ │ │ │ │ │ │ │ │ • Si el paquete debe pertenecer a la sección main el programa debe cumplir con las Directrices de Debian para el software │ │ │ │ │ libre (DFSG (http://www.debian.org/social_contract#guidelines) ) y no debe precisar la instalación de otro paquete que │ │ │ │ │ no pertenezca a la sección main para su compilación o ejecución como requiere la directiva de Debian («Debian Policy»). │ │ │ │ │ Es la situación deseada. │ │ │ │ │ • Para paquetes de la sección contrib la licencia debe cumplir todos los requisitos de la DFSG pero puede precisar la │ │ │ │ │ instalación de otro paquete que no sea de la sección main para su compilación o ejecución. │ │ │ │ │ @@ -546,15 +546,15 @@ │ │ │ │ │ • cualquier paquete de guiones de desarrollador no triviales │ │ │ │ │ Construir paquetes de alta complejidad no es demasiado difícil, pero requiere más conocimientos. Debes buscar las orientaciones │ │ │ │ │ específicas para cada caso según su complejidad. Por ejemplo, algunos lenguajes interpretados tienen sus normas específicas. │ │ │ │ │ Perl policy (http://www.debian.org/doc/packaging-manuals/perl-policy/) │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -9 / 62 │ │ │ │ │ +9 / 63 │ │ │ │ │ │ │ │ │ │ Normas para Python (http://www.debian.org/doc/packaging-manuals/python-policy/) │ │ │ │ │ Normas para Java (http://www.debian.org/doc/packaging-manuals/java-policy/) │ │ │ │ │ There is another old Latin saying: fabricando fit faber (practice makes perfect). It is highly recommended to practice and experiment with all the steps of Debian packaging with simple packages while reading this tutorial. A trivial upstream tarball, │ │ │ │ │ hello-sh-1.0.tar.gz, created as follows may offer a good starting point:⁵ │ │ │ │ │ $ mkdir -p hello-sh/hello-sh-1.0; cd hello-sh/hello-sh-1.0 │ │ │ │ │ $ cat > hello <>~/.bashrc < │ │ │ │ │ 4 Source: http://sourceforge.net/projects/gentoo/files/ │ │ │ │ │ @@ -1292,15 +1292,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -- Josip Rodin │ │ │ │ │ │ │ │ │ │ Mon, 22 Mar 2010 00:37:31 +0100 │ │ │ │ │ │ │ │ │ │ - 25 / 62 │ │ │ │ │ + 25 / 63 │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ (He añadido los números de línea) │ │ │ │ │ Line 1 is the package name, version, distribution, and urgency. The name must match the source package name; distribution │ │ │ │ │ should be unstable, and urgency should be set to medium unless there is any particular reason for other values. │ │ │ │ │ Lines 3-5 are a log entry, where you document changes made in this package revision (not the upstream changes —there is a │ │ │ │ │ @@ -1351,15 +1351,15 @@ │ │ │ │ │ 10Si utiliza la orden dch -r para realizar este último cambio, asegúrese que guarda el archivo changelog explícitamente con el editor. │ │ │ │ │ 11You can start learning how to write a Makefile from Debian Reference, 12.2. ”Make” (http://www.debian.org/doc/manuals/debian-reference/ch12#_make) . The full documentation is available as http://www.gnu.org/software/make/manual/html_node/index.html or as the make-doc package in the │ │ │ │ │ non-free archive area. │ │ │ │ │ 12Debian Policy Manual, 4.9 ”Main building script: debian/rules” (http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules) explica los detalles. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -26 / 62 │ │ │ │ │ +26 / 63 │ │ │ │ │ │ │ │ │ │ objetivo build-arch (obligatorio): para la compilación de las fuentes en programas compilados (dependientes de la arquitectura) en el árbol de directorios de compilación. │ │ │ │ │ objetivo build-indep (obligatorio): para la compilación de las fuentes en documentos formateados (independientes de la │ │ │ │ │ arquitectura) en el árbol de directorios de compilación. │ │ │ │ │ install (opcional): para la instalación en la estructura de directorios temporal bajo el directorio debian de los archivos │ │ │ │ │ para cada uno de los paquetes binarios. Si existe el objetivo binary*, dependerá de este. │ │ │ │ │ binary (obligatorio): para la construcción de cada uno de los paquetes binarios (combinado con los objetivos binary-arch │ │ │ │ │ @@ -1403,15 +1403,15 @@ │ │ │ │ │ nada. │ │ │ │ │ 13Este objetivo es utilizado por dpkg-buildpackage como en Sección 6.1. │ │ │ │ │ 1⁴Este objetivo es utilizado por dpkg-buildpackage -B como en Sección 6.2. │ │ │ │ │ 1⁵Este objetivo es utilizado por dpkg-buildpackage -A. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -27 / 62 │ │ │ │ │ +27 / 63 │ │ │ │ │ │ │ │ │ │ Lines 16 and 17 are where all the work is done with an implicit rule using the pattern rule. The percent sign means ”any targets”, │ │ │ │ │ which then call a single program, dh, with the target name. 1⁶ The dh command is a wrapper script that runs appropriate sequences │ │ │ │ │ of dh_* programs depending on its argument. 1⁷ │ │ │ │ │ debian/rules clean ejecuta dh clean, que a su vez ejecuta lo siguiente: │ │ │ │ │ dh_testdir │ │ │ │ │ dh_auto_clean │ │ │ │ │ @@ -1464,15 +1464,15 @@ │ │ │ │ │ on the debhelper package and does not obfuscate the package building process as the cdbs package tends to do. │ │ │ │ │ 1⁷You can verify the actual sequences of dh_* programs invoked for a given target without really running them by invoking dh target --no-act │ │ │ │ │ or debian/rules -- ’target --no-act’. │ │ │ │ │ 1⁸El siguiente ejemplo presupone que su fichero debian/compat tiene un valor igual o superior a 9 para evitar invocar cualquier orden «python» automáticamente. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -28 / 62 │ │ │ │ │ +28 / 63 │ │ │ │ │ │ │ │ │ │ dh_fixperms │ │ │ │ │ dh_strip │ │ │ │ │ dh_makeshlibs │ │ │ │ │ dh_shlibdeps │ │ │ │ │ dh_installdeb │ │ │ │ │ dh_gencontrol │ │ │ │ │ @@ -1513,15 +1513,15 @@ │ │ │ │ │ 20These commands support other build environments, such as setup.py, which can be listed by executing dh_auto_build --list in a package source │ │ │ │ │ directory. │ │ │ │ │ 21En realidad busca el primer objetivo distclean, realclean o clean disponible en el Makefile y lo ejecuta. │ │ │ │ │ 22En realidad busca el primero de los objetivos test o check en el archivo Makefile y lo ejecuta. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -29 / 62 │ │ │ │ │ +29 / 63 │ │ │ │ │ │ │ │ │ │ 4.4.3. Personalización del archivo rules │ │ │ │ │ Puedes realizar muchos cambios para adaptar el archivo rules construido por la orden dh. │ │ │ │ │ La orden dh $@ permite las siguientes adaptaciones 23: │ │ │ │ │ Añadir la orden dh_python2 (la mejor opción para Python) 2⁴. │ │ │ │ │ • Añade el paquete python en el campo Build-Depends. │ │ │ │ │ • Utiliza dh $@ --with python2 en su lugar. │ │ │ │ │ @@ -1556,15 +1556,15 @@ │ │ │ │ │ Añadir la orden dh_autoreconf y dh_autoreconf_clean. │ │ │ │ │ 23Si un paquete instala el archivo /usr/share/perl5/Debian/Debhelper/Sequence/nombre_personalizado.pm puedes activar la │ │ │ │ │ función adaptada con dh $@ --with nombre_personalizado. │ │ │ │ │ 2⁴Es preferible el uso de la orden dh_python2 respecto a la orden dh_pysupport u dh_pycentral. No uses la orden dh_python. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -30 / 62 │ │ │ │ │ +30 / 63 │ │ │ │ │ │ │ │ │ │ • Añade el paquete dh-autoreconf en el campo Build-Depends. │ │ │ │ │ • Utiliza dh $@ --with autoreconf en su lugar. │ │ │ │ │ • Así se actualiza los archivos del sistema de compilación GNU y los restaura después de la compilación. │ │ │ │ │ Añadir la orden dh_girepository. │ │ │ │ │ • Añade el paquete gobject-introspection en el campo Build-Depends. │ │ │ │ │ • Utiliza dh $@ --with gir en su lugar. │ │ │ │ │ @@ -1609,15 +1609,15 @@ │ │ │ │ │ Si el Makefile de las fuentes de gentoo contiene un objetivo test que no deseas que se ejecute en la construcción del │ │ │ │ │ paquete Debian, puedes usar un objetivo override_dh_auto_test sin órdenes para ignorarlo. │ │ │ │ │ 2⁵En lenny, cuando querías cambiar el comportamiento de un programa dh_* tenías que encontrar la línea adecuada en el archivo rules y cambiarla. │ │ │ │ │ 2⁶dh_auto_build sin argumentos ejecutará el primer objetivo del archivo Makefile. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -31 / 62 │ │ │ │ │ +31 / 63 │ │ │ │ │ │ │ │ │ │ override_dh_auto_test: │ │ │ │ │ │ │ │ │ │ Si gentoo contiene el poco frecuente archivo de cambios del autor con el nombre FIXES, dh_installchangelogs no lo instalará │ │ │ │ │ por omisión. La orden dh_installchangelogs requiere como argumento FIXES para instalarlo 2⁷. │ │ │ │ │ override_dh_installchangelogs: │ │ │ │ │ dh_installchangelogs FIXES │ │ │ │ │ @@ -1627,15 +1627,15 @@ │ │ │ │ │ tipo override_dh_* y de forma que sean completamente independientes entre sí (siempre que sea posible). │ │ │ │ │ │ │ │ │ │ 2⁷Los archivos debian/changelog y debian/NEWS siempre se instalan automáticamente. También se busca el archivo de cambios del autor para │ │ │ │ │ cambiar el nombre a minúsculas y por su coincidencia con changelog, changes, changelog.txt, y changes.txt. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -32 / 62 │ │ │ │ │ +32 / 63 │ │ │ │ │ │ │ │ │ │ Capítulo 5 │ │ │ │ │ │ │ │ │ │ Otros ficheros en el directorio debian. │ │ │ │ │ The dh_make command had major updates since this old document was written. So some parts of this document aren’t applicable │ │ │ │ │ any more. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ @@ -1659,15 +1659,15 @@ │ │ │ │ │ │ │ │ │ │ 5.1. Archivo README.Debian (LÉEME.debian) │ │ │ │ │ Cualquier detalle extra o discrepancias entre el programa original y su versión debianizada debería documentarse aquí. │ │ │ │ │ dh_make construye uno predeterminado, y éste es su aspecto: │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -33 / 62 │ │ │ │ │ +33 / 63 │ │ │ │ │ │ │ │ │ │ gentoo for Debian │ │ │ │ │ ---------------- │ │ │ │ │ -- Josip Rodin , Wed, 11 Nov 1998 21:02:14 +0100 │ │ │ │ │ │ │ │ │ │ Dado que no tenemos que poner nada aquí, elimínalo.Véase dh_installdocs(1). │ │ │ │ │ │ │ │ │ │ @@ -1704,15 +1704,15 @@ │ │ │ │ │ cada hora. │ │ │ │ │ nombre_del_paquete.cron.daily - instalados como /etc/cron.daily/nombre_del_paquete: se ejecutan cada │ │ │ │ │ día, habitualmente por la mañana temprano. │ │ │ │ │ 1Véase dpkg(1) and Debian Policy Manual, ”D.2.5 Conffiles” (http://www.debian.org/doc/debian-policy/ap-pkg-controlfields.html#s-pkg-f-Conffiles) . │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -34 / 62 │ │ │ │ │ +34 / 63 │ │ │ │ │ │ │ │ │ │ nombre_del_paquete.cron.weekly - instalados como /etc/cron.weekly/nombre_del_paquete: se ejecutan │ │ │ │ │ │ │ │ │ │ cada semana, habitualmente en la mañana del domingo. │ │ │ │ │ nombre_del_paquete.cron.hourly - instalados como /etc/cron.hourly/nombre_del_paquete: se ejecutan │ │ │ │ │ │ │ │ │ │ cada hora. │ │ │ │ │ @@ -1753,15 +1753,15 @@ │ │ │ │ │ Este fichero especifica los nombres de los ficheros de documentación que dh_installdocs(1) instalará en el directorio temporal. │ │ │ │ │ Por omisión, se incluirán todos los archivos existentes en los directorios de más alto nivel del código con los nombres BUGS, │ │ │ │ │ README*, TODO etc. │ │ │ │ │ También incluiré algunos otros para gentoo: │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -35 / 62 │ │ │ │ │ +35 / 63 │ │ │ │ │ │ │ │ │ │ BUGS │ │ │ │ │ CONFIG-CHANGES │ │ │ │ │ CREDITS │ │ │ │ │ ONEWS │ │ │ │ │ README │ │ │ │ │ README.gtkrc │ │ │ │ │ @@ -1803,15 +1803,15 @@ │ │ │ │ │ superior de la compilación) seguido de un espacio y a continuación el directorio de instalación (relativo al directorio superior de │ │ │ │ │ instalación). Suponiendo que el archivo binario src/archivo_binario no se instalase, deberías utilizar el archivo install │ │ │ │ │ como sigue: │ │ │ │ │ 2Esto reemplaza la orden obsoleta dh_movefiles(1) que se configuraba con el archivo files. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -36 / 62 │ │ │ │ │ +36 / 63 │ │ │ │ │ │ │ │ │ │ src/archivo_binario usr/bin │ │ │ │ │ │ │ │ │ │ Al instalarse el paquete, se instalará el archivo binario /usr/bin/nombre_archivo_binario. │ │ │ │ │ En el archivo install puedes escribir el nombre del archivo sin el directorio de instalación siempre que no cambie la ruta │ │ │ │ │ relativa de directorio. Este formato se usa en paquetes grandes que separan el resultado de la compilación en múltiples paquetes │ │ │ │ │ binarios haciendo uso de nombre_del_paquete-1.install, nombre_del_paquete-2.install, etc. │ │ │ │ │ @@ -1860,15 +1860,15 @@ │ │ │ │ │ Las páginas de manual se escriben normalmente con nroff(1). La plantilla manpage.1.ex está escrita con nroff. Consulta la │ │ │ │ │ página de manual man(7) para una breve descripción sobre como editar el archivo. │ │ │ │ │ El nombre del archivo de manual debería incluir el nombre del programa que está documentando, así que lo renombraremos │ │ │ │ │ de manpage a gentoo. El nombre del fichero incluye también .1 como primer sufijo, lo que significa que es una página de │ │ │ │ │ manual para una programa de usuario. Asegúrate de verificar que esa sección es la correcta. Aquí tienes una pequeña lista de las │ │ │ │ │ secciones de las páginas de manual. │ │ │ │ │ │ │ │ │ │ - 37 / 62 │ │ │ │ │ + 37 / 63 │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ Sección │ │ │ │ │ 1 │ │ │ │ │ 2 │ │ │ │ │ 3 │ │ │ │ │ @@ -1942,15 +1942,15 @@ │ │ │ │ │ 3Ten presente que el marcador de posición de páginas de manual help2man reclamará que la documentación más detallada se encuentra disponible en el │ │ │ │ │ sistema de información. Si el comando no encuentra una página info, deberás editar manualmente la página de manual construida por help2man. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ 5.16. │ │ │ │ │ │ │ │ │ │ -38 / 62 │ │ │ │ │ +38 / 63 │ │ │ │ │ │ │ │ │ │ Archivo nombre_del_paquete.manpages │ │ │ │ │ │ │ │ │ │ Si tu paquete tiene páginas de manual, deberías instalarlas con dh_installman(1) listando los archivos correspondientes en el │ │ │ │ │ archivo nombre_del_paquete.manpages. │ │ │ │ │ Para instalar el archivo docs/gentoo.1 del paquete gentoo como su manual, construirás el archivo gentoo.manpages │ │ │ │ │ con el contenido: │ │ │ │ │ @@ -1999,15 +1999,15 @@ │ │ │ │ │ ⁴Aunque el texto utilice la expresión abreviada bash para el nombre de los archivos {pre,post}{inst,rm}, debes utilizar la sintaxis POSIX pura para │ │ │ │ │ estos guiones del desarrollador para mantener la compatibilidad con el «shell» del sistema dash. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ 5.21. │ │ │ │ │ │ │ │ │ │ -39 / 62 │ │ │ │ │ +39 / 63 │ │ │ │ │ │ │ │ │ │ Archivo watch │ │ │ │ │ │ │ │ │ │ The watch file format is documented in the uscan(1) manpage. The watch file configures the uscan program (in the devscripts │ │ │ │ │ package) to watch the site where you originally got the source. This is also used by the Debian Package Tracker (https://tracker.debian.org/) service. │ │ │ │ │ Este es su contenido: │ │ │ │ │ # watch control file for uscan │ │ │ │ │ @@ -2053,15 +2053,15 @@ │ │ │ │ │ source. │ │ │ │ │ ⁵Véase DebSrc3.0 (http://wiki.debian.org/Projects/DebSrc3.0) para un resumen informativo sobre los formatos 3.0 (quilt) y 3.0 (native). │ │ │ │ │ ⁶Actualmente, este nuevo formato también permite trabajar con múltiples archivos «tar» fuente y otros sistemas de compresión. Estas funciones están fuera │ │ │ │ │ del objetivo de este documento. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -40 / 62 │ │ │ │ │ +40 / 63 │ │ │ │ │ │ │ │ │ │ Una vez compilado el paquete, las fuentes estarán parcheadas. Deberás deshacer los parches manualmente ejecutando dquilt │ │ │ │ │ pop -a antes de sincronizar con la rama master. Puedes automatizar esto añadiendo el archivo opcional debian/source/ │ │ │ │ │ local-options cuyo contenido será «unapply-patches». Este archivo no se incluye en el paquete fuente generado y sólo │ │ │ │ │ cambia el entorno local de compilación. Este archivo también puede contener la línea «abort-on-upstream-changes» │ │ │ │ │ (véase dpkg-source(1)). │ │ │ │ │ unapply-patches │ │ │ │ │ @@ -2109,26 +2109,26 @@ │ │ │ │ │ ⁷Se han propuesto y se están utilizando otros métodos de aplicación de los parches en Debian. El sistema quilt es el preferido. Otros sistemas son dpatch, │ │ │ │ │ dbs, cdbs, etc. La mayoría de ellos conservan los parches en archivos en el directorio debian/patches/*. │ │ │ │ │ ⁸Si has solicitado a un patrocinador que transfiera el paquete al repositorio, este sistema de separación y documentación de los cambios es muy importante │ │ │ │ │ para facilitar la revisión del paquete por el patrocinador. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -41 / 62 │ │ │ │ │ +41 / 63 │ │ │ │ │ │ │ │ │ │ $ dquilt refresh │ │ │ │ │ $ dquilt header -e │ │ │ │ │ .. descripción de la modificación │ │ │ │ │ │ │ │ │ │ Los parches conservados con el nuevo formato de fuentes 3.0 (quilt) deben estar exentos de cosas innecesarias. Debes │ │ │ │ │ asegurarte ejecutando dquilt pop -a; while dquilt push; do dquilt refresh; done. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -42 / 62 │ │ │ │ │ +42 / 63 │ │ │ │ │ │ │ │ │ │ Capítulo 6 │ │ │ │ │ │ │ │ │ │ Construcción del paquete │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Ahora deberíamos estar preparados para construir el paquete. │ │ │ │ │ │ │ │ │ │ @@ -2153,15 +2153,15 @@ │ │ │ │ │ de construir el paquete: │ │ │ │ │ 1Esta clave GPG debe ser firmado por un desarrollador de Debian para conectarse a la red de confianza y debe registrarse en el anillo de claves de │ │ │ │ │ Debian (http://keyring.debian.org) . Esto permite que los paquetes sean aceptados en los repositorios de Debian. Consulta Cómo crear un clave GPG nueva │ │ │ │ │ (http://keyring.debian.org/creating-key.html) y Wiki de Debian sobre la firma de claves (http://wiki.debian.org/Keysigning ) . │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -43 / 62 │ │ │ │ │ +43 / 63 │ │ │ │ │ │ │ │ │ │ gentoo_0.9.12.orig.tar.gz │ │ │ │ │ This is the original upstream source code tarball, merely renamed to the above so that it adheres to the Debian standard. Note │ │ │ │ │ that this was created initially by the command dh_make -f ../gentoo-0.9.12.tar.gz. │ │ │ │ │ gentoo_0.9.12-1.dsc │ │ │ │ │ Este es un sumario de los contenidos del código fuente. Este fichero se genera a partir del fichero de control y se usa cuando │ │ │ │ │ se descomprimen las fuentes con dpkg-source(1). │ │ │ │ │ @@ -2199,15 +2199,15 @@ │ │ │ │ │ 2Puedes evitar la aplicación automática de las modificaciones por dquilt en los paquetes con formato 3.0 (quilt) al final de la extracción con la opción │ │ │ │ │ --skip-patches. También puedes deshacer las modificaciones al finalizar la extracción con la ejecución de dquilt pop -a. │ │ │ │ │ 3El funcionamiento del sistema actual de compilación automática es más complicado que lo expuesto en este documento. Muchos detalles quedan fuera de │ │ │ │ │ los objetivos de este documento. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -44 / 62 │ │ │ │ │ +44 / 63 │ │ │ │ │ │ │ │ │ │ los paquetes listados en el campo Build-Depends (véase Sección 4.1 ). │ │ │ │ │ A continuación se ejecuta la siguiente orden en el directorio de las fuentes: │ │ │ │ │ $ dpkg-buildpackage -B │ │ │ │ │ │ │ │ │ │ De esta manera, se ejecuta todo lo necesario para construir el paquete binario dependiente de la arquitectura en cada arquitectura. │ │ │ │ │ Hace lo siguiente: │ │ │ │ │ @@ -2246,15 +2246,15 @@ │ │ │ │ │ sistema automático no tiene una instalación mínima de paquetes del sistema y puede dejar muchos paquetes instalados. │ │ │ │ │ ⁵Dado que el paquete pbuilder está evolucionando, deberías comprobar la situación de la configuración consultando la última documentación oficial │ │ │ │ │ disponible. │ │ │ │ │ ⁶Consulta http://buildd.debian.org/ para saber más sobre la construcción automática de paquetes Debian. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -45 / 62 │ │ │ │ │ +45 / 63 │ │ │ │ │ │ │ │ │ │ permite que tu usuario del sistema tenga permiso de escritura en el directorio /var/cache/pbuilder/result. │ │ │ │ │ crea un directorio, p.e. /var/cache/pbuilder/hooks, con permiso de escritura para tu usuario. En este directorio pondrás │ │ │ │ │ los guiones «hook» │ │ │ │ │ establece los archivos ~/.pbuilderrc o /etc/pbuilderrc con el siguiente contenido: │ │ │ │ │ AUTO_DEBSIGN=${AUTO_DEBSIGN:-no} │ │ │ │ │ HOOKDIR=/var/cache/pbuilder/hooks │ │ │ │ │ @@ -2299,15 +2299,15 @@ │ │ │ │ │ contener errores que no hacen recomendable la migración de tu sistema a esta versión. El paquete pbuilder te ayuda a hacer │ │ │ │ │ frente a esta situación. │ │ │ │ │ ⁷Se supone que la variable de entorno HOOKDIR=/var/cache/pbuilder/hooks ya está configurada. Puedes consultar otros ejemplos en /usr/ │ │ │ │ │ share/doc/pbuilder/examples. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -46 / 62 │ │ │ │ │ +46 / 63 │ │ │ │ │ │ │ │ │ │ You may need to update your stable packages after their release for stable-proposed-updates, stable/updates, │ │ │ │ │ etc. ⁸ For such occasions, the fact that you may be running a sid system is not a good enough excuse for failing to update them │ │ │ │ │ promptly. The pbuilder package can help you to access environments of almost any Debian derivative distribution of the same │ │ │ │ │ architecture. │ │ │ │ │ Consulta http://www.netfort.gr.jp/~dancer/software/pbuilder.html (http://www.netfort.gr.jp/~dancer/software/pbuilder.html) , pdebuild(1), pbuilderrc(5), y pbuilder(8). │ │ │ │ │ │ │ │ │ │ @@ -2340,15 +2340,15 @@ │ │ │ │ │ Construcción paquetes Debian con «git-buildpackage» (/usr/share/doc/git-buildpackage/manual-html/gbp.html) │ │ │ │ │ debian packages in git (https://honk.sigxcpu.org/piki/development/debian_packages_in_git/) │ │ │ │ │ Using Git for Debian Packaging (http://www.eyrie.org/~eagle/notes/debian/git.html) │ │ │ │ │ git-dpm: Debian packages in Git manager (http://git-dpm.alioth.debian.org/) │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -47 / 62 │ │ │ │ │ +47 / 63 │ │ │ │ │ │ │ │ │ │ 6.6. Reconstrucción rápida │ │ │ │ │ Con un paquete grande, puede que no quieras recompilar desde cero cada vez que tocas un detalle en el fichero debian/rules. │ │ │ │ │ Para propósitos de prueba, puedes hacer un fichero .deb sin necesidad de recompilar las fuentes originales de esta forma13: │ │ │ │ │ fakeroot debian/rules binary │ │ │ │ │ │ │ │ │ │ O simplemente puedes comprobar si el paquete se compila con: │ │ │ │ │ @@ -2374,15 +2374,15 @@ │ │ │ │ │ ejecutan subordinadas. │ │ │ │ │ │ │ │ │ │ 13Environment variables that are normally configured to proper values are not set by this method. Never create real packages to be uploaded using this quick │ │ │ │ │ method. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -48 / 62 │ │ │ │ │ +48 / 63 │ │ │ │ │ │ │ │ │ │ Capítulo 7 │ │ │ │ │ │ │ │ │ │ Comprobación del paquete en busca de fallos │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Debes conocer varios métodos para comprobar el paquete y localizar errores antes de transferirlo a repositorios públicos. │ │ │ │ │ Probar el paquete en una máquina distinta a la usada en su construcción es una magnífica idea. Debes poner atención en todos los │ │ │ │ │ @@ -2409,15 +2409,15 @@ │ │ │ │ │ │ │ │ │ │ 7.3. Comprobación de los guiones del desarrollador («maintainer scripts») │ │ │ │ │ Ya se ha comentado que los guiones del desarrollador (los archivos preinst, prerm, postinst y postrm) son complicados, excepto si se utilizan los generados por el paquete debhelper. No se recomienda su utilización a los desarrolladores │ │ │ │ │ principiantes (véase Sección 5.18 ). │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -49 / 62 │ │ │ │ │ +49 / 63 │ │ │ │ │ │ │ │ │ │ Si el paquete utiliza estos guiones del desarrollador modificados o no triviales, debes comprobar su funcionamiento en la instalación, desinstalación, eliminación y actualización. Algunos errores en estos guiones del desarrollador sólo se producen cuando │ │ │ │ │ los paquetes se eliminan o purgan. Utiliza la orden dpkg como se indica a continuación para probarlos: │ │ │ │ │ $ sudo dpkg -r gentoo │ │ │ │ │ $ sudo dpkg -P gentoo │ │ │ │ │ $ sudo dpkg -i gentoo_versión-revisión_i386.deb │ │ │ │ │ │ │ │ │ │ @@ -2455,15 +2455,15 @@ │ │ │ │ │ Observa que puedes construir el paquete con dpkg-buildpackage y ejecutar lintian todo con sólo una orden si utilizas debuild(1) │ │ │ │ │ o pdebuild(1). │ │ │ │ │ 1No es necesario añadir la opción -i -I --show-overrides a la orden lintian si la has incluido en la configuración en /etc/devscripts.conf │ │ │ │ │ o ~/.devscripts según se explicó en Sección 6.3 . │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -50 / 62 │ │ │ │ │ +50 / 63 │ │ │ │ │ │ │ │ │ │ 7.5. La orden debc │ │ │ │ │ Puedes ver la lista de archivos del paquete binario Debian ejecutando la orden debc(1) como sigue: │ │ │ │ │ $ debc nombre_del_paquete.changes │ │ │ │ │ │ │ │ │ │ 7.6. La orden debdiff │ │ │ │ │ Puedes comparar el contenido de dos paquetes de fuentes Debian ejecutando la orden debdiff(1) como sigue: │ │ │ │ │ @@ -2488,15 +2488,15 @@ │ │ │ │ │ gestor de ficheros como mc(1), que permite visionar tanto el contenido del paquete *.deb, como el de los ficheros *.udeb, │ │ │ │ │ *.debian.tar.gz, *.diff.gz, *.orig.tar.gz. │ │ │ │ │ Vigila que no haya ficheros innecesarios extra o de tamaño cero, tanto en el binario como en el paquete fuente. A veces, hay cosas │ │ │ │ │ que no se limpiaron adecuadamente, debes ajustar tu fichero rules para arreglar esto. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -51 / 62 │ │ │ │ │ +51 / 63 │ │ │ │ │ │ │ │ │ │ Capítulo 8 │ │ │ │ │ │ │ │ │ │ Actualizar el paquete │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Después del lanzamiento del paquete, es posible que debas actualizarlo pronto. │ │ │ │ │ │ │ │ │ │ @@ -2519,15 +2519,15 @@ │ │ │ │ │ dch -i o explícitamente indicando el número de versión y revisión ejecutando dch -v versión-revisión, y a continuación detallar los cambios realizados utilizando un editor 1. │ │ │ │ │ Incluye la descripción (breve) del error y la solución, seguida de la referencia de la notificación del error con (Closes: │ │ │ │ │ #654321). De esta manera, el informe de error sera «cerrado» automáticamente por el sistema de mantenimiento del repositorio Debian cuando el paquete sea aceptado en el repositorio. │ │ │ │ │ 1Para escribir la fecha y hora en el formato requerido, debes utilizar LANG=C date -R. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -52 / 62 │ │ │ │ │ +52 / 63 │ │ │ │ │ │ │ │ │ │ Deberás repetir los pasos anteriores para cada una de las modificaciones realizadas en la actualización del paquete, a la par que │ │ │ │ │ actualizas el fichero changelog de Debian mediante dch. │ │ │ │ │ Repite lo que hiciste en Sección 6.1 y Capítulo 7. │ │ │ │ │ Una vez que estes satisfecho, cambia el nombre de la distribución en el archivo changelog de UNRELEASED a unstable │ │ │ │ │ (o bien experimental).2 │ │ │ │ │ Upload the package as in Capítulo 9. The difference is that this time, the original source archive won’t be included, as it hasn’t │ │ │ │ │ @@ -2566,15 +2566,15 @@ │ │ │ │ │ while dquilt push; do dquilt refresh; done para aplicar todos los parches eliminando cosas innecesarias; │ │ │ │ │ 2Si utiliza la orden dch -r para realizar este último cambio, asegúrese que guarda el archivo changelog explícitamente con el editor. │ │ │ │ │ 3Si el paquete nombre_del_paquete está construido con el anterior formato 1.0, esto se puede hacer ejecutando zcat │ │ │ │ │ /ruta/a/nombre_del_paquete_numero_de_versión_anterior.diff.gz|patch -p1 en la nueva versión de las fuentes. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -53 / 62 │ │ │ │ │ +53 / 63 │ │ │ │ │ │ │ │ │ │ Si las modificaciones no se ejecutan correctamente, inspecciona la situación (mira la información de los archivos .rej) como │ │ │ │ │ se muestra a continuación. │ │ │ │ │ Si uno de los parches aplicados está integrado en las fuentes originales, │ │ │ │ │ • ejecuta dquilt delete para eliminarlo. │ │ │ │ │ Si uno de los parches entra en conflicto con los cambios realizados por el autor en las fuentes originales, │ │ │ │ │ • ejecuta dquilt push -f para aplicar los parches de la versión anterior para forzar los rechazos (tendrás la información │ │ │ │ │ @@ -2615,15 +2615,15 @@ │ │ │ │ │ ⁴Si la orden uscan descargar las fuentes pero no ejecuta la orden uupdate, debes corregir el archivo debian/watch añadiendo debian uupdate al │ │ │ │ │ final de la URL del archivo. │ │ │ │ │ ⁵Si quien patrocina tu paquete u otros desarrolladores hacen objeciones a la actualización del formato del paquete, no vale la pena empeñarse en argumentar │ │ │ │ │ a favor. Hay otras cosas más importantes que atender. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -54 / 62 │ │ │ │ │ +54 / 63 │ │ │ │ │ │ │ │ │ │ Si deseas actualizar el archivo rules construido por el mecanismo de inclusión Makefile del sistema de compilación │ │ │ │ │ Debian (cdbs) a la nueva sintaxis dh, lee el siguiente documento para comprender las variables de configuración DEB_*. │ │ │ │ │ • copia local de /usr/share/doc/cdbs/cdbs-doc.pdf.gz │ │ │ │ │ • The Common Debian Build System (CDBS), FOSDEM 2009 (http://meetings-archive.debian.net/pub/debian-meetings/2009/fosdem/slides/The_Common_Debian_Build_System_CDBS/) │ │ │ │ │ Si estás trabajando con un paquete construido con el formato 1.0 sin el archivo nombre_del_paquete.diff.gz, puedes actualizarlo a la nueva versión 3.0 (native) añadiendo el archivo debian/source/format con la linea 3.0 │ │ │ │ │ (native). Copia los otros archivos del directorio debian/*. │ │ │ │ │ @@ -2655,29 +2655,29 @@ │ │ │ │ │ de dch -i). │ │ │ │ │ Los cambios en la construcción del paquete Debian deben ser reconsiderados; elimina las modificaciones anteriores (sea lo │ │ │ │ │ que sea) y recuerda de añadir todo lo necesario, a no ser que haya una buena razón para no hacerlo. │ │ │ │ │ ⁶Puedes fragmentar el archivo nombre_del_paquete.diff en varios archivos de parches utilizando la orden splitdiff. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -55 / 62 │ │ │ │ │ +55 / 63 │ │ │ │ │ │ │ │ │ │ Si se ha realizado alguna modificación en la compilación (te enterarás al inspeccionar los cambios en las fuentes originales) │ │ │ │ │ puede que sea necesario actualizar el archivo debian/rules y las dependencias de compilación en el archivo debian/ │ │ │ │ │ control. │ │ │ │ │ Debes comprobar si hay alguna comunicación de parches del paquete en el sistema de gestión de errores (puede darse el │ │ │ │ │ caso que algún usuario envíe un parche ya construido y que te sea de utilidad) en Debian Bug Tracking System (BTS) │ │ │ │ │ (http://www.debian.org/Bugs/) . │ │ │ │ │ Comprueba el contenido del archivo .changes para asegurarte que envías el paquete a la distribución correcta, que los │ │ │ │ │ informes de errores que se cierran con la nueva versión del paquete están listados en el campo Closes del archivo, que el │ │ │ │ │ contenido de los campos Maintainer y Changed-By son correctos, que has firmado el archivo con tu clave GPG, etc. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -56 / 62 │ │ │ │ │ +56 / 63 │ │ │ │ │ │ │ │ │ │ Capítulo 9 │ │ │ │ │ │ │ │ │ │ Enviar el paquete │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Debian now requires source-only uploads for normal upload. So this page is outdated. │ │ │ │ │ Ahora que has probado tu nuevo paquete en profundidad, podrás transferirlo a un archivo público para compartirlo. │ │ │ │ │ @@ -2707,15 +2707,15 @@ │ │ │ │ │ http://wiki.debian.org/HowToSetupADebianRepository. Así, esta sección también es útil si no eres «DD». │ │ │ │ │ 3Consulta Sección 1.1. │ │ │ │ │ ⁴See Debian Developer’s Reference 5.6, ”Uploading a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#upload) . │ │ │ │ │ ⁵Consulta ftp://ftp.upload.debian.org/pub/UploadQueue/README. Como alternativa, puedes usar la orden dcut del paquete dput. │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -57 / 62 │ │ │ │ │ +57 / 63 │ │ │ │ │ │ │ │ │ │ mv hello_1.0-1.dsx hello_1.0-1.dsc │ │ │ │ │ -----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.10 (GNU/Linux) │ │ │ │ │ [...] │ │ │ │ │ -----END PGP SIGNATURE----- │ │ │ │ │ │ │ │ │ │ 9.2. Incluir orig.tar.gz para la transferencia del paquete al repositorio. │ │ │ │ │ @@ -2744,102 +2744,108 @@ │ │ │ │ │ $ debuild -v1.2 │ │ │ │ │ │ │ │ │ │ Para la orden pdebuild: │ │ │ │ │ $ pdebuild --debbuildopts ”-v1.2” │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -58 / 62 │ │ │ │ │ +58 / 63 │ │ │ │ │ │ │ │ │ │ Apéndice A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +Técnicas avanzadas │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial document. │ │ │ │ │ Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +Puede ser necesario editar manualmente los ficheros de las plantillas generadas con la orden dh_make para abordar los temas │ │ │ │ │ +tratados en este capítulo. La nueva orden debmake maneja mejor estos aspectos de la construcción de paquetes. │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ +A.1. Bibliotecas compartidas │ │ │ │ │ +Antes de empaquetar bibliotecas compartidas, debes leer atentamente la siguientes referencias básicas: │ │ │ │ │ Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ +Éstos son algunos consejos básicos para empezar: │ │ │ │ │ +Las bibliotecas compartidas son archivos objeto en formato ELF que contienen código compilado. │ │ │ │ │ +Las bibliotecas compartidas se distribuyen como ficheros *.so (no como ficheros *.a o *.la). │ │ │ │ │ +Las bibliotecas compartidas se utilizan principalmente para compartir código común entre varios ejecutables con la orden ld. │ │ │ │ │ +Las bibliotecas compartidas se utilizan, a veces, para proveer varios complementos («plugins») a un ejecutable mediante el │ │ │ │ │ +procedimiento dlopen. │ │ │ │ │ Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ to them from the linked executables. │ │ │ │ │ -The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ + │ │ │ │ │ +El SONAME (el nombre lógico) de la biblioteca compartida libnombre_biblioteca.so.1: objdump -p libnombre_biblio │ │ │ │ │ +| grep SONAME 1 │ │ │ │ │ +El «SONAME» (el nombre lógico) de una biblioteca compartida generalmente coincide con el nombre del archivo de biblioteca │ │ │ │ │ +(pero no siempre). │ │ │ │ │ +1Como alternativa: readelf -d libnombre_biblioteca.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -59 / 62 │ │ │ │ │ +59 / 63 │ │ │ │ │ │ │ │ │ │ -The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ +El «SONAME» (el nombre lógico) de las bibliotecas compartidas enlazadas a /usr/bin/foo: objdump -p /usr/bin/foo │ │ │ │ │ +| grep NEEDED 2 │ │ │ │ │ +libfoo1: el paquete de biblioteca de la biblioteca compartida libfoo.so.1 con la versión ABI del nombre lógico («SONAME») 1.3 │ │ │ │ │ +Los guiones de desarrollador de un paquete de biblioteca deben ejecutar ldconfig cuando sea necesario para generar los enlaces │ │ │ │ │ +simbólicos para el «SONAME» (el nombre lógico).⁴ │ │ │ │ │ libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +Aunque está un poco anticuado y es sólo una referencia secundaria, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) aún puede ser útil. │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. Gestionando debian/package.symbols │ │ │ │ │ When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ dh_makeshlibs(1) │ │ │ │ │ dpkg-gensymbols(1) │ │ │ │ │ dpkg-shlibdeps(1) │ │ │ │ │ deb-symbols(5) │ │ │ │ │ Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ libfoo1.symbols file: │ │ │ │ │ -Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -• If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -• If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1. │ │ │ │ │ -symbols in its source package, use it again. │ │ │ │ │ +Preparar el esqueleto de directorios fuente Debian utilizando el fichero con las fuentes libfoo-1.3.tar.gz. │ │ │ │ │ +• Si es la primera versión del paquete libfoo1, genera un fichero debian/libfoo1.symbols en blanco. │ │ │ │ │ +• Si la versión anterior del autor (la 1.2) fue empaquetada en el paquete libfoo1 con el fichero debian/libfoo1. │ │ │ │ │ +symbols adecuado en el paquete fuente, utilízalo otra vez. │ │ │ │ │ +2Como alternativa: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +3Véase Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +⁴Véase Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ +⁵Consulta Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) y Debian Policy │ │ │ │ │ +Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ +⁶Consulta Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +⁷Consulta Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +⁸Los cambios ABI incompatibles con versiones anteriores, normalmente requieren actualizar el «SONAME» (el nombre lógico) de la biblioteca y el de la │ │ │ │ │ +biblioteca compartida a otros nuevos. │ │ │ │ │ +⁹Para bibliotecas C++ y otros casos en los que el seguimiento individual de símbolos es difícil, es mejor consultar Debian Policy Manual, 8.6.4 ”The shlibs │ │ │ │ │ +system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) . │ │ │ │ │ + │ │ │ │ │ + Guía del nuevo desarrollador de Debian │ │ │ │ │ + │ │ │ │ │ +60 / 63 │ │ │ │ │ + │ │ │ │ │ • If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ - │ │ │ │ │ - Guía del nuevo desarrollador de Debian │ │ │ │ │ - │ │ │ │ │ -60 / 62 │ │ │ │ │ │ │ │ │ │ Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ libfoo1a and you should start over again.) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ -dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ -see diff output below │ │ │ │ │ +dpkg-gensymbols: advertencia: hay símbolos nuevos en el fichero de símbolos: ... │ │ │ │ │ +mire las diferencias a continuación │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx │ │ │ │ │ 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ foo_get_name@Base 1.1 │ │ │ │ │ foo_get_longname@Base 1.2 │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ @@ -2852,160 +2858,193 @@ │ │ │ │ │ If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ binary package of the shared library. 11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +Compilar paquetes para publicarlos con herramientas como debuild y pdebuild. │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ - │ │ │ │ │ -A.3. Multiarch │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages (particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in detail: │ │ │ │ │ -Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +Además de los ejemplos anteriores, también debes comprobar la compatibilidad ABI con más atención y actualizar manualmente │ │ │ │ │ +las versiones de los símbolos (si es necesario). 12 │ │ │ │ │ +Aunque es sólo una referencia secundaria, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) y sus │ │ │ │ │ +enlaces a otras páginas web puede ser útil. │ │ │ │ │ +10Las versiones previas de los paquetes Debian están disponibles en http://snapshot.debian.org/ (http://snapshot.debian.org/) . La revisión Debian del paquete sigue a la versión para facilitar mantenimiento de versiones anteriores («backport») del paquete: 1.1 << 1.1-1~bpo70+1 << 1.1-1 y 1.2 << │ │ │ │ │ +1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ +11La revisión de Debian se deriva de la versión para hacer más fácil el mantenimiento de versiones anteriores («backport») del paquete: 1.3 << │ │ │ │ │ +1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12Véase Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ │ │ │ │ │ - 61 / 62 │ │ │ │ │ + 61 / 63 │ │ │ │ │ │ │ │ │ │ Guía del nuevo desarrollador de Debian │ │ │ │ │ │ │ │ │ │ -Old path │ │ │ │ │ +A.3. Varias arquitecturas │ │ │ │ │ +La función de varias arquitecturas introducida en Debian «wheezy» integra la instalación en más de una arquitectura de los │ │ │ │ │ +paquetes binarios (en particular i386<->amd64, pero también con otras combinaciones) en dpkg y apt. Se recomienda leer │ │ │ │ │ +atentamente las siguientes referencias: │ │ │ │ │ +Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (desarrollador original) │ │ │ │ │ +Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian) │ │ │ │ │ +Se utilizan tripletes del tipo i386-linux-gnu y x86_64-linux-gnu para el directorio de instalación de bibliotecas compartidas. El triplete de trabajo se establece dinámicamente al valor $(DEB_HOST_MULTIARCH) por dpkg-architecture(1) para │ │ │ │ │ +cada compilación. Por ejemplo, el directorio de instalación de bibliotecas para varias arquitecturas se cambia como sigue:13 │ │ │ │ │ +Directorio antiguo │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +directorio multi-arquitectura i386 │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +directorio multi-arquitectura amd64 │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -a library source libfoo-1.tar.gz │ │ │ │ │ -a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ -Package │ │ │ │ │ +el código fuente de la biblioteca libfoo-1.tar.gz │ │ │ │ │ +el código fuente de una orden bar-1.tar.gz escrito en un lenguaje compilado │ │ │ │ │ +el código fuente de una orden baz-1.tar.gz escrito en un lenguaje interpretado │ │ │ │ │ + │ │ │ │ │ +Paquete │ │ │ │ │ + │ │ │ │ │ +Arquitectura: │ │ │ │ │ + │ │ │ │ │ libfoo1 │ │ │ │ │ -libfoo1-dbg │ │ │ │ │ -libfoo-dev │ │ │ │ │ -libfoo-tools │ │ │ │ │ -libfoo-doc │ │ │ │ │ -bar │ │ │ │ │ -bar-doc │ │ │ │ │ -baz │ │ │ │ │ │ │ │ │ │ -Architecture: │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +Multiarquitectura: │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libfoo1-dbg │ │ │ │ │ + │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libfoo-dev │ │ │ │ │ + │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libfoo-tools │ │ │ │ │ + │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +foreign │ │ │ │ │ + │ │ │ │ │ +libfoo-doc │ │ │ │ │ + │ │ │ │ │ all │ │ │ │ │ any │ │ │ │ │ all │ │ │ │ │ all │ │ │ │ │ │ │ │ │ │ -Multi-Arch: │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ +bar │ │ │ │ │ +bar-doc │ │ │ │ │ +baz │ │ │ │ │ + │ │ │ │ │ +Contenido del paquete │ │ │ │ │ +la biblioteca compartida, coinstalable │ │ │ │ │ +los símbolos de depuración de la biblioteca compartida, │ │ │ │ │ +coinstalable │ │ │ │ │ +los ficheros de cabeceras y otros de una biblioteca │ │ │ │ │ +compartida, coinstalable │ │ │ │ │ +los programas de soporte en tiempo de ejecución no son │ │ │ │ │ +co-instalables. │ │ │ │ │ +los ficheros de documentación de la biblioteca compartida │ │ │ │ │ +los ficheros compilados del programa, no son coinstalables │ │ │ │ │ +los ficheros de documentación del programa │ │ │ │ │ +los ficheros de programa interpretados │ │ │ │ │ │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +Hay que tener en cuenta que el paquete de desarrollo debe contener un enlace simbólico a la biblioteca compartida asociada sin │ │ │ │ │ +el número de versión. P. ej.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. Construcción de un paquete de biblioteca compartida │ │ │ │ │ You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -Update debian/control. │ │ │ │ │ +Actualizar debian/control. │ │ │ │ │ • Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -• Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -• Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ +• Añadir Pre-Depends: ${misc:Pre-Depends} por cada paquete binario de biblioteca compartida. │ │ │ │ │ +13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ + │ │ │ │ │ + Guía del nuevo desarrollador de Debian │ │ │ │ │ + │ │ │ │ │ +62 / 63 │ │ │ │ │ + │ │ │ │ │ +• Añadir el campo Multi-Arch: en cada sección de paquete binario. │ │ │ │ │ Set debian/compat to ”10”. │ │ │ │ │ -Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ +Cambiar el directorio habitual /usr/lib/ por el directorio multi-arquitectura /usr/lib/$(DEB_HOST_MULTIARCH)/ │ │ │ │ │ +para todos los guiones de empaquetado. │ │ │ │ │ • Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -• Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ +• Reemplazar /usr/lib/ por /usr/lib/$(DEB_HOST_MULTIARCH)/ en debian/rules. │ │ │ │ │ • If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -• Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ +• Cambiar todas referencias a /usr/lib/ por /usr/lib/*/ en los ficheros debian/nombre_del_paquete.install │ │ │ │ │ │ │ │ │ │ • Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ - │ │ │ │ │ - Guía del nuevo desarrollador de Debian │ │ │ │ │ - │ │ │ │ │ -62 / 62 │ │ │ │ │ - │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ -debian/foo.links.in > debian/foo.links │ │ │ │ │ +debian/nombre_del_paquete.links.in > debian/nombre_del_paquete.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ +Debes comprobar que el paquete de biblioteca compartida solo contiene los ficheros esperados y que el paquete «-dev» sigue │ │ │ │ │ +funcionando correctamente. │ │ │ │ │ All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ +A.5. Paquete nativo Debian │ │ │ │ │ +Si un paquete se mantiene exclusivamente para Debian o para uso local, su paquete fuente puede contener todos los ficheros │ │ │ │ │ +debian/*. Hay dos maneras para empaquetarlos. │ │ │ │ │ You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in │ │ │ │ │ Sección 2.1. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ -• package_version.tar.gz │ │ │ │ │ -• package_version.dsc │ │ │ │ │ -Build Debian binary packages from the native Debian source package. │ │ │ │ │ -• package_version_arch.deb │ │ │ │ │ +La alternativa es el esquema de trabajo para paquetes nativos Debian. │ │ │ │ │ +Generaremos un paquete fuente Debian en el formato 3.0 (native), utilizando un archivo comprimido en formato «tar» │ │ │ │ │ +que incluirá todos los archivos. │ │ │ │ │ +• nombre_del_paquete_versión.tar.gz │ │ │ │ │ +• nombre_del_paquete_versión.dsc │ │ │ │ │ +Construiremos un paquete binario Debian del paquete de fuentes nativo Debian. │ │ │ │ │ +• nombre_del_paquete_versión_arquitectura.deb │ │ │ │ │ For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ package by issuing the dh_make command as follows: │ │ │ │ │ -$ cd ~/mypackage-1.0 │ │ │ │ │ +$ cd ~/mi_paquete-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ +1⁴Como │ │ │ │ │ +alternativa, │ │ │ │ │ +puedes │ │ │ │ │ +añadir │ │ │ │ │ +los │ │ │ │ │ +argumentos │ │ │ │ │ +--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ +y │ │ │ │ │ +--libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) en ./configure. Fíjate que --libexecdir especifica el directorio predeterminado para la instalación de programas ejecutables que son ejecutados por otros programas en lugar de por los usuarios. El valor predeterminado por │ │ │ │ │ +«Autotools» es /usr/libexec/ pero en Debian es /usr/lib/. │ │ │ │ │ + │ │ │ │ │ + Guía del nuevo desarrollador de Debian │ │ │ │ │ + │ │ │ │ │ +63 / 63 │ │ │ │ │ │ │ │ │ │ Then the debian directory and its contents are created just like in Sección 2.8. This does not create a tarball, since this is a native │ │ │ │ │ Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ -mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ -mypackage_1.0.dsc │ │ │ │ │ +Después de la ejecución de la orden dpkg-buildpackage, encontrarás los siguientes ficheros en el directorio superior: │ │ │ │ │ +mi_paquete_1.0.tar.gz │ │ │ │ │ +Este es el archivo del código fuente generado a partir del directorio mi_paquete-1.0 por la orden dpkg-source (su sufijo │ │ │ │ │ +no es orig.tar.gz.). │ │ │ │ │ +mi_paquete_1.0.dsc │ │ │ │ │ This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -mypackage_1.0_i386.deb │ │ │ │ │ +mi_paquete_1.0_i386.deb │ │ │ │ │ This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no │ │ │ │ │ -Debian revision.) │ │ │ │ │ +mi_paquete_1.0_i386.changes │ │ │ │ │ +Este archivo describe todos los cambios realizados en el versión actual del paquete en el caso de los paquetes Debian no nativos │ │ │ │ │ +(no tiene código de revisión Debian). │ │ │ ├── ./usr/share/doc/maint-guide-es/maint-guide.es.txt.gz │ │ │ │ ├── maint-guide.es.txt │ │ │ │ │ @@ -150,20 +150,20 @@ │ │ │ │ │ 8.5. Conversión a UTF-8 │ │ │ │ │ 8.6. Recordatorio para actualizar paquetes │ │ │ │ │ 9. Enviar el paquete │ │ │ │ │ 9.1. Enviar al repositorio de Debian │ │ │ │ │ 9.2. Incluir orig.tar.gz para la transferencia del paquete al │ │ │ │ │ repositorio. │ │ │ │ │ 9.3. Envíos discontinuados │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ - A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ +A. Técnicas avanzadas │ │ │ │ │ + A.1. Bibliotecas compartidas │ │ │ │ │ + A.2. Gestionando debian/package.symbols │ │ │ │ │ + A.3. Varias arquitecturas │ │ │ │ │ + A.4. Construcción de un paquete de biblioteca compartida │ │ │ │ │ + A.5. Paquete nativo Debian │ │ │ │ │ │ │ │ │ │ Capítulo 1. Empezando «de la forma correcta». │ │ │ │ │ │ │ │ │ │ The rewrite of this tutorial document with updated contents and │ │ │ │ │     more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers. Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -3055,15 +3055,15 @@ │ │ │ │ │ Debian. Debes ser cuidadoso con no molestarles con ellos. │ │ │ │ │ │ │ │ │ │ 5.19. Archivo nombre_del_paquete.symbols │ │ │ │ │ │ │ │ │ │ Packaging of a library is not easy for a novice maintainer and │ │ │ │ │     should be avoided. Having said it, if your package has libraries, │ │ │ │ │ you should have debian/package.symbols files. See Sección A.2, │ │ │ │ │ - “Managing debian/package.symbols”. │ │ │ │ │ + “Gestionando debian/package.symbols”. │ │ │ │ │ │ │ │ │ │ 5.20. Archivo TODO │ │ │ │ │ │ │ │ │ │     La orden dh_installdocs(1) instala este archivo. │ │ │ │ │ │ │ │ │ │ 5.21. Archivo watch │ │ │ │ │ │ │ │ │ │ @@ -4391,91 +4391,97 @@ │ │ │ │ │     ^[85] See Debian Developer's Reference 5.6, "Uploading a │ │ │ │ │ package". │ │ │ │ │ │ │ │ │ │ ^[86] Consulta ftp://ftp.upload.debian.org/pub/UploadQueue/ │ │ │ │ │     README. Como alternativa, puedes usar la orden dcut del paquete │ │ │ │ │ dput. │ │ │ │ │ │ │ │ │ │ -Apéndice A. Advanced packaging │ │ │ │ │ +Apéndice A. Técnicas avanzadas │ │ │ │ │ │ │ │ │ │ The rewrite of this tutorial document with updated contents and │ │ │ │ │     more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers. Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ │ │ │ │ │ Here are some hints and pointers for advanced packaging topics │ │ │ │ │     that you are most likely to deal with. You are strongly advised │ │ │ │ │ to read all the references suggested here. │ │ │ │ │ │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ + Puede ser necesario editar manualmente los ficheros de las │ │ │ │ │ +    plantillas generadas con la orden dh_make para abordar los temas │ │ │ │ │ + tratados en este capítulo. La nueva orden debmake maneja mejor │ │ │ │ │ + estos aspectos de la construcción de paquetes. │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +A.1. Bibliotecas compartidas │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +    Antes de empaquetar bibliotecas compartidas, debes leer │ │ │ │ │ + atentamente la siguientes referencias básicas: │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ │ │ │ │ │     * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    Éstos son algunos consejos básicos para empezar: │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * Las bibliotecas compartidas son archivos objeto en formato │ │ │ │ │ + ELF que contienen código compilado. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * Las bibliotecas compartidas se distribuyen como ficheros *.so │ │ │ │ │ + (no como ficheros *.a o *.la). │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * Las bibliotecas compartidas se utilizan principalmente para │ │ │ │ │ + compartir código común entre varios ejecutables con la orden │ │ │ │ │ + ld. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * Las bibliotecas compartidas se utilizan, a veces, para │ │ │ │ │ + proveer varios complementos («plugins») a un ejecutable │ │ │ │ │ + mediante el procedimiento dlopen. │ │ │ │ │ │ │ │ │ │ * Shared libraries export symbols, which represent compiled │ │ │ │ │ objects such as variables, functions, and classes; and enable │ │ │ │ │ access to them from the linked executables. │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ - │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ - │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ - objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ - │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ - │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * El SONAME (el nombre lógico) de la biblioteca compartida lib │ │ │ │ │ + nombre_biblioteca.so.1: objdump -p libnombre_biblioteca.so.1 │ │ │ │ │ + | grep SONAME ^[87] │ │ │ │ │ + │ │ │ │ │ + * El «SONAME» (el nombre lógico) de una biblioteca compartida │ │ │ │ │ + generalmente coincide con el nombre del archivo de biblioteca │ │ │ │ │ + (pero no siempre). │ │ │ │ │ +    │ │ │ │ │ + * El «SONAME» (el nombre lógico) de las bibliotecas compartidas │ │ │ │ │ + enlazadas a /usr/bin/foo: objdump -p /usr/bin/foo | grep │ │ │ │ │ + NEEDED ^[88] │ │ │ │ │ + │ │ │ │ │ + * libfoo1: el paquete de biblioteca de la biblioteca compartida │ │ │ │ │ + libfoo.so.1 con la versión ABI del nombre lógico («SONAME») 1 │ │ │ │ │ + .^[89] │ │ │ │ │ + │ │ │ │ │ + * Los guiones de desarrollador de un paquete de biblioteca │ │ │ │ │ + deben ejecutar ldconfig cuando sea necesario para generar los │ │ │ │ │ + enlaces simbólicos para el «SONAME» (el nombre lógico).^[90] │ │ │ │ │ │ │ │ │ │ * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ debugging symbols for the shared library package libfoo1. │ │ │ │ │ │ │ │ │ │ * libfoo-dev: the development package that contains the header │ │ │ │ │ files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ │ │ │ │ │ * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ in general.^[92] │ │ │ │ │ │ │ │ │ │ * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * Aunque está un poco anticuado y es sólo una referencia │ │ │ │ │ + secundaria, Debian Library Packaging Guide aún puede ser │ │ │ │ │ + útil. │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. Gestionando debian/package.symbols │ │ │ │ │ │ │ │ │ │ When you package a shared library, you should create a debian/ │ │ │ │ │ package.symbols file to manage the minimal version associated │ │ │ │ │     with each symbol for backward-compatible ABI changes under the │ │ │ │ │ same SONAME of the library for the same shared library package │ │ │ │ │ name.^[94] You should read the following primary references in │ │ │ │ │ detail: │ │ │ │ │ @@ -4490,23 +4496,23 @@ │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ Here is a rough example of how to create the libfoo1 package from │ │ │ │ │     the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ file: │ │ │ │ │ │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ + * Preparar el esqueleto de directorios fuente Debian utilizando el │ │ │ │ │ + fichero con las fuentes libfoo-1.3.tar.gz. │ │ │ │ │ │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ + + Si es la primera versión del paquete libfoo1, genera un │ │ │ │ │ + fichero debian/libfoo1.symbols en blanco. │ │ │ │ │ │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ + + Si la versión anterior del autor (la 1.2) fue empaquetada en │ │ │ │ │ + el paquete libfoo1 con el fichero debian/libfoo1.symbols │ │ │ │ │ + adecuado en el paquete fuente, utilízalo otra vez. │ │ │ │ │ │ │ │ │ │ + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ all available binary packages of the same shared library │ │ │ │ │ package name containing the same SONAME of the library, for │ │ │ │ │ example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ │ │ │ │ │ @@ -4519,18 +4525,18 @@ │ │ │ │ │ * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ were some backward-incompatible ABI changes that require you to │ │ │ │ │ bump the shared library package name to something like libfoo1a │ │ │ │ │ and you should start over again.) │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ -    $ debuild │ │ │ │ │ - ... │ │ │ │ │ - dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ - see diff output below │ │ │ │ │ + $ debuild │ │ │ │ │ +    ... │ │ │ │ │ + dpkg-gensymbols: advertencia: hay símbolos nuevos en el fichero de símbolos: ... │ │ │ │ │ + mire las diferencias a continuación │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ foo_get_name@Base 1.1 │ │ │ │ │ foo_get_longname@Base 1.2 │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ @@ -4544,255 +4550,285 @@ │ │ │ │ │ package of the shared library. ^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * Compilar paquetes para publicarlos con herramientas como debuild │ │ │ │ │ + y pdebuild. │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ - │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ + Además de los ejemplos anteriores, también debes comprobar la │ │ │ │ │ +    compatibilidad ABI con más atención y actualizar manualmente las │ │ │ │ │ + versiones de los símbolos (si es necesario). ^[98] │ │ │ │ │ + │ │ │ │ │ + Aunque es sólo una referencia secundaria, Debian wiki │ │ │ │ │ +    UsingSymbolsFiles y sus enlaces a otras páginas web puede ser │ │ │ │ │ + útil. │ │ │ │ │ + │ │ │ │ │ +A.3. Varias arquitecturas │ │ │ │ │ + │ │ │ │ │ + La función de varias arquitecturas introducida en Debian «wheezy» │ │ │ │ │ + integra la instalación en más de una arquitectura de los paquetes │ │ │ │ │ +    binarios (en particular i386<->amd64, pero también con otras │ │ │ │ │ + combinaciones) en dpkg y apt. Se recomienda leer atentamente las │ │ │ │ │ + siguientes referencias: │ │ │ │ │ │ │ │ │ │ -A.3. Multiarch │ │ │ │ │ - │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ - │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ + * Ubuntu wiki MultiarchSpec (desarrollador original) │ │ │ │ │     │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ + * Debian wiki Multiarch/Implementation (Debian) │ │ │ │ │ │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ + Se utilizan tripletes del tipo i386-linux-gnu y x86_64-linux-gnu │ │ │ │ │ + para el directorio de instalación de bibliotecas compartidas. El │ │ │ │ │ +    triplete de trabajo se establece dinámicamente al valor $ │ │ │ │ │ + (DEB_HOST_MULTIARCH) por dpkg-architecture(1) para cada │ │ │ │ │ + compilación. Por ejemplo, el directorio de instalación de │ │ │ │ │ + bibliotecas para varias arquitecturas se cambia como sigue:^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ -    |---------+------------------------+--------------------------| │ │ │ │ │ - |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ - |---------+------------------------+--------------------------| │ │ │ │ │ - |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ + | Directorio | directorio | directorio | │ │ │ │ │ + | antiguo |multi-arquitectura i386 |multi-arquitectura amd64| │ │ │ │ │ +    |-------------+------------------------+------------------------| │ │ │ │ │ + |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ + |-------------+------------------------+------------------------| │ │ │ │ │ + |/usr/lib/ |/usr/lib/i386-linux-gnu/|/usr/lib/ | │ │ │ │ │ + | | |x86_64-linux-gnu/ | │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │     Here are some typical multiarch package split scenario examples │ │ │ │ │ for the following: │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * el código fuente de la biblioteca libfoo-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ + * el código fuente de una orden bar-1.tar.gz escrito en un │ │ │ │ │ +    lenguaje compilado │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * el código fuente de una orden baz-1.tar.gz escrito en un │ │ │ │ │ + lenguaje interpretado │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ + | Paquete |Arquitectura:|Multi-arquitectura:| Contenido del | │ │ │ │ │ + | | | | paquete | │ │ │ │ │ + |------------+-------------+-------------------+----------------| │ │ │ │ │ + | | | |la biblioteca | │ │ │ │ │ + |libfoo1 |any |same |compartida, | │ │ │ │ │ + | | | |coinstalable | │ │ │ │ │ + |------------+-------------+-------------------+----------------| │ │ │ │ │ + | | | |los símbolos de | │ │ │ │ │ + | | | |depuración de la| │ │ │ │ │ + |libfoo1-dbg |any |same |biblioteca | │ │ │ │ │ + | | | |compartida, | │ │ │ │ │ + | | | |coinstalable | │ │ │ │ │ + |------------+-------------+-------------------+----------------| │ │ │ │ │ + | | | |los ficheros de | │ │ │ │ │ + | | | |cabeceras y | │ │ │ │ │ + |libfoo-dev |any |same |otros de una | │ │ │ │ │ + | | | |biblioteca | │ │ │ │ │ + | | | |compartida, | │ │ │ │ │ + | | | |coinstalable | │ │ │ │ │ + |------------+-------------+-------------------+----------------| │ │ │ │ │ +    | | | |los programas de| │ │ │ │ │ + | | | |soporte en | │ │ │ │ │ + |libfoo-tools|any |foreign |tiempo de | │ │ │ │ │ + | | | |ejecución no son| │ │ │ │ │ + | | | |co-instalables. | │ │ │ │ │ + |------------+-------------+-------------------+----------------| │ │ │ │ │ + | | | |los ficheros de | │ │ │ │ │ + |libfoo-doc |all |foreign |documentación de| │ │ │ │ │ + | | | |la biblioteca | │ │ │ │ │ + | | | |compartida | │ │ │ │ │ + |------------+-------------+-------------------+----------------| │ │ │ │ │ + | | | |los ficheros | │ │ │ │ │ + |bar |any |foreign |compilados del | │ │ │ │ │ + | | | |programa, no son| │ │ │ │ │ + | | | |coinstalables | │ │ │ │ │ + |------------+-------------+-------------------+----------------| │ │ │ │ │ + | | | |los ficheros de | │ │ │ │ │ + |bar-doc |all |foreign |documentación | │ │ │ │ │ + | | | |del programa | │ │ │ │ │ + |------------+-------------+-------------------+----------------| │ │ │ │ │ + | | | |los ficheros de | │ │ │ │ │ + |baz |all |foreign |programa | │ │ │ │ │ + | | | |interpretados | │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ + Hay que tener en cuenta que el paquete de desarrollo debe │ │ │ │ │ +    contener un enlace simbólico a la biblioteca compartida asociada │ │ │ │ │ + sin el número de versión. P. ej.: /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ + libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. Construcción de un paquete de biblioteca compartida │ │ │ │ │ │ │ │ │ │     You can build a Debian library package enabling multiarch support │ │ │ │ │ using dh(1) as follows: │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ + * Actualizar debian/control. │ │ │ │ │ │ │ │ │ │ + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ section. │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + Añadir Pre-Depends: ${misc:Pre-Depends} por cada paquete │ │ │ │ │ + binario de biblioteca compartida. │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + Añadir el campo Multi-Arch: en cada sección de paquete │ │ │ │ │ + binario. │ │ │ │ │ │ │ │ │ │ * Set debian/compat to "10". │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ + * Cambiar el directorio habitual /usr/lib/ por el directorio │ │ │ │ │ + multi-arquitectura /usr/lib/$(DEB_HOST_MULTIARCH)/ para todos los │ │ │ │ │ + guiones de empaquetado. │ │ │ │ │ │ │ │ │ │ + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ +    DEB_HOST_MULTIARCH variable first. │ │ │ │ │ + │ │ │ │ │ + + Reemplazar /usr/lib/ por /usr/lib/$(DEB_HOST_MULTIARCH)/ en │ │ │ │ │ debian/rules. │ │ │ │ │ │ │ │ │ │ + If ./configure is used in part of the │ │ │ │ │ override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ + + Cambiar todas referencias a /usr/lib/ por /usr/lib/*/ en los │ │ │ │ │ + ficheros debian/nombre_del_paquete.install │ │ │ │ │ │ │ │ │ │ + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ dynamically by adding a script to the │ │ │ │ │ override_dh_auto_configure target in debian/rules. │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ - debian/foo.links.in > debian/foo.links │ │ │ │ │ + debian/nombre_del_paquete.links.in > debian/nombre_del_paquete.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ + Debes comprobar que el paquete de biblioteca compartida solo │ │ │ │ │ +    contiene los ficheros esperados y que el paquete «-dev» sigue │ │ │ │ │ + funcionando correctamente. │ │ │ │ │ │ │ │ │ │ All files installed simultaneously as the multiarch package to │ │ │ │ │     the same file path should have exactly the same file content. You │ │ │ │ │ must be careful of differences generated by the data byte order │ │ │ │ │ and by the compression algorithm. │ │ │ │ │ │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ +A.5. Paquete nativo Debian │ │ │ │ │ │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ + Si un paquete se mantiene exclusivamente para Debian o para uso │ │ │ │ │ +    local, su paquete fuente puede contener todos los ficheros debian │ │ │ │ │ + /*. Hay dos maneras para empaquetarlos. │ │ │ │ │ │ │ │ │ │ You can make the upstream tarball by excluding the debian/* files │ │ │ │ │     and package it as a non-native Debian package as in Sección 2.1, │ │ │ │ │ “Plan de trabajo para la construcción de paquetes Debian”. This │ │ │ │ │ is the normal way, which some people encourage using. │ │ │ │ │ │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ +    La alternativa es el esquema de trabajo para paquetes nativos │ │ │ │ │ + Debian. │ │ │ │ │ │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ - │ │ │ │ │ -    + package_version.tar.gz │ │ │ │ │ - + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ + * Generaremos un paquete fuente Debian en el formato 3.0 │ │ │ │ │ + (native), utilizando un archivo comprimido en formato «tar» │ │ │ │ │ + que incluirá todos los archivos. │ │ │ │ │ + │ │ │ │ │ +    + nombre_del_paquete_versión.tar.gz │ │ │ │ │ + + nombre_del_paquete_versión.dsc │ │ │ │ │ + * Construiremos un paquete binario Debian del paquete de │ │ │ │ │ + fuentes nativo Debian. │ │ │ │ │ │ │ │ │ │ - + package_version_arch.deb │ │ │ │ │ + + nombre_del_paquete_versión_arquitectura.deb │ │ │ │ │ │ │ │ │ │ For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │     the debian/* files, you can create a native Debian package by │ │ │ │ │ issuing the dh_make command as follows: │ │ │ │ │ │ │ │ │ │ -    $ cd ~/mypackage-1.0 │ │ │ │ │ +    $ cd ~/mi_paquete-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ Then the debian directory and its contents are created just like │ │ │ │ │ in Sección 2.8, “Paquete no nativo Debian inicial”. This does not │ │ │ │ │     create a tarball, since this is a native Debian package. But that │ │ │ │ │ is the only difference. The rest of the packaging activities are │ │ │ │ │ practically the same. │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    Después de la ejecución de la orden dpkg-buildpackage, │ │ │ │ │ + encontrarás los siguientes ficheros en el directorio superior: │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0.tar.gz │ │ │ │ │ + * mi_paquete_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + Este es el archivo del código fuente generado a partir del │ │ │ │ │ + directorio mi_paquete-1.0 por la orden dpkg-source (su sufijo │ │ │ │ │ + no es orig.tar.gz.). │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0.dsc │ │ │ │ │ + * mi_paquete_1.0.dsc │ │ │ │ │ │ │ │ │ │ This is a summary of the contents of the source code, as in │ │ │ │ │ the non-native Debian package. (There is no Debian revision.) │ │ │ │ │     │ │ │ │ │ - * mypackage_1.0_i386.deb │ │ │ │ │ + * mi_paquete_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ This is your completed binary package, as in the non-native │ │ │ │ │ Debian package. (There is no Debian revision.) │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0_i386.changes │ │ │ │ │ + * mi_paquete_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + Este archivo describe todos los cambios realizados en el │ │ │ │ │ + versión actual del paquete en el caso de los paquetes Debian │ │ │ │ │ + no nativos (no tiene código de revisión Debian). │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] Como alternativa: readelf -d libnombre_biblioteca.so.1 | │ │ │ │ │ + grep SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] Como alternativa: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] Véase Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ + libraries". │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] Véase Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ +    ^[91] Consulta Debian Policy Manual, 8.3 "Static libraries" y │ │ │ │ │ + Debian Policy Manual, 8.4 "Development files". │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] Consulta Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] Consulta Debian wiki RpathIssue. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ + ^[94] Los cambios ABI incompatibles con versiones anteriores, │ │ │ │ │ +    normalmente requieren actualizar el «SONAME» (el nombre lógico) │ │ │ │ │ + de la biblioteca y el de la biblioteca compartida a otros nuevos. │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ + ^[95] Para bibliotecas C++ y otros casos en los que el │ │ │ │ │ +    seguimiento individual de símbolos es difícil, es mejor consultar │ │ │ │ │ + Debian Policy Manual, 8.6.4 "The shlibs system". │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] Las versiones previas de los paquetes Debian están │ │ │ │ │ + disponibles en http://snapshot.debian.org/. La revisión Debian │ │ │ │ │ +    del paquete sigue a la versión para facilitar mantenimiento de │ │ │ │ │ + versiones anteriores («backport») del paquete: 1.1 << │ │ │ │ │ + 1.1-1~bpo70+1 << 1.1-1 y 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ + ^[97] La revisión de Debian se deriva de la versión para hacer │ │ │ │ │ +    más fácil el mantenimiento de versiones anteriores («backport») │ │ │ │ │ + del paquete: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ +    ^[98] Véase Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ changes". │ │ │ │ │ │ │ │ │ │     ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ lib64/ are not used anymore. │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] Como alternativa, puedes añadir los argumentos --libdir=\ │ │ │ │ │ + $${prefix}/lib/$(DEB_HOST_MULTIARCH) y --libexecdir=\$${prefix}/ │ │ │ │ │ + lib/$(DEB_HOST_MULTIARCH) en ./configure. Fíjate que --libexecdir │ │ │ │ │ +    especifica el directorio predeterminado para la instalación de │ │ │ │ │ + programas ejecutables que son ejecutados por otros programas en │ │ │ │ │ + lugar de por los usuarios. El valor predeterminado por │ │ │ │ │ + «Autotools» es /usr/libexec/ pero en Debian es /usr/lib/. ├── maint-guide-fr_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1568 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 553396 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 554092 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: maint-guide-fr │ │ │ │ Source: maint-guide │ │ │ │ Version: 1.2.53 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Osamu Aoki │ │ │ │ -Installed-Size: 929 │ │ │ │ +Installed-Size: 932 │ │ │ │ Suggests: debian-policy, developers-reference, devscripts, dh-make, doc-base, dupload | dput, fakeroot, lintian, pbuilder, quilt │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://www.debian.org/doc/devel-manuals#maint-guide │ │ │ │ Description: Debian New Maintainers' Guide (French) │ │ │ │ This package contains the Debian New Maintainers' Guide. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1224 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39554 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/advanced.fr.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/advanced.fr.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 39377 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/build.fr.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18998 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/checkit.fr.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 64443 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/dother.fr.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 64445 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/dother.fr.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 81085 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/dreq.fr.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 56315 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/first.fr.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24862 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/index.fr.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24897 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/index.fr.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23998 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/modify.fr.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 35001 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/start.fr.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32788 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/update.fr.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12273 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/upload.fr.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 411974 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/maint-guide.fr.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61228 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/maint-guide.fr.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12275 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/html/upload.fr.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 412915 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/maint-guide.fr.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61250 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-fr/maint-guide.fr.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 615 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-fr.maint-guide-fr │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-fr │ │ │ ├── ./usr/share/doc/maint-guide-fr/html/advanced.fr.html │ │ │ │ ├── ./usr/share/doc/maint-guide-fr/html/advanced.fr.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Annexe A. Advanced packaging │ │ │ │ │ + Annexe A. Empaquetage avancé │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

Here are some typical multiarch package split scenario examples for the │ │ │ │ │ -following:

│ │ │ │ │ +

Voici quelques exemples typiques de scénarios de découpage de paquet │ │ │ │ │ +multiarchitecture pour les paquets suivants :

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a library source │ │ │ │ │ + une bibliothèque source │ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + truc │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ + ; │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + un outil source │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - bar │ │ │ │ │ + bidule │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in a compiled language │ │ │ │ │ + écrit en │ │ │ │ │ +langage compilé ; │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + un outil source │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - baz │ │ │ │ │ + machin │ │ │ │ │ │ │ │ │ │ - -1.tar.gz │ │ │ │ │ + -tar.gz │ │ │ │ │ │ │ │ │ │ - written in an interpreted language │ │ │ │ │ + écrit en │ │ │ │ │ +langage interprété : │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -777,404 +799,410 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
PackageArchitecture:Multi-Arch:Package contentPaquetArchitectureMulti-ArchContenu du paquet
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + truc │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anysamethe shared library, co-installablela bibliothèque partagée, co-installable
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + truc │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ -dbg │ │ │ │ │ │ │ │ │ │ anysamethe shared library debug symbols, co-installableles symboles de débogage de bibliothèque partagée, co-installable
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + truc │ │ │ │ │ │ │ │ │ │ -dev │ │ │ │ │ │ │ │ │ │ anysamethe shared library header files etc., co-installableles fichiers d'en-tête, etc., de bibliothèque partagée, co-installable
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + truc │ │ │ │ │ │ │ │ │ │ -tools │ │ │ │ │ │ │ │ │ │ anyforeignthe run-time support programs, not co-installableles programmes de prise en charge en cours d'exécution, non co-installable
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + truc │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe shared library documentation filesles fichiers de documentation de bibliothèque partagée
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - bar │ │ │ │ │ + bidule │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anyforeignthe compiled program files, not co-installableles fichiers du programme compilé, non co-installable
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - bar │ │ │ │ │ + bidule │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe documentation files for the programles fichiers de documentation du programme
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - baz │ │ │ │ │ + machin │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ allforeignthe interpreted program filesles fichiers du programme interprété
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + Veuillez remarquer que le paquet de développement devrait contenir un lien │ │ │ │ │ +symbolique vers la bibliothèque partagée associée │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + sans numéro de version │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ - -> │ │ │ │ │ - libfoo.so.1 │ │ │ │ │ + . Par exemple : │ │ │ │ │ + /usr/lib/x86_64-linux-gnu/libtruc.so │ │ │ │ │ + → │ │ │ │ │ + libtruc.so.1 │ │ │ │ │ + . │ │ │ │ │

│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - You can build a Debian library package enabling multiarch support using │ │ │ │ │ + Un paquet de bibliothèque partagée peut être construit en activant la prise │ │ │ │ │ +en charge multiarchitecture en utilisant │ │ │ │ │ │ │ │ │ │ dh │ │ │ │ │ (1) │ │ │ │ │ │ │ │ │ │ - as follows: │ │ │ │ │ + comme ceci : │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ -

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ -path should have exactly the same file content. You must be careful of │ │ │ │ │ -differences generated by the data byte order and by the compression │ │ │ │ │ -algorithm.

│ │ │ │ │ +

Veuillez vous assurer d'avoir vérifié que le paquet de bibliothèque partagée │ │ │ │ │ +ne contient que les fichiers attendus, et que le paquet -dev fonctionne │ │ │ │ │ +toujours.

│ │ │ │ │ +

Tous les fichiers installés simultanément par des paquets multiarchitectures │ │ │ │ │ +au même endroit devraient avoir exactement le même contenu. Vous devez faire │ │ │ │ │ +attention aux différences générées par l'ordre des octets de données │ │ │ │ │ +(boutisme) et par les algorithmes de compression.

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + Si un paquet est maintenu uniquement pour Debian ou simplement pour un usage │ │ │ │ │ +local, ses sources peuvent contenir tous les fichiers │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + . Il existe deux façons de l’empaqueter. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - You can make the upstream tarball by excluding the │ │ │ │ │ + Vous pouvez créer l’archive amont en excluant les fichiers │ │ │ │ │ debian/* │ │ │ │ │ - files and package it as a non-native Debian │ │ │ │ │ -package as in │ │ │ │ │ + et l’empaqueter comme un paquet Debian non │ │ │ │ │ +natif comme dans │ │ │ │ │ Section 2.1, « Processus de construction de paquet Debian » │ │ │ │ │ - . This is the normal way, which │ │ │ │ │ -some people encourage using. │ │ │ │ │ + . C’est la méthode normale que │ │ │ │ │ +certaines personnes préconisent d’utiliser. │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

L’autre méthode est d’utiliser la manière de procéder pour un paquet Debian │ │ │ │ │ +natif.

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ - 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + créer le paquet source Debian natif au format │ │ │ │ │ + 3.0 │ │ │ │ │ +(native) │ │ │ │ │ + en utilisant un seul fichier tar compressé où tous les │ │ │ │ │ +fichiers sont intégrés : │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + paquet │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ version │ │ │ │ │ │ │ │ │ │ .tar.gz │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + paquet │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ version │ │ │ │ │ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    construire les paquets binaires Debian à partir du paquet source Debian │ │ │ │ │ +natif :

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + paquet │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ version │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ @@ -1185,287 +1213,303 @@ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - For example, if you have source files in │ │ │ │ │ + Par exemple, si vous avez des fichiers source dans │ │ │ │ │ ~/mypackage-1.0 │ │ │ │ │ - without the │ │ │ │ │ + sans les fichiers │ │ │ │ │ debian/* │ │ │ │ │ - files, you can create a native Debian package │ │ │ │ │ -by issuing the │ │ │ │ │ + , vous pouvez créer un paquet natif Debian en │ │ │ │ │ +utilisant la commande │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ - command as follows: │ │ │ │ │ + comme suit : │ │ │ │ │

│ │ │ │ │ -
$ cd ~/mypackage-1.0
│ │ │ │ │ +        
$ cd ~/monpaquet-1.0
│ │ │ │ │  $ dh_make --native
│ │ │ │ │

│ │ │ │ │ - Then the │ │ │ │ │ + Alors le répertoire │ │ │ │ │ debian │ │ │ │ │ - directory and its contents are created │ │ │ │ │ -just like in │ │ │ │ │ + et son contenu sont créés │ │ │ │ │ +comme en │ │ │ │ │ Section 2.8, « Paquet Debian non natif initial » │ │ │ │ │ - . This does not create a │ │ │ │ │ -tarball, since this is a native Debian package. But that is the only │ │ │ │ │ -difference. The rest of the packaging activities are practically the same. │ │ │ │ │ + . Aucune archive compressée │ │ │ │ │ +n'est créée puisqu'il s'agit d'un paquet Debian natif, mais c'est la seule │ │ │ │ │ +différence. La suite de l'empaquetage est à peu près similaire. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - After execution of the │ │ │ │ │ + Après exécution de la commande │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + , les │ │ │ │ │ +fichiers suivants apparaîtront dans le répertoire parent : │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - mypackage_1.0.tar.gz │ │ │ │ │ + monpaquet_1.0.tar.gz │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + c'est l'archive compressée du code source créé à partir du répertoire │ │ │ │ │ + monpaquet-1.0 │ │ │ │ │ + par la commande │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + (il ne se termine pas par │ │ │ │ │ orig.tar.gz │ │ │ │ │ - .) │ │ │ │ │ + ) ; │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - mypackage_1.0.dsc │ │ │ │ │ + monpaquet_1.0.dsc │ │ │ │ │

    │ │ │ │ │ -

    This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ -Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    c'est un résumé du contenu du code source comme dans un paquet Debian non │ │ │ │ │ +natif (il n'y a pas de révision Debian) ;

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - mypackage_1.0_i386.deb │ │ │ │ │ + monpaquet_1.0_i386.deb │ │ │ │ │

    │ │ │ │ │ -

    This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ -(There is no Debian revision.)

    │ │ │ │ │ +

    c'est le paquet binaire terminé comme dans un paquet Debian non natif (il │ │ │ │ │ +n'y a pas de révision Debian) ;

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - mypackage_1.0_i386.changes │ │ │ │ │ + monpaquet_1.0_i386.changes │ │ │ │ │

    │ │ │ │ │ -

    This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    ce fichier décrit toutes les modifications effectuées dans la version │ │ │ │ │ +actuelle du paquet comme dans un paquet Debian non natif (il n'y a pas de │ │ │ │ │ +révision Debian).

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Alternative : │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + truc │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ | grep │ │ │ │ │ SONAME │ │ │ │ │ │ │ │ │ │ + . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Alternative : │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ - foo │ │ │ │ │ + truc │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ | grep │ │ │ │ │ NEEDED │ │ │ │ │ │ │ │ │ │ + . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ -libraries" │ │ │ │ │ + Consultez la │ │ │ │ │ + Charte Debian, │ │ │ │ │ +8.1 « Bibliothèques partagées au moment de l'exécution » │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1.1 │ │ │ │ │ -"ldconfig" │ │ │ │ │ + Consultez la │ │ │ │ │ + Charte Debian, │ │ │ │ │ +8.1.1 « ldconfig » │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.3 "Static │ │ │ │ │ -libraries" │ │ │ │ │ - and │ │ │ │ │ - Debian Policy Manual, 8.4 │ │ │ │ │ -"Development files" │ │ │ │ │ + Consultez la │ │ │ │ │ + Charte Debian, 8.3 « Bibliothèques │ │ │ │ │ +statiques » │ │ │ │ │ + et la │ │ │ │ │ + Charte Debian, │ │ │ │ │ +8.4 « Fichiers de développement » │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ + Consultez le │ │ │ │ │ + │ │ │ │ │ + wiki Debian sur l'objectif de │ │ │ │ │ +publication relatif à la suppression des fichiers │ │ │ │ │ + *.la │ │ │ │ │ + │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │

│ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki RpathIssue │ │ │ │ │ + Consultez le │ │ │ │ │ + │ │ │ │ │ + wiki Debian sur les problèmes avec │ │ │ │ │ +RPATH │ │ │ │ │ + *.la │ │ │ │ │ + │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │

│ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + Les modifications d'ABI non rétrocompatibles devraient normalement │ │ │ │ │ +nécessiter une mise à jour du SONAME de la bibliothèque et du nom de paquet │ │ │ │ │ +de la bibliothèque partagée. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │

│ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + Pour les bibliothèques C++ et d'autres cas lorsque le suivi de symboles │ │ │ │ │ +individuels est trop compliqué, suivez plutôt la │ │ │ │ │ + Charte Debian, 8.6.4 « Le système de │ │ │ │ │ +shlibs » │ │ │ │ │ + . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │

│ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + Toutes les versions précédentes des paquets Debian sont disponibles sur │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + . La révision │ │ │ │ │ +Debian est supprimée de la version pour faciliter le rétroportage du │ │ │ │ │ +paquet : │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ - and │ │ │ │ │ + et │ │ │ │ │ 1.2 │ │ │ │ │ << │ │ │ │ │ 1.2-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.2-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │

│ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + La révision Debian est supprimée de la version pour faciliter le │ │ │ │ │ +rétroportage du paquet : │ │ │ │ │ + 1.1 │ │ │ │ │ + << │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │

│ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ -library ABI changes" │ │ │ │ │ + Consultez la │ │ │ │ │ + Charte Debian, │ │ │ │ │ +8.6.2 « Modifications d'ABI dans les bibliothèques partagées » │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │

│ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ [99] │ │ │ │ │ │ │ │ │ │ - Old special purpose library paths such as │ │ │ │ │ + Certains anciens chemins de bibliothèques particulières comme │ │ │ │ │ /lib32/ │ │ │ │ │ - and │ │ │ │ │ + et │ │ │ │ │ /lib64/ │ │ │ │ │ - are not used anymore. │ │ │ │ │ + ne sont plus │ │ │ │ │ +utilisés. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ -
│ │ │ │ │ +
│ │ │ │ │

│ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + Sinon, les arguments │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + et │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + peuvent être ajoutés à │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + . Veuillez remarquer │ │ │ │ │ +que │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + indique le chemin par défaut pour │ │ │ │ │ +installer les programmes exécutables démarrés par d'autres programmes plutôt │ │ │ │ │ +que par des utilisateurs. Sa valeur Autotools par défaut est │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + mais sa valeur Debian par défaut est │ │ │ │ │ /usr/lib/ │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ ├── ./usr/share/doc/maint-guide-fr/html/upload.fr.html │ │ │ │ ├── ./usr/share/doc/maint-guide-fr/html/upload.fr.html │ │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ │ Chapitre 9. Envoi de paquet │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-fr/maint-guide.fr.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -39,35 +39,35 @@ │ │ │ │ │ Mohammed │ │ │ │ │ Adnène Trojette, │ │ │ │ │ David Prévot, et │ │ │ │ │ les membres de la │ │ │ │ │ liste │ │ │ │ │ debian-l10n-french │ │ │ │ │ │ │ │ │ │ -25 janvier 2025 │ │ │ │ │ +28 février 2026 │ │ │ │ │ │ │ │ │ │ traduction │ │ │ │ │ française │ │ │ │ │ │ │ │ │ │ -25 janvier 2025 │ │ │ │ │ +28 février 2026 │ │ │ │ │ │ │ │ │ │ traduction │ │ │ │ │ française │ │ │ │ │ │ │ │ │ │ -25 janvier 2025 │ │ │ │ │ +28 février 2026 │ │ │ │ │ │ │ │ │ │ traduction │ │ │ │ │ française │ │ │ │ │ │ │ │ │ │ -25 janvier 2025 │ │ │ │ │ +28 février 2026 │ │ │ │ │ │ │ │ │ │ traduction │ │ │ │ │ française │ │ │ │ │ │ │ │ │ │ -25 janvier 2025 │ │ │ │ │ +28 février 2026 │ │ │ │ │ │ │ │ │ │ SIGNATURE │ │ │ │ │ │ │ │ │ │ SUIVI DU DOCUMENT │ │ │ │ │ INDICE │ │ │ │ │ │ │ │ │ │ DATE │ │ │ │ │ @@ -387,23 +387,23 @@ │ │ │ │ │ │ │ │ │ │ Inclusion de orig.tar.gz pour l’envoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ Versions non envoyées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A Empaquetage avancé │ │ │ │ │ │ │ │ │ │ 54 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ -A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ +A.1 Bibliothèques partagées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 │ │ │ │ │ +A.2 Gestion de debian/paquet.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ +A.3 Multiarchitecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ +A.4 Construction d’un paquet de bibliothèque partagée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ +A.5 Paquet Debian natif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ │ │ │ │ │ Guide du nouveau responsable Debian │ │ │ │ │ │ │ │ │ │ 1 / 58 │ │ │ │ │ │ │ │ │ │ Chapitre 1 │ │ │ │ │ │ │ │ │ │ @@ -3054,280 +3054,306 @@ │ │ │ │ │ │ │ │ │ │ Guide du nouveau responsable Debian │ │ │ │ │ │ │ │ │ │ 54 / 58 │ │ │ │ │ │ │ │ │ │ Annexe A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +Empaquetage avancé │ │ │ │ │ La réécriture de ce tutoriel avec des contenus à jour et des exemples pratiques supplémentaires est disponible sur Guide du responsable Debian (https://www.debian.org/doc/devel-manuals#debmake-doc) . Veuillez utiliser ce nouveau tutoriel comme document │ │ │ │ │ principal. │ │ │ │ │ -Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ -to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +Voici quelques conseils et indications pour des sujets d’empaquetage avancé auxquels vous serez sans doute confrontés. La lecture │ │ │ │ │ +de toutes les références suggérées ici est vivement recommandée. │ │ │ │ │ +Vous pouvez avoir besoin d’éditer vous-mêmes les fichiers de modèle d’empaquetage produits par la commande dh_make pour │ │ │ │ │ +répondre à des préoccupations de ce chapitre. La nouvelle commande debmake devrait le faire de meilleure façon. │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +Bibliothèques partagées │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ -— Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ -— Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ -— Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -— Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -— Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -— Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -— Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ -— Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ -to them from the linked executables. │ │ │ │ │ -— The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -— The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -— The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -— libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1. 3 │ │ │ │ │ -— The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary symbolic links for the SONAME. ⁴ │ │ │ │ │ -— libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ -1. Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2. Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ -3. See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ -4. See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ +Avant d’empaqueter des bibliothèques partagées, vous devriez lire les références essentielles suivantes avec attention : │ │ │ │ │ +— Charte Debian, 8 « Bibliothèques partagées » (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) ; │ │ │ │ │ +— Charte Debian, 9.1.1 « Structure de système de fichiers » (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ +; │ │ │ │ │ +— Charte Debian, 10.2 « Bibliothèques » (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) . │ │ │ │ │ +Voici quelques conseils simplifiés à l’extrême pour commencer : │ │ │ │ │ +— les bibliothèques partagées sont des fichiers objet ELF contenant du code compilé ; │ │ │ │ │ +— les bibliothèques partagées sont distribuées en fichiers *.so (pas en fichiers *.a ni en fichiers *.la) ; │ │ │ │ │ +— les bibliothèques partagées sont surtout utilisées pour partager du code commun à plusieurs exécutables avec le mécanisme │ │ │ │ │ +ld ; │ │ │ │ │ +— les bibliothèques partagées sont parfois utilisées pour fournir plusieurs greffons à un exécutable avec le mécanisme dlopen ; │ │ │ │ │ +— les bibliothèques partagées exportent des symboles qui représentent des objets compilés comme des variables, des fonctions │ │ │ │ │ +et des classes ; elles permettent qu’on y accède à partir des exécutables liés ; │ │ │ │ │ +— le SONAME d’une bibliothèque partagée libtruc.so.1 : objdump -p libtruc.so.1 | grep SONAME ; 1 │ │ │ │ │ +— le SONAME d’une bibliothèque partagée correspond normalement au nom du fichier de bibliothèque (mais pas toujours) ; │ │ │ │ │ +— le SONAME d’une bibliothèque partagée liée à /usr/bin/truc : objdump -p /usr/bin/truc | grep NEEDED ; 2 │ │ │ │ │ +— libtruc1 : le paquet de bibliothèque pour la bibliothèque partagée libtruc.so.1 avec la version 1 d’ABI SONAME ; 3 │ │ │ │ │ +— les scripts du responsable du paquet de bibliothèque doivent appeler ldconfig dans des circonstances particulières pour créer │ │ │ │ │ +les liens symboliques nécessaires au SONAME ; ⁴ │ │ │ │ │ +1. Alternative : readelf -d libtruc.so.1 | grep SONAME. │ │ │ │ │ +2. Alternative : readelf -d libtruc.so.1 | grep NEEDED. │ │ │ │ │ +3. Consultez la Charte Debian, 8.1 « Bibliothèques partagées au moment de l’exécution » (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#ssharedlibs-runtime) . │ │ │ │ │ +4. Consultez la Charte Debian, 8.1.1 « ldconfig » (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ │ │ │ │ │ Guide du nouveau responsable Debian │ │ │ │ │ │ │ │ │ │ 55 / 58 │ │ │ │ │ │ │ │ │ │ -— libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1. ⁵ │ │ │ │ │ -— Debian packages should not contain *.la Libtool archive files in general. ⁶ │ │ │ │ │ -— Debian packages should not use RPATH in general. ⁷ │ │ │ │ │ -— Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +— libtruc1-dbg : le paquet de symboles de débogage qui contient les symboles de débogage du paquet de bibliothèque │ │ │ │ │ +partagée libtruc1 ; │ │ │ │ │ +— libtruc-dev : le paquet de développement qui contient les fichiers d’en-têtes, etc., de la bibliothèque partagée libtruc.so.1 ; ⁵ │ │ │ │ │ +— les paquets Debian ne devraient normalement pas contenir de fichiers d’archive Libtool *.la ; ⁶ │ │ │ │ │ +— les paquets Debian ne devraient normalement pas utiliser RPATH ; ⁷ │ │ │ │ │ +— bien qu’il soit dépassé et que ce ne soit qu’une référence secondaire, le guide d’empaquetage de bibliothèques Debian │ │ │ │ │ +(http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) peut encore être utile. │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +Gestion de debian/paquet.symbols │ │ │ │ │ │ │ │ │ │ -When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ -associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ -library package name. ⁸ You should read the following primary references in detail: │ │ │ │ │ -— Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ -— dh_makeshlibs(1) │ │ │ │ │ -— dpkg-gensymbols(1) │ │ │ │ │ -— dpkg-shlibdeps(1) │ │ │ │ │ -— deb-symbols(5) │ │ │ │ │ -Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ -libfoo1.symbols file: │ │ │ │ │ -— Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -— If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -— If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1. │ │ │ │ │ -symbols in its source package, use it again. │ │ │ │ │ -— If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols │ │ │ │ │ -file from all available binary packages of the same shared library package name containing the same SONAME of the │ │ │ │ │ -library, for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ -$ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ -$ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ +Lors de l’empaquetage d’une bibliothèque partagée, il faut créer un fichier debian/paquet.symbols pour gérer la version │ │ │ │ │ +minimale associée à chaque symbole pour les modifications d’ABI rétrocompatibles sous le même SONAME de la bibliothèque │ │ │ │ │ +pour le même nom de paquet de bibliothèque partagée. ⁸ Vous devriez lire les références essentielles suivantes avec attention : │ │ │ │ │ +— Charte Debian, 8.6.3 « Le système de symboles » (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ; ⁹ │ │ │ │ │ +— dh_makeshlibs(1) ; │ │ │ │ │ +— dpkg-gensymbols(1) ; │ │ │ │ │ +— dpkg-shlibdeps(1) ; │ │ │ │ │ +— deb-symbols(5). │ │ │ │ │ +Voici un exemple grossier de la manière de créer le paquet libtruc1 à partir de la version amont 1.3 avec le fichier debian/ │ │ │ │ │ +libtruc1.symbols adéquat : │ │ │ │ │ +— préparer le squelette d’arborescence source Debian en utilisant le fichier amont libtruc-1.3.tar.gz : │ │ │ │ │ +— s’il s’agit du premier empaquetage du paquet libtruc1, créer le fichier vide debian/libtruc1.symbols ; │ │ │ │ │ +— si la version amont précédente 1.2 a été empaquetée en tant que paquet libtruc1 contenant le fichier debian/ │ │ │ │ │ +libtruc1.symbols adéquat dans son paquet source, le réutiliser ; │ │ │ │ │ +— si la version amont précédente 1.2 n’a pas été empaquetée avec le fichier debian/libtruc1.symbols adéquat, le │ │ │ │ │ +créer comme fichier symbols à partir de tous les paquets binaires disponibles de même nom de paquet de bibliothèque │ │ │ │ │ +partagée contenant le même SONAME de la bibliothèque, par exemple de versions 1.1-1 et 1.2-1 : 10 │ │ │ │ │ +$ dpkg-deb -x libtruc1_1.1-1.deb libtruc1_1.1-1 │ │ │ │ │ +$ dpkg-deb -x libtruc1_1.2-1.deb libtruc1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ -$ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ -$ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ +$ dpkg-gensymbols -v1.1 -plibtruc1 -Plibtruc1_1.1-1 -Osymbols │ │ │ │ │ +$ dpkg-gensymbols -v1.2 -plibtruc1 -Plibtruc1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ -— Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ -were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ -libfoo1a and you should start over again.) │ │ │ │ │ -$ cd libfoo-1.3 │ │ │ │ │ +— essayer de construire depuis l’arborescence source avec des outils comme debuild et pdebuild (en cas d’échecs dus à des │ │ │ │ │ +symboles manquants, etc., c’est qu’il y a eu des modifications d’ABI non rétrocompatibles qui nécessitent de changer le nom │ │ │ │ │ +de paquet de bibliothèque partagée en quelque chose comme libtruc1a avant de recommencer) : │ │ │ │ │ +$ cd libtruc-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ -see diff output below │ │ │ │ │ ---- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ -+++ dpkg-gensymbolsFE5gzx │ │ │ │ │ -2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ -5. See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -6. See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -7. See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -8. Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -9. For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10. All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ +5. Consultez la Charte Debian, 8.3 « Bibliothèques statiques » (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) et la Charte │ │ │ │ │ +Debian, 8.4 « Fichiers de développement » (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ +6. Consultez le wiki Debian sur l’objectif de publication relatif à la suppression des fichiers *.la (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +7. Consultez le wiki Debian sur les problèmes avec RPATH*.la (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +8. Les modifications d’ABI non rétrocompatibles devraient normalement nécessiter une mise à jour du SONAME de la bibliothèque et du nom de paquet de │ │ │ │ │ +la bibliothèque partagée. │ │ │ │ │ +9. Pour les bibliothèques C++ et d’autres cas lorsque le suivi de symboles individuels est trop compliqué, suivez plutôt la Charte Debian, 8.6.4 « Le système │ │ │ │ │ +de shlibs » (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) . │ │ │ │ │ +10. Toutes les versions précédentes des paquets Debian sont disponibles sur http://snapshot.debian.org/ (http://snapshot.debian.org/) . La révision Debian est │ │ │ │ │ +supprimée de la version pour faciliter le rétroportage du paquet : 1.1 << 1.1-1~bpo70+1 << 1.1-1 et 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ 56 / 58 │ │ │ │ │ │ │ │ │ │ Guide du nouveau responsable Debian │ │ │ │ │ │ │ │ │ │ +see diff output below │ │ │ │ │ +--- debian/libtruc1.symbols (libtruc1_1.3-1_amd64) │ │ │ │ │ ++++ dpkg-gensymbolsFE5gzx │ │ │ │ │ +2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ -foo_get_name@Base 1.1 │ │ │ │ │ -foo_get_longname@Base 1.2 │ │ │ │ │ -foo_get_type@Base 1.1 │ │ │ │ │ -+ foo_get_longtype@Base 1.3-1 │ │ │ │ │ -foo_get_symbol@Base 1.1 │ │ │ │ │ -foo_get_rank@Base 1.1 │ │ │ │ │ -foo_new@Base 1.1 │ │ │ │ │ +truc_get_name@Base 1.1 │ │ │ │ │ +truc_get_longname@Base 1.2 │ │ │ │ │ +truc_get_type@Base 1.1 │ │ │ │ │ ++ truc_get_longtype@Base 1.3-1 │ │ │ │ │ +truc_get_symbol@Base 1.1 │ │ │ │ │ +truc_get_rank@Base 1.1 │ │ │ │ │ +truc_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -— If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ -binary package of the shared library. 11 │ │ │ │ │ +— si un différentiel est affiché par dpkg-gensymbols comme ci-dessus, extraire le fichier symbols adéquat mis à jour du paquet │ │ │ │ │ +binaire généré de la bibliothèque partagée : 11 │ │ │ │ │ $ cd .. │ │ │ │ │ -$ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ -$ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ ->libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ +$ dpkg-deb -R libtruc1_1.3_amd64.deb libtruc1-tmp │ │ │ │ │ +$ sed -e ’s/1\.3-1/1\.3/’ libtruc1-tmp/DEBIAN/symbols \ │ │ │ │ │ +>libtruc-1.3/debian/libtruc1.symbols │ │ │ │ │ │ │ │ │ │ -— Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ -$ cd libfoo-1.3 │ │ │ │ │ +— construire les paquets pour la publication avec des outils comme debuild et pdebuild : │ │ │ │ │ +$ cd libtruc-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ +En plus des exemples précédents, il faut vérifier plus profondément la compatibilité d’ABI et changer vous-même les versions │ │ │ │ │ +de certains symboles si nécessaire. 12 │ │ │ │ │ +Bien que ce ne soit qu’une référence secondaire, le wiki Debian sur l’utilisation de fichiers symboles (http://wiki.debian.org/UsingSymbolsFiles) et les pages web qui y sont liées peuvent être utiles. │ │ │ │ │ │ │ │ │ │ A.3 │ │ │ │ │ │ │ │ │ │ -Multiarch │ │ │ │ │ +Multiarchitecture │ │ │ │ │ │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages (particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in detail: │ │ │ │ │ -— Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -— Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows: 13 │ │ │ │ │ -Old path │ │ │ │ │ +La fonctionnalité de multiarchitecture introduite dans Debian Wheezy intègre la prise en charge pour l’installation interarchitecture de paquets binaires (en particulier entre i386 et amd64, mais aussi d’autres combinaisons) dans dpkg et apt. Vous devriez │ │ │ │ │ +lire les références suivantes avec attention : │ │ │ │ │ +— wiki Ubuntu sur la spécification multiarchitecture (https://wiki.ubuntu.com/MultiarchSpec) (amont) ; │ │ │ │ │ +— wiki Debian sur le multiarchitecture et son implémentation (http://wiki.debian.org/Multiarch/Implementation) (situation dans │ │ │ │ │ +Debian). │ │ │ │ │ +Elle utilise un triplet du style i386-linux-gnu et x86_64-linux-gnu pour le chemin d’installation des bibliothèques │ │ │ │ │ +partagées. Le chemin de triplet réel est défini dynamiquement dans la variable $(DEB_HOST_MULTIARCH) par la commande │ │ │ │ │ +dpkg-architecture(1) pour chaque construction de paquet binaire. Par exemple, le chemin d’installation de bibliothèques multiarchitectures est modifié comme suit : 13 │ │ │ │ │ +Ancien chemin │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +Chemin multiarchitecture i386 │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +Chemin multiarchitecture amd64 │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -— a library source libfoo-1.tar.gz │ │ │ │ │ -— a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -— a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ - │ │ │ │ │ -11. The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12. See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13. Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +Voici quelques exemples typiques de scénarios de découpage de paquet multiarchitecture pour les paquets suivants : │ │ │ │ │ +11. La révision Debian est supprimée de la version pour faciliter le rétroportage du paquet : 1.1 << 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12. Consultez la Charte Debian, 8.6.2 « Modifications d’ABI dans les bibliothèques partagées » (http://www.debian.org/doc/debian-policy/chsharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ +13. Certains anciens chemins de bibliothèques particulières comme /lib32/ et /lib64/ ne sont plus utilisés. │ │ │ │ │ │ │ │ │ │ 57 / 58 │ │ │ │ │ │ │ │ │ │ Guide du nouveau responsable Debian │ │ │ │ │ │ │ │ │ │ -Package │ │ │ │ │ -libfoo1 │ │ │ │ │ -libfoo1-dbg │ │ │ │ │ -libfoo-dev │ │ │ │ │ -libfoo-tools │ │ │ │ │ -libfoo-doc │ │ │ │ │ -bar │ │ │ │ │ -bar-doc │ │ │ │ │ -baz │ │ │ │ │ +— une bibliothèque source libtruc-1.tar.gz ; │ │ │ │ │ +— un outil source bidule-1.tar.gz écrit en langage compilé ; │ │ │ │ │ +— un outil source machin-tar.gz écrit en langage interprété : │ │ │ │ │ +Paquet │ │ │ │ │ +libtruc1 │ │ │ │ │ │ │ │ │ │ -Architecture: │ │ │ │ │ +Architecture │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +Multi-Arch │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libtruc1-dbg │ │ │ │ │ + │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libtruc-dev │ │ │ │ │ + │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +same │ │ │ │ │ + │ │ │ │ │ +libtruc-tools │ │ │ │ │ + │ │ │ │ │ any │ │ │ │ │ + │ │ │ │ │ +foreign │ │ │ │ │ + │ │ │ │ │ +libtruc-doc │ │ │ │ │ + │ │ │ │ │ all │ │ │ │ │ any │ │ │ │ │ all │ │ │ │ │ all │ │ │ │ │ │ │ │ │ │ -Multi-Arch: │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ +bidule │ │ │ │ │ +bidule-doc │ │ │ │ │ +machin │ │ │ │ │ + │ │ │ │ │ +Contenu du paquet │ │ │ │ │ +la bibliothèque partagée, co-installable │ │ │ │ │ +les symboles de débogage de bibliothèque partagée, │ │ │ │ │ +co-installable │ │ │ │ │ +les fichiers d’en-tête, etc., de bibliothèque partagée, │ │ │ │ │ +co-installable │ │ │ │ │ +les programmes de prise en charge en cours d’exécution, │ │ │ │ │ +non co-installable │ │ │ │ │ +les fichiers de documentation de bibliothèque partagée │ │ │ │ │ +les fichiers du programme compilé, non co-installable │ │ │ │ │ +les fichiers de documentation du programme │ │ │ │ │ +les fichiers du programme interprété │ │ │ │ │ │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +Veuillez remarquer que le paquet de développement devrait contenir un lien symbolique vers la bibliothèque partagée associée │ │ │ │ │ +sans numéro de version. Par exemple : /usr/lib/x86_64-linux-gnu/libtruc.so → libtruc.so.1. │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +Construction d’un paquet de bibliothèque partagée │ │ │ │ │ │ │ │ │ │ -You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -— Update debian/control. │ │ │ │ │ -— Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -— Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -— Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ -— Set debian/compat to ”10”. │ │ │ │ │ -— Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ - │ │ │ │ │ -— Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/ │ │ │ │ │ -rules to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -— Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ -— If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ -replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -— Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ -— Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh │ │ │ │ │ -target in debian/rules. │ │ │ │ │ +Un paquet de bibliothèque partagée peut être construit en activant la prise en charge multiarchitecture en utilisant dh(1) comme │ │ │ │ │ +ceci : │ │ │ │ │ +— mettre à jour debian/control : │ │ │ │ │ +— ajouter Build-Depends: debhelper (>=10) à la section du paquet source, │ │ │ │ │ +— ajouter Pre-Depends: ${misc:Pre-Depends} pour chaque paquet binaire de bibliothèque partagée, │ │ │ │ │ +— ajouter la définition Multi-Arch: à chaque section de paquet binaire ; │ │ │ │ │ +— définir debian/compat à « 10 » ; │ │ │ │ │ +— ajuster le chemin classique /usr/lib/ en /usr/lib/$(DEB_HOST_MULTIARCH)/ multiarchitecture pour tous les │ │ │ │ │ +scripts d’empaquetage : │ │ │ │ │ +— appeler d’abord DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) │ │ │ │ │ +dans debian/rules pour définir la variable DEB_HOST_MULTIARCH, │ │ │ │ │ +— remplacer /usr/lib/ par /usr/lib/$(DEB_HOST_MULTIARCH)/ dans debian/rules, │ │ │ │ │ +— si ./configure est utilisé par la cible override_dh_auto_configure dans debian/rules, assurez-vous de │ │ │ │ │ +le remplacer par dh_auto_configure --, 1⁴ │ │ │ │ │ +— remplacer toutes les occurrences de /usr/lib/ par /usr/lib/*/ dans les fichiers debian/truc.install ; │ │ │ │ │ +— générer les fichiers comme debian/truc.links à partir de debian/truc.links.in dynamiquement en ajoutant │ │ │ │ │ +un script à la cible override_dh_auto_configure dans debian/rules : │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ -debian/foo.links.in > debian/foo.links │ │ │ │ │ - │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ -All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ -must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ +debian/truc.links.in > debian/truc.links │ │ │ │ │ │ │ │ │ │ -A.5 │ │ │ │ │ +14. Sinon, les arguments --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) et --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIAR │ │ │ │ │ +peuvent être ajoutés à ./configure. Veuillez remarquer que --libexecdir indique le chemin par défaut pour installer les programmes exécutables │ │ │ │ │ +démarrés par d’autres programmes plutôt que par des utilisateurs. Sa valeur Autotools par défaut est /usr/libexec/ mais sa valeur Debian par défaut est │ │ │ │ │ +/usr/lib/. │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ + Guide du nouveau responsable Debian │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ +58 / 58 │ │ │ │ │ │ │ │ │ │ -14. Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MU │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ +Veuillez vous assurer d’avoir vérifié que le paquet de bibliothèque partagée ne contient que les fichiers attendus, et que le paquet │ │ │ │ │ +-dev fonctionne toujours. │ │ │ │ │ +Tous les fichiers installés simultanément par des paquets multiarchitectures au même endroit devraient avoir exactement le même │ │ │ │ │ +contenu. Vous devez faire attention aux différences générées par l’ordre des octets de données (boutisme) et par les algorithmes │ │ │ │ │ +de compression. │ │ │ │ │ │ │ │ │ │ - Guide du nouveau responsable Debian │ │ │ │ │ +A.5 │ │ │ │ │ │ │ │ │ │ -58 / 58 │ │ │ │ │ +Paquet Debian natif │ │ │ │ │ │ │ │ │ │ -You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in │ │ │ │ │ -Section 2.1. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -— Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files │ │ │ │ │ -are included. │ │ │ │ │ -— package_version.tar.gz │ │ │ │ │ -— package_version.dsc │ │ │ │ │ -— Build Debian binary packages from the native Debian source package. │ │ │ │ │ -— package_version_arch.deb │ │ │ │ │ -For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ -package by issuing the dh_make command as follows: │ │ │ │ │ -$ cd ~/mypackage-1.0 │ │ │ │ │ +Si un paquet est maintenu uniquement pour Debian ou simplement pour un usage local, ses sources peuvent contenir tous les │ │ │ │ │ +fichiers debian/*. Il existe deux façons de l’empaqueter. │ │ │ │ │ +Vous pouvez créer l’archive amont en excluant les fichiers debian/* et l’empaqueter comme un paquet Debian non natif comme │ │ │ │ │ +dans Section 2.1. C’est la méthode normale que certaines personnes préconisent d’utiliser. │ │ │ │ │ +L’autre méthode est d’utiliser la manière de procéder pour un paquet Debian natif. │ │ │ │ │ +— créer le paquet source Debian natif au format 3.0 (native) en utilisant un seul fichier tar compressé où tous les fichiers │ │ │ │ │ +sont intégrés : │ │ │ │ │ +— paquet_version.tar.gz │ │ │ │ │ +— paquet_version.dsc │ │ │ │ │ +— construire les paquets binaires Debian à partir du paquet source Debian natif : │ │ │ │ │ +— paquet_version_arch.deb │ │ │ │ │ +Par exemple, si vous avez des fichiers source dans ~/mypackage-1.0 sans les fichiers debian/*, vous pouvez créer un │ │ │ │ │ +paquet natif Debian en utilisant la commande dh_make comme suit : │ │ │ │ │ +$ cd ~/monpaquet-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ -Then the debian directory and its contents are created just like in Section 2.8. This does not create a tarball, since this is a native │ │ │ │ │ -Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ -— mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ -— mypackage_1.0.dsc │ │ │ │ │ -This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -— mypackage_1.0_i386.deb │ │ │ │ │ -This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -— mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no │ │ │ │ │ -Debian revision.) │ │ │ │ │ +Alors le répertoire debian et son contenu sont créés comme en Section 2.8. Aucune archive compressée n’est créée puisqu’il │ │ │ │ │ +s’agit d’un paquet Debian natif, mais c’est la seule différence. La suite de l’empaquetage est à peu près similaire. │ │ │ │ │ +Après exécution de la commande dpkg-buildpackage, les fichiers suivants apparaîtront dans le répertoire parent : │ │ │ │ │ +— monpaquet_1.0.tar.gz │ │ │ │ │ +c’est l’archive compressée du code source créé à partir du répertoire monpaquet-1.0 par la commande dpkg-source (il │ │ │ │ │ +ne se termine pas par orig.tar.gz) ; │ │ │ │ │ +— monpaquet_1.0.dsc │ │ │ │ │ +c’est un résumé du contenu du code source comme dans un paquet Debian non natif (il n’y a pas de révision Debian) ; │ │ │ │ │ +— monpaquet_1.0_i386.deb │ │ │ │ │ +c’est le paquet binaire terminé comme dans un paquet Debian non natif (il n’y a pas de révision Debian) ; │ │ │ │ │ +— monpaquet_1.0_i386.changes │ │ │ │ │ +ce fichier décrit toutes les modifications effectuées dans la version actuelle du paquet comme dans un paquet Debian non natif │ │ │ │ │ +(il n’y a pas de révision Debian). │ │ │ ├── ./usr/share/doc/maint-guide-fr/maint-guide.fr.txt.gz │ │ │ │ ├── maint-guide.fr.txt │ │ │ │ │ @@ -142,20 +142,20 @@ │ │ │ │ │ 8.4. Mise à jour du style d'empaquetage │ │ │ │ │ 8.5. Conversion en UTF-8 │ │ │ │ │ 8.6. Rappels pour la mise à jour de paquets │ │ │ │ │ 9. Envoi de paquet │ │ │ │ │ 9.1. Envoi vers l'archive Debian │ │ │ │ │ 9.2. Inclusion de orig.tar.gz pour l'envoi │ │ │ │ │ 9.3. Versions non envoyées │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ - A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ +A. Empaquetage avancé │ │ │ │ │ + A.1. Bibliothèques partagées │ │ │ │ │ + A.2. Gestion de debian/paquet.symbols │ │ │ │ │ + A.3. Multiarchitecture │ │ │ │ │ + A.4. Construction d'un paquet de bibliothèque partagée │ │ │ │ │ + A.5. Paquet Debian natif │ │ │ │ │ │ │ │ │ │ Chapitre 1. Partir du bon pied │ │ │ │ │ │ │ │ │ │ La réécriture de ce tutoriel avec des contenus à jour et des │ │ │ │ │     exemples pratiques supplémentaires est disponible sur Guide du │ │ │ │ │ responsable Debian. Veuillez utiliser ce nouveau tutoriel comme │ │ │ │ │ document principal. │ │ │ │ │ @@ -3061,15 +3061,15 @@ │ │ │ │ │ Prenez garde de ne pas les transformer en source d'agacement. │ │ │ │ │ │ │ │ │ │ 5.19. paquet.symbols │ │ │ │ │ │ │ │ │ │ L'empaquetage de bibliothèque n'est pas facile pour un mainteneur │ │ │ │ │ débutant, et devrait être évité. Cela dit, si le paquet fournit │ │ │ │ │     des bibliothèques, des fichiers debian/paquet.symbols devraient │ │ │ │ │ - exister. Consultez Section A.2, « Managing debian/package │ │ │ │ │ + exister. Consultez Section A.2, « Gestion de debian/paquet │ │ │ │ │ .symbols ». │ │ │ │ │ │ │ │ │ │ 5.20. TODO │ │ │ │ │ │ │ │ │ │     La commande dh_installdocs(1) l'installe. │ │ │ │ │ │ │ │ │ │ 5.21. watch │ │ │ │ │ @@ -4385,408 +4385,441 @@ │ │ │ │ │     ^[85] Consultez la référence du Développeur Debian, 5.6. « Envois │ │ │ │ │ de paquets ». │ │ │ │ │ │ │ │ │ │ ^[86] Consultez ftp://ftp.upload.debian.org/pub/UploadQueue/ │ │ │ │ │     README. Vous pouvez aussi utiliser la commande dcut du paquet │ │ │ │ │ dput. │ │ │ │ │ │ │ │ │ │ -Annexe A. Advanced packaging │ │ │ │ │ +Annexe A. Empaquetage avancé │ │ │ │ │ │ │ │ │ │ La réécriture de ce tutoriel avec des contenus à jour et des │ │ │ │ │     exemples pratiques supplémentaires est disponible sur Guide du │ │ │ │ │ responsable Debian. Veuillez utiliser ce nouveau tutoriel comme │ │ │ │ │ document principal. │ │ │ │ │ │ │ │ │ │ - Here are some hints and pointers for advanced packaging topics │ │ │ │ │ -    that you are most likely to deal with. You are strongly advised │ │ │ │ │ - to read all the references suggested here. │ │ │ │ │ + Voici quelques conseils et indications pour des sujets │ │ │ │ │ +    d'empaquetage avancé auxquels vous serez sans doute confrontés. │ │ │ │ │ + La lecture de toutes les références suggérées ici est vivement │ │ │ │ │ + recommandée. │ │ │ │ │ │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ + Vous pouvez avoir besoin d’éditer vous-mêmes les fichiers de │ │ │ │ │ +    modèle d’empaquetage produits par la commande dh_make pour │ │ │ │ │ + répondre à des préoccupations de ce chapitre. La nouvelle │ │ │ │ │ + commande debmake devrait le faire de meilleure façon. │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +A.1. Bibliothèques partagées │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +    Avant d'empaqueter des bibliothèques partagées, vous devriez lire │ │ │ │ │ + les références essentielles suivantes avec attention : │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ + * Charte Debian, 8 « Bibliothèques partagées » ; │ │ │ │ │ │ │ │ │ │ -    * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ +    * Charte Debian, 9.1.1 « Structure de système de fichiers » ; │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ + * Charte Debian, 10.2 « Bibliothèques ». │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    Voici quelques conseils simplifiés à l'extrême pour commencer : │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * les bibliothèques partagées sont des fichiers objet ELF │ │ │ │ │ + contenant du code compilé ; │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * les bibliothèques partagées sont distribuées en fichiers *.so │ │ │ │ │ + (pas en fichiers *.a ni en fichiers *.la) ; │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * les bibliothèques partagées sont surtout utilisées pour │ │ │ │ │ + partager du code commun à plusieurs exécutables avec le │ │ │ │ │ + mécanisme ld ; │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * les bibliothèques partagées sont parfois utilisées pour │ │ │ │ │ + fournir plusieurs greffons à un exécutable avec le mécanisme │ │ │ │ │ + dlopen ; │ │ │ │ │ │ │ │ │ │ - * Shared libraries export symbols, which represent compiled │ │ │ │ │ - objects such as variables, functions, and classes; and enable │ │ │ │ │ - access to them from the linked executables. │ │ │ │ │ + * les bibliothèques partagées exportent des symboles qui │ │ │ │ │ + représentent des objets compilés comme des variables, des │ │ │ │ │ + fonctions et des classes ; elles permettent qu’on y accède à │ │ │ │ │ + partir des exécutables liés ; │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ + * le SONAME d'une bibliothèque partagée libtruc.so.1 : objdump │ │ │ │ │ + -p libtruc.so.1 | grep SONAME ;^[87] │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ + * le SONAME d'une bibliothèque partagée correspond normalement │ │ │ │ │ + au nom du fichier de bibliothèque (mais pas toujours) ; │ │ │ │ │ │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ - objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ +    * le SONAME d'une bibliothèque partagée liée à /usr/bin/truc : │ │ │ │ │ + objdump -p /usr/bin/truc | grep NEEDED ;^[88] │ │ │ │ │ │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ + * libtruc1 : le paquet de bibliothèque pour la bibliothèque │ │ │ │ │ + partagée libtruc.so.1 avec la version 1 d'ABI SONAME ;^[89] │ │ │ │ │ │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * les scripts du responsable du paquet de bibliothèque doivent │ │ │ │ │ + appeler ldconfig dans des circonstances particulières pour │ │ │ │ │ + créer les liens symboliques nécessaires au SONAME ;^[90] │ │ │ │ │ │ │ │ │ │ - * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ - debugging symbols for the shared library package libfoo1. │ │ │ │ │ + * libtruc1-dbg : le paquet de symboles de débogage qui contient │ │ │ │ │ + les symboles de débogage du paquet de bibliothèque partagée │ │ │ │ │ + libtruc1 ; │ │ │ │ │ │ │ │ │ │ - * libfoo-dev: the development package that contains the header │ │ │ │ │ - files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ + * libtruc-dev : le paquet de développement qui contient les │ │ │ │ │ + fichiers d'en-têtes, etc., de la bibliothèque partagée lib │ │ │ │ │ + truc.so.1 ;^[91] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ - in general.^[92] │ │ │ │ │ + * les paquets Debian ne devraient normalement pas contenir de │ │ │ │ │ + fichiers d'archive Libtool *.la ;^[92] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ + * les paquets Debian ne devraient normalement pas utiliser │ │ │ │ │ + RPATH ;^[93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * bien qu'il soit dépassé et que ce ne soit qu'une référence │ │ │ │ │ + secondaire, le guide d'empaquetage de bibliothèques Debian │ │ │ │ │ + peut encore être utile. │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. Gestion de debian/paquet.symbols │ │ │ │ │ │ │ │ │ │ - When you package a shared library, you should create a debian/ │ │ │ │ │ - package.symbols file to manage the minimal version associated │ │ │ │ │ -    with each symbol for backward-compatible ABI changes under the │ │ │ │ │ - same SONAME of the library for the same shared library package │ │ │ │ │ - name.^[94] You should read the following primary references in │ │ │ │ │ - detail: │ │ │ │ │ + Lors de l'empaquetage d'une bibliothèque partagée, il faut créer │ │ │ │ │ + un fichier debian/paquet.symbols pour gérer la version minimale │ │ │ │ │ +    associée à chaque symbole pour les modifications d'ABI │ │ │ │ │ + rétrocompatibles sous le même SONAME de la bibliothèque pour le │ │ │ │ │ + même nom de paquet de bibliothèque partagée.^[94] Vous devriez │ │ │ │ │ + lire les références essentielles suivantes avec attention : │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8.6.3 "The symbols system"^[95] │ │ │ │ │ + * Charte Debian, 8.6.3 « Le système de symboles » ;^[95] │ │ │ │ │ │ │ │ │ │ - * dh_makeshlibs(1) │ │ │ │ │ + * dh_makeshlibs(1) ; │ │ │ │ │ │ │ │ │ │ -    * dpkg-gensymbols(1) │ │ │ │ │ +    * dpkg-gensymbols(1) ; │ │ │ │ │ │ │ │ │ │ - * dpkg-shlibdeps(1) │ │ │ │ │ + * dpkg-shlibdeps(1) ; │ │ │ │ │ │ │ │ │ │ - * deb-symbols(5) │ │ │ │ │ + * deb-symbols(5). │ │ │ │ │ │ │ │ │ │ - Here is a rough example of how to create the libfoo1 package from │ │ │ │ │ -    the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ - file: │ │ │ │ │ + Voici un exemple grossier de la manière de créer le paquet │ │ │ │ │ +    libtruc1 à partir de la version amont 1.3 avec le fichier debian/ │ │ │ │ │ + libtruc1.symbols adéquat : │ │ │ │ │ │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ + * préparer le squelette d'arborescence source Debian en utilisant │ │ │ │ │ + le fichier amont libtruc-1.3.tar.gz : │ │ │ │ │ │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ + + s'il s'agit du premier empaquetage du paquet libtruc1, créer │ │ │ │ │ + le fichier vide debian/libtruc1.symbols ; │ │ │ │ │ │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ + + si la version amont précédente 1.2 a été empaquetée en tant │ │ │ │ │ + que paquet libtruc1 contenant le fichier debian/ │ │ │ │ │ + libtruc1.symbols adéquat dans son paquet source, le │ │ │ │ │ + réutiliser ; │ │ │ │ │ │ │ │ │ │ - + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ - debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ - all available binary packages of the same shared library │ │ │ │ │ - package name containing the same SONAME of the library, for │ │ │ │ │ - example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ + + si la version amont précédente 1.2 n'a pas été empaquetée │ │ │ │ │ + avec le fichier debian/libtruc1.symbols adéquat, le créer │ │ │ │ │ + comme fichier symbols à partir de tous les paquets binaires │ │ │ │ │ + disponibles de même nom de paquet de bibliothèque partagée │ │ │ │ │ + contenant le même SONAME de la bibliothèque, par exemple de │ │ │ │ │ + versions 1.1-1 et 1.2-1 :^[96] │ │ │ │ │ │ │ │ │ │ - $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ - $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ + $ dpkg-deb -x libtruc1_1.1-1.deb libtruc1_1.1-1 │ │ │ │ │ + $ dpkg-deb -x libtruc1_1.2-1.deb libtruc1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ - $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ - $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ + $ dpkg-gensymbols -v1.1 -plibtruc1 -Plibtruc1_1.1-1 -Osymbols │ │ │ │ │ + $ dpkg-gensymbols -v1.2 -plibtruc1 -Plibtruc1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ - * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ - and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ - were some backward-incompatible ABI changes that require you to │ │ │ │ │ - bump the shared library package name to something like libfoo1a │ │ │ │ │ - and you should start over again.) │ │ │ │ │ + * essayer de construire depuis l'arborescence source avec des │ │ │ │ │ + outils comme debuild et pdebuild (en cas d'échecs dus à des │ │ │ │ │ + symboles manquants, etc., c'est qu'il y a eu des modifications │ │ │ │ │ + d'ABI non rétrocompatibles qui nécessitent de changer le nom de │ │ │ │ │ + paquet de bibliothèque partagée en quelque chose comme libtruc1a │ │ │ │ │ + avant de recommencer) : │ │ │ │ │ │ │ │ │ │ - $ cd libfoo-1.3 │ │ │ │ │ -    $ debuild │ │ │ │ │ +    $ cd libtruc-1.3 │ │ │ │ │ + $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ - --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ + --- debian/libtruc1.symbols (libtruc1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ - foo_get_name@Base 1.1 │ │ │ │ │ - foo_get_longname@Base 1.2 │ │ │ │ │ - foo_get_type@Base 1.1 │ │ │ │ │ - + foo_get_longtype@Base 1.3-1 │ │ │ │ │ - foo_get_symbol@Base 1.1 │ │ │ │ │ - foo_get_rank@Base 1.1 │ │ │ │ │ - foo_new@Base 1.1 │ │ │ │ │ + truc_get_name@Base 1.1 │ │ │ │ │ + truc_get_longname@Base 1.2 │ │ │ │ │ + truc_get_type@Base 1.1 │ │ │ │ │ + + truc_get_longtype@Base 1.3-1 │ │ │ │ │ + truc_get_symbol@Base 1.1 │ │ │ │ │ + truc_get_rank@Base 1.1 │ │ │ │ │ + truc_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - * If you see the diff printed by the dpkg-gensymbols as above, │ │ │ │ │ - extract the proper updated symbols file from the generated binary │ │ │ │ │ - package of the shared library. ^[97] │ │ │ │ │ + * si un différentiel est affiché par dpkg-gensymbols comme │ │ │ │ │ + ci-dessus, extraire le fichier symbols adéquat mis à jour du │ │ │ │ │ + paquet binaire généré de la bibliothèque partagée :^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ - $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ - $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ - >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ + $ dpkg-deb -R libtruc1_1.3_amd64.deb libtruc1-tmp │ │ │ │ │ + $ sed -e 's/1\.3-1/1\.3/' libtruc1-tmp/DEBIAN/symbols \ │ │ │ │ │ + >libtruc-1.3/debian/libtruc1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * construire les paquets pour la publication avec des outils comme │ │ │ │ │ + debuild et pdebuild : │ │ │ │ │ │ │ │ │ │ - $ cd libfoo-1.3 │ │ │ │ │ + $ cd libtruc-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ - │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ - │ │ │ │ │ -A.3. Multiarch │ │ │ │ │ + En plus des exemples précédents, il faut vérifier plus │ │ │ │ │ +    profondément la compatibilité d'ABI et changer vous-même les │ │ │ │ │ + versions de certains symboles si nécessaire. ^[98] │ │ │ │ │ + │ │ │ │ │ + Bien que ce ne soit qu'une référence secondaire, le wiki Debian │ │ │ │ │ +    sur l'utilisation de fichiers symboles et les pages web qui y │ │ │ │ │ + sont liées peuvent être utiles. │ │ │ │ │ + │ │ │ │ │ +A.3. Multiarchitecture │ │ │ │ │ + │ │ │ │ │ + La fonctionnalité de multiarchitecture introduite dans Debian │ │ │ │ │ + Wheezy intègre la prise en charge pour l'installation │ │ │ │ │ +    interarchitecture de paquets binaires (en particulier entre i386 │ │ │ │ │ + et amd64, mais aussi d'autres combinaisons) dans dpkg et apt. │ │ │ │ │ + Vous devriez lire les références suivantes avec attention : │ │ │ │ │ │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ - │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ + * wiki Ubuntu sur la spécification multiarchitecture (amont) ; │ │ │ │ │     │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ + * wiki Debian sur le multiarchitecture et son implémentation │ │ │ │ │ + (situation dans Debian). │ │ │ │ │ │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ + Elle utilise un triplet du style i386-linux-gnu et │ │ │ │ │ + x86_64-linux-gnu pour le chemin d'installation des bibliothèques │ │ │ │ │ + partagées. Le chemin de triplet réel est défini dynamiquement │ │ │ │ │ +    dans la variable $(DEB_HOST_MULTIARCH) par la commande │ │ │ │ │ + dpkg-architecture(1) pour chaque construction de paquet binaire. │ │ │ │ │ + Par exemple, le chemin d'installation de bibliothèques │ │ │ │ │ + multiarchitectures est modifié comme suit :^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ -    |---------+------------------------+--------------------------| │ │ │ │ │ - |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ - |---------+------------------------+--------------------------| │ │ │ │ │ - |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ + | Ancien |Chemin multiarchitecture |Chemin multiarchitecture | │ │ │ │ │ + | chemin | i386 | amd64 | │ │ │ │ │ +    |-----------+-------------------------+-------------------------| │ │ │ │ │ + |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ + |-----------+-------------------------+-------------------------| │ │ │ │ │ + |/usr/lib/ |/usr/lib/i386-linux-gnu/ |/usr/lib/x86_64-linux-gnu| │ │ │ │ │ + | | |/ | │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ -    Here are some typical multiarch package split scenario examples │ │ │ │ │ - for the following: │ │ │ │ │ +    Voici quelques exemples typiques de scénarios de découpage de │ │ │ │ │ + paquet multiarchitecture pour les paquets suivants : │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * une bibliothèque source libtruc-1.tar.gz ; │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ +    * un outil source bidule-1.tar.gz écrit en langage compilé ; │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * un outil source machin-tar.gz écrit en langage interprété : │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ + | Paquet |Architecture|Multi-Arch| Contenu du paquet | │ │ │ │ │ + |-------------+------------+----------+-------------------------| │ │ │ │ │ + |libtruc1 |any |same |la bibliothèque partagée,| │ │ │ │ │ + | | | |co-installable | │ │ │ │ │ + |-------------+------------+----------+-------------------------| │ │ │ │ │ + | | | |les symboles de débogage | │ │ │ │ │ + |libtruc1-dbg |any |same |de bibliothèque partagée,| │ │ │ │ │ + | | | |co-installable | │ │ │ │ │ + |-------------+------------+----------+-------------------------| │ │ │ │ │ + | | | |les fichiers d'en-tête, | │ │ │ │ │ + |libtruc-dev |any |same |etc., de bibliothèque | │ │ │ │ │ + | | | |partagée, co-installable | │ │ │ │ │ + |-------------+------------+----------+-------------------------| │ │ │ │ │ + | | | |les programmes de prise | │ │ │ │ │ + |libtruc-tools|any |foreign |en charge en cours | │ │ │ │ │ +    | | | |d'exécution, non | │ │ │ │ │ + | | | |co-installable | │ │ │ │ │ + |-------------+------------+----------+-------------------------| │ │ │ │ │ + | | | |les fichiers de | │ │ │ │ │ + |libtruc-doc |all |foreign |documentation de | │ │ │ │ │ + | | | |bibliothèque partagée | │ │ │ │ │ + |-------------+------------+----------+-------------------------| │ │ │ │ │ + | | | |les fichiers du programme| │ │ │ │ │ + |bidule |any |foreign |compilé, non | │ │ │ │ │ + | | | |co-installable | │ │ │ │ │ + |-------------+------------+----------+-------------------------| │ │ │ │ │ + | | | |les fichiers de | │ │ │ │ │ + |bidule-doc |all |foreign |documentation du | │ │ │ │ │ + | | | |programme | │ │ │ │ │ + |-------------+------------+----------+-------------------------| │ │ │ │ │ + |machin |all |foreign |les fichiers du programme| │ │ │ │ │ + | | | |interprété | │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ + Veuillez remarquer que le paquet de développement devrait │ │ │ │ │ +    contenir un lien symbolique vers la bibliothèque partagée │ │ │ │ │ + associée sans numéro de version. Par exemple : /usr/lib/ │ │ │ │ │ + x86_64-linux-gnu/libtruc.so → libtruc.so.1. │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. Construction d'un paquet de bibliothèque partagée │ │ │ │ │ │ │ │ │ │ -    You can build a Debian library package enabling multiarch support │ │ │ │ │ - using dh(1) as follows: │ │ │ │ │ + Un paquet de bibliothèque partagée peut être construit en │ │ │ │ │ +    activant la prise en charge multiarchitecture en utilisant dh(1) │ │ │ │ │ + comme ceci : │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ + * mettre à jour debian/control : │ │ │ │ │ │ │ │ │ │ - + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ - section. │ │ │ │ │ + + ajouter Build-Depends: debhelper (>=10) à la section du │ │ │ │ │ + paquet source, │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + ajouter Pre-Depends: ${misc:Pre-Depends} pour chaque paquet │ │ │ │ │ + binaire de bibliothèque partagée, │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + ajouter la définition Multi-Arch: à chaque section de paquet │ │ │ │ │ + binaire ; │ │ │ │ │ │ │ │ │ │ - * Set debian/compat to "10". │ │ │ │ │ + * définir debian/compat à « 10 » ; │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ + * ajuster le chemin classique /usr/lib/ en /usr/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH)/ multiarchitecture pour tous les scripts │ │ │ │ │ + d'empaquetage : │ │ │ │ │ │ │ │ │ │ - + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ - -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ - debian/rules. │ │ │ │ │ + + appeler d'abord DEB_HOST_MULTIARCH ?= $(shell │ │ │ │ │ + dpkg-architecture -qDEB_HOST_MULTIARCH) dans debian/rules │ │ │ │ │ +    pour définir la variable DEB_HOST_MULTIARCH, │ │ │ │ │ + │ │ │ │ │ + + remplacer /usr/lib/ par /usr/lib/$(DEB_HOST_MULTIARCH)/ dans │ │ │ │ │ + debian/rules, │ │ │ │ │ + │ │ │ │ │ + + si ./configure est utilisé par la cible │ │ │ │ │ + override_dh_auto_configure dans debian/rules, assurez-vous de │ │ │ │ │ + le remplacer par dh_auto_configure --, ^[100] │ │ │ │ │ + │ │ │ │ │ + + remplacer toutes les occurrences de /usr/lib/ par /usr/lib/*/ │ │ │ │ │ + dans les fichiers debian/truc.install ; │ │ │ │ │ │ │ │ │ │ - + If ./configure is used in part of the │ │ │ │ │ - override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ - to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ - │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ - + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ - dynamically by adding a script to the │ │ │ │ │ - override_dh_auto_configure target in debian/rules. │ │ │ │ │ + + générer les fichiers comme debian/truc.links à partir de │ │ │ │ │ + debian/truc.links.in dynamiquement en ajoutant un script à la │ │ │ │ │ + cible override_dh_auto_configure dans debian/rules : │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ - debian/foo.links.in > debian/foo.links │ │ │ │ │ + debian/truc.links.in > debian/truc.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ + Veuillez vous assurer d'avoir vérifié que le paquet de │ │ │ │ │ +    bibliothèque partagée ne contient que les fichiers attendus, et │ │ │ │ │ + que le paquet -dev fonctionne toujours. │ │ │ │ │ │ │ │ │ │ - All files installed simultaneously as the multiarch package to │ │ │ │ │ -    the same file path should have exactly the same file content. You │ │ │ │ │ - must be careful of differences generated by the data byte order │ │ │ │ │ - and by the compression algorithm. │ │ │ │ │ + Tous les fichiers installés simultanément par des paquets │ │ │ │ │ + multiarchitectures au même endroit devraient avoir exactement le │ │ │ │ │ +    même contenu. Vous devez faire attention aux différences générées │ │ │ │ │ + par l'ordre des octets de données (boutisme) et par les │ │ │ │ │ + algorithmes de compression. │ │ │ │ │ │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ +A.5. Paquet Debian natif │ │ │ │ │ │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ + Si un paquet est maintenu uniquement pour Debian ou simplement │ │ │ │ │ +    pour un usage local, ses sources peuvent contenir tous les │ │ │ │ │ + fichiers debian/*. Il existe deux façons de l’empaqueter. │ │ │ │ │ │ │ │ │ │ - You can make the upstream tarball by excluding the debian/* files │ │ │ │ │ -    and package it as a non-native Debian package as in Section 2.1, │ │ │ │ │ - « Processus de construction de paquet Debian ». This is the │ │ │ │ │ - normal way, which some people encourage using. │ │ │ │ │ + Vous pouvez créer l’archive amont en excluant les fichiers debian │ │ │ │ │ + /* et l’empaqueter comme un paquet Debian non natif comme dans │ │ │ │ │ +    Section 2.1, « Processus de construction de paquet Debian ». │ │ │ │ │ + C’est la méthode normale que certaines personnes préconisent │ │ │ │ │ + d’utiliser. │ │ │ │ │ │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ +    L’autre méthode est d’utiliser la manière de procéder pour un │ │ │ │ │ + paquet Debian natif. │ │ │ │ │ │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ + * créer le paquet source Debian natif au format 3.0 (native) en │ │ │ │ │ + utilisant un seul fichier tar compressé où tous les fichiers │ │ │ │ │ + sont intégrés : │ │ │ │ │ │ │ │ │ │ -    + package_version.tar.gz │ │ │ │ │ - + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ +    + paquet_version.tar.gz │ │ │ │ │ + + paquet_version.dsc │ │ │ │ │ + * construire les paquets binaires Debian à partir du paquet │ │ │ │ │ + source Debian natif : │ │ │ │ │ │ │ │ │ │ - + package_version_arch.deb │ │ │ │ │ + + paquet_version_arch.deb │ │ │ │ │ │ │ │ │ │ - For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │ -    the debian/* files, you can create a native Debian package by │ │ │ │ │ - issuing the dh_make command as follows: │ │ │ │ │ + Par exemple, si vous avez des fichiers source dans ~/ │ │ │ │ │ +    mypackage-1.0 sans les fichiers debian/*, vous pouvez créer un │ │ │ │ │ + paquet natif Debian en utilisant la commande dh_make comme suit : │ │ │ │ │ │ │ │ │ │ -    $ cd ~/mypackage-1.0 │ │ │ │ │ +    $ cd ~/monpaquet-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ - Then the debian directory and its contents are created just like │ │ │ │ │ - in Section 2.8, « Paquet Debian non natif initial ». This does │ │ │ │ │ -    not create a tarball, since this is a native Debian package. But │ │ │ │ │ - that is the only difference. The rest of the packaging activities │ │ │ │ │ - are practically the same. │ │ │ │ │ + Alors le répertoire debian et son contenu sont créés comme en │ │ │ │ │ + Section 2.8, « Paquet Debian non natif initial ». Aucune archive │ │ │ │ │ +    compressée n'est créée puisqu'il s'agit d'un paquet Debian natif, │ │ │ │ │ + mais c'est la seule différence. La suite de l'empaquetage est à │ │ │ │ │ + peu près similaire. │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    Après exécution de la commande dpkg-buildpackage, les fichiers │ │ │ │ │ + suivants apparaîtront dans le répertoire parent : │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0.tar.gz │ │ │ │ │ + * monpaquet_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + c'est l'archive compressée du code source créé à partir du │ │ │ │ │ + répertoire monpaquet-1.0 par la commande dpkg-source (il ne │ │ │ │ │ + se termine pas par orig.tar.gz) ; │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0.dsc │ │ │ │ │ + * monpaquet_1.0.dsc │ │ │ │ │ │ │ │ │ │ - This is a summary of the contents of the source code, as in │ │ │ │ │ - the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ + c'est un résumé du contenu du code source comme dans un │ │ │ │ │ + paquet Debian non natif (il n'y a pas de révision Debian) ; │ │ │ │ │     │ │ │ │ │ - * mypackage_1.0_i386.deb │ │ │ │ │ + * monpaquet_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ - This is your completed binary package, as in the non-native │ │ │ │ │ - Debian package. (There is no Debian revision.) │ │ │ │ │ + c'est le paquet binaire terminé comme dans un paquet Debian │ │ │ │ │ + non natif (il n'y a pas de révision Debian) ; │ │ │ │ │ │ │ │ │ │ - * mypackage_1.0_i386.changes │ │ │ │ │ + * monpaquet_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + ce fichier décrit toutes les modifications effectuées dans la │ │ │ │ │ + version actuelle du paquet comme dans un paquet Debian non │ │ │ │ │ + natif (il n'y a pas de révision Debian). │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] Alternative : readelf -d libtruc.so.1 | grep SONAME. │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] Alternative : readelf -d libtruc.so.1 | grep NEEDED. │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] Consultez la Charte Debian, 8.1 « Bibliothèques partagées │ │ │ │ │ + au moment de l'exécution ». │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] Consultez la Charte Debian, 8.1.1 « ldconfig ». │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ +    ^[91] Consultez la Charte Debian, 8.3 « Bibliothèques statiques » │ │ │ │ │ + et la Charte Debian, 8.4 « Fichiers de développement ». │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] Consultez le wiki Debian sur l'objectif de publication │ │ │ │ │ + relatif à la suppression des fichiers *.la. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] Consultez le wiki Debian sur les problèmes avec RPATH*.la. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ + ^[94] Les modifications d'ABI non rétrocompatibles devraient │ │ │ │ │ +    normalement nécessiter une mise à jour du SONAME de la │ │ │ │ │ + bibliothèque et du nom de paquet de la bibliothèque partagée. │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ + ^[95] Pour les bibliothèques C++ et d'autres cas lorsque le suivi │ │ │ │ │ +    de symboles individuels est trop compliqué, suivez plutôt la │ │ │ │ │ + Charte Debian, 8.6.4 « Le système de shlibs ». │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] Toutes les versions précédentes des paquets Debian sont │ │ │ │ │ + disponibles sur http://snapshot.debian.org/. La révision Debian │ │ │ │ │ +    est supprimée de la version pour faciliter le rétroportage du │ │ │ │ │ + paquet : 1.1 << 1.1-1~bpo70+1 << 1.1-1 et 1.2 << 1.2-1~bpo70+1 << │ │ │ │ │ + 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ + ^[97] La révision Debian est supprimée de la version pour │ │ │ │ │ +    faciliter le rétroportage du paquet : 1.1 << 1.3 << 1.3-1~bpo70+1 │ │ │ │ │ + << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ - changes". │ │ │ │ │ +    ^[98] Consultez la Charte Debian, 8.6.2 « Modifications d'ABI │ │ │ │ │ + dans les bibliothèques partagées ». │ │ │ │ │ │ │ │ │ │ -    ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ - lib64/ are not used anymore. │ │ │ │ │ +    ^[99] Certains anciens chemins de bibliothèques particulières │ │ │ │ │ + comme /lib32/ et /lib64/ ne sont plus utilisés. │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] Sinon, les arguments --libdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) et --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) peuvent être ajoutés à ./configure. Veuillez │ │ │ │ │ +    remarquer que --libexecdir indique le chemin par défaut pour │ │ │ │ │ + installer les programmes exécutables démarrés par d'autres │ │ │ │ │ + programmes plutôt que par des utilisateurs. Sa valeur Autotools │ │ │ │ │ + par défaut est /usr/libexec/ mais sa valeur Debian par défaut est │ │ │ │ │ + /usr/lib/. ├── maint-guide-it_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1572 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 550392 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 552520 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: maint-guide-it │ │ │ │ Source: maint-guide │ │ │ │ Version: 1.2.53 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Osamu Aoki │ │ │ │ -Installed-Size: 920 │ │ │ │ +Installed-Size: 924 │ │ │ │ Suggests: debian-policy, developers-reference, devscripts, dh-make, doc-base, dupload | dput, fakeroot, lintian, pbuilder, quilt │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://www.debian.org/doc/devel-manuals#maint-guide │ │ │ │ Description: Debian New Maintainers' Guide (Italian) │ │ │ │ This package contains the Debian New Maintainers' Guide. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1223 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39583 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/advanced.it.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 41054 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/advanced.it.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38431 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/build.it.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18962 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/checkit.it.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 64447 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/dother.it.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 64445 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/dother.it.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 79799 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/dreq.it.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 55734 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/first.it.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24499 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/index.it.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24527 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/index.it.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23734 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/modify.it.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 34741 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/start.it.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32735 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/update.it.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 12102 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/upload.it.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 408761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/maint-guide.it.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61247 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/maint-guide.it.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 12118 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/html/upload.it.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 410921 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/maint-guide.it.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61219 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-it/maint-guide.it.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 617 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-it.maint-guide-it │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-it │ │ │ ├── ./usr/share/doc/maint-guide-it/html/advanced.it.html │ │ │ │ ├── ./usr/share/doc/maint-guide-it/html/advanced.it.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Appendice A. Advanced packaging │ │ │ │ │ + Appendice A. Pacchettizzazione avanzata │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

Here are some typical multiarch package split scenario examples for the │ │ │ │ │ -following:

│ │ │ │ │ +

Qui di seguito alcuni esempi tipici di pacchetti multiarch divisi per │ │ │ │ │ +scenario:

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a library source │ │ │ │ │ + sorgente di libreria │ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + sorgente di programma │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in a compiled language │ │ │ │ │ + scritto con un │ │ │ │ │ +linguaggio compilato │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + sorgente di programma │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in an interpreted language │ │ │ │ │ + scritto con un │ │ │ │ │ +linguaggio interpretato │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -777,18 +787,18 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
PackageArchitecture:PacchettoArchitettura:Multi-Arch:Package contentContenuto del pacchetto
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ @@ -796,282 +806,283 @@ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anysamethe shared library, co-installablequalsiasiugualela libreria condivisa, co-installabile
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ -dbg │ │ │ │ │ │ │ │ │ │ anysamethe shared library debug symbols, co-installablequalsiasiugualei simboli di debug della libreira condivisa, co-installabile
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -dev │ │ │ │ │ │ │ │ │ │ anysamethe shared library header files etc., co-installablequalsiasiugualei file di header, ecc, della libreira condivisa, co-installabile
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -tools │ │ │ │ │ │ │ │ │ │ anyforeignthe run-time support programs, not co-installablequalsiasistranieroil programma di supporto run-time, non co-installabile
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe shared library documentation filestuttistranieroi file di documentazione della libreria condivisa
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anyforeignthe compiled program files, not co-installablequalsiasistranieroi file del programma compilato, non co-installabile
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe documentation files for the programtuttistranieroi file di documentazione del programma
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ allforeignthe interpreted program filestuttistranieroi file del programma interpretato
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + Si prega di notare che il pacchetto di sviluppo dovrebbe contenere un link │ │ │ │ │ +simbolico per la libreria condivisa associata │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + senza │ │ │ │ │ +un numero di versione │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + . Ad es.: │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - You can build a Debian library package enabling multiarch support using │ │ │ │ │ + Si può costruire il pacchetto Debian delle libreria, abilitando il supporto │ │ │ │ │ +multiarch utilizzando │ │ │ │ │ │ │ │ │ │ dh │ │ │ │ │ (1) │ │ │ │ │ │ │ │ │ │ - as follows: │ │ │ │ │ + come di seguito: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ -

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ -path should have exactly the same file content. You must be careful of │ │ │ │ │ -differences generated by the data byte order and by the compression │ │ │ │ │ -algorithm.

│ │ │ │ │ +

Ci si assicuri di verificare che il pacchetto di libreria condivisa contenga │ │ │ │ │ +solo i file attesi, e che il pacchetto -dev continui a funzionare.

│ │ │ │ │ +

Tutti i file installati contemporaneamente come pacchetto multiarch con lo │ │ │ │ │ +stesso percorso del file devono avere esattamente lo stesso contenuto. È │ │ │ │ │ +necessario prestare attenzione alle differenze generate dall'ordine dei byte │ │ │ │ │ +nei dati e dall'algoritmo di compressione.

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + Se il pacchetto è mantenuto solo per Debian o per uso locale, il suo │ │ │ │ │ +sorgente potrebbe contenere tutti i file in │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + . │ │ │ │ │ +In questo caso, ci sono 2 modi per pacchettizzarlo. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - You can make the upstream tarball by excluding the │ │ │ │ │ + È possibile creare l'archivio originale escludendo i file in │ │ │ │ │ debian/* │ │ │ │ │ - files and package it as a non-native Debian │ │ │ │ │ -package as in │ │ │ │ │ + e pacchettizandolo come pacchetto Debian non │ │ │ │ │ +nativo, come descritto in │ │ │ │ │ Sezione 2.1, «Flusso di lavoro per la costruzione dei pacchetti Debian» │ │ │ │ │ - . This is the normal way, which │ │ │ │ │ -some people encourage using. │ │ │ │ │ + . Questo è il metodo │ │ │ │ │ +normale che alcune persone incoraggiano ad utilizzare. │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

L'alternativa è utilizzare lo stesso metodo usato dai pacchetti Debian │ │ │ │ │ +nativi.

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ - 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + Creare un pacchetto sorgente nativo di Debian nel formato │ │ │ │ │ + 3.0 │ │ │ │ │ +(native) │ │ │ │ │ + usando un singolo file tar compresso che include tutti i │ │ │ │ │ +file. │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + pacchetto │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versione │ │ │ │ │ │ │ │ │ │ .tar.gz │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + pacchetto │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versione │ │ │ │ │ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    Costruire pacchetti binari Debian dal pacchetto sorgente nativo di Debian.

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + pacchetto │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + versione │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ arch │ │ │ │ │ │ │ │ │ │ .deb │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - For example, if you have source files in │ │ │ │ │ + Per esempio, se si hanno i file sorgenti in │ │ │ │ │ ~/mypackage-1.0 │ │ │ │ │ - without the │ │ │ │ │ + senza i file │ │ │ │ │ debian/* │ │ │ │ │ - files, you can create a native Debian package │ │ │ │ │ -by issuing the │ │ │ │ │ + , si può creare un pacchetto nativo Debian, │ │ │ │ │ +utilizzando il comando │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ - command as follows: │ │ │ │ │ + come segue: │ │ │ │ │

│ │ │ │ │
$ cd ~/mypackage-1.0
│ │ │ │ │  $ dh_make --native
│ │ │ │ │

│ │ │ │ │ - Then the │ │ │ │ │ + La directory │ │ │ │ │ debian │ │ │ │ │ - directory and its contents are created │ │ │ │ │ -just like in │ │ │ │ │ + e il suo contenuto, sono creati │ │ │ │ │ +proprio come │ │ │ │ │ Sezione 2.8, «Il primo pacchetto non nativo per Debian» │ │ │ │ │ - . This does not create a │ │ │ │ │ -tarball, since this is a native Debian package. But that is the only │ │ │ │ │ -difference. The rest of the packaging activities are practically the same. │ │ │ │ │ + . Questo non crea un │ │ │ │ │ +archivio poiché si tratta di un pacchetto Debian nativo. Questa è l'unica │ │ │ │ │ +differenza. Il resto delle attività di pacchettizzazione sono praticamente │ │ │ │ │ +le stesse. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - After execution of the │ │ │ │ │ + Dopo l'esecuzione del comando │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + , si │ │ │ │ │ +possono vedere i seguenti file nella directory principale: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.tar.gz │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ + Questo è l'archivio del codice sorgente creato dalla directory │ │ │ │ │ mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + dal comando │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + . (Il suffisso non è │ │ │ │ │ orig.tar.gz │ │ │ │ │ .) │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.dsc │ │ │ │ │

    │ │ │ │ │ -

    This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ -Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    Questo è un sommario del contenuto del codice sorgente, come per i pacchetti │ │ │ │ │ +non-nativi Debian. (non c'è revisione Debian.)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.deb │ │ │ │ │

    │ │ │ │ │ -

    This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ -(There is no Debian revision.)

    │ │ │ │ │ +

    Questo è il pacchetto binario completo, come per i pacchetti non-nativi │ │ │ │ │ +Debian. (non c'è revisione Debian.)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.changes │ │ │ │ │

    │ │ │ │ │ -

    This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    Questo file descrive tutte le modifiche apportate nella versione attuale del │ │ │ │ │ +pacchetto, come per i pacchetti Debian non-nativi. (non c'è revisione │ │ │ │ │ +Debian.)

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + In alternativa: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1287,15 +1303,15 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + In alternativa: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1309,94 +1325,98 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ See │ │ │ │ │ - Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ -libraries" │ │ │ │ │ + Manuale delle policy di Debian, 8.1 │ │ │ │ │ +"Run-time shared libraries" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ See │ │ │ │ │ - Debian Policy Manual, 8.1.1 │ │ │ │ │ + Manuale delle policy di Debian, 8.1.1 │ │ │ │ │ "ldconfig" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ See │ │ │ │ │ - Debian Policy Manual, 8.3 "Static │ │ │ │ │ + Manuale delle policy di Debian, 8.3 "Static │ │ │ │ │ libraries" │ │ │ │ │ - and │ │ │ │ │ - Debian Policy Manual, 8.4 │ │ │ │ │ -"Development files" │ │ │ │ │ + e │ │ │ │ │ + Manuale delle policy di │ │ │ │ │ +Debian, 8.4 "Development files" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ + Si veda │ │ │ │ │ + Debian wiki │ │ │ │ │ +ReleaseGoals/LAFileRemoval │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Si veda │ │ │ │ │ Debian wiki RpathIssue │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + Le modifiche ABI incompatibili con le versioni precedenti, normalmente │ │ │ │ │ +rendono necessario aggiornare il SONAME della libreria e il nome del │ │ │ │ │ +pacchetto della libreria condivisa a quelli nuovi. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ + Per le librerie C++ e per gli altri casi in cui il tracciamento dei singoli │ │ │ │ │ +simboli è troppo difficile, si consulti invece │ │ │ │ │ + Manuale delle policy di Debian, 8.6.4 "The │ │ │ │ │ +shlibs system" │ │ │ │ │ , instead. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + Tutte la versioni precedenti del pacchetto Debian packages sono disponibili │ │ │ │ │ +su │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + . La │ │ │ │ │ +revisione Debian viene eliminata dalla versione per rendere più facile il │ │ │ │ │ +backport del pacchetto: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ and │ │ │ │ │ 1.2 │ │ │ │ │ @@ -1407,65 +1427,65 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + La revisione Debian viene eliminata dalla versione per rendere più facile il │ │ │ │ │ +backport del pacchetto: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ -library ABI changes" │ │ │ │ │ + Si veda │ │ │ │ │ + Manuale delle policy di Debian, │ │ │ │ │ +8.6.2 "Shared library ABI changes" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [99] │ │ │ │ │ │ │ │ │ │ - Old special purpose library paths such as │ │ │ │ │ + Vecchi percorsi di libreria, per scopi speciali, come │ │ │ │ │ /lib32/ │ │ │ │ │ and │ │ │ │ │ /lib64/ │ │ │ │ │ - are not used anymore. │ │ │ │ │ + non sono più │ │ │ │ │ +utilizzati. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + In alternativa, si possono aggiungere gli argomenti │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + e │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + a │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + . Si noti che │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + indica il percorso predefinito d'installazione dei programmi eseguibili │ │ │ │ │ +gestiti da altri programmi e non dagli utenti. Il percorso predefinito di │ │ │ │ │ +Autotools è │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + mentre quello di Debian è │ │ │ │ │ /usr/lib/ │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ ├── ./usr/share/doc/maint-guide-it/html/upload.it.html │ │ │ │ ├── ./usr/share/doc/maint-guide-it/html/upload.it.html │ │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ │ Capitolo 9. Caricamento del pacchetto │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-it/maint-guide.it.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -39,27 +39,27 @@ │ │ │ │ │ Osamu Aoki, │ │ │ │ │ Calogero Lo │ │ │ │ │ Leggio, Jacopo │ │ │ │ │ Reggiani, e │ │ │ │ │ Francesco P. │ │ │ │ │ Lovergine │ │ │ │ │ │ │ │ │ │ -25 gennaio 2025 │ │ │ │ │ +28 febbraio 2026 │ │ │ │ │ │ │ │ │ │ Traduzione italiana │ │ │ │ │ │ │ │ │ │ -25 gennaio 2025 │ │ │ │ │ +28 febbraio 2026 │ │ │ │ │ │ │ │ │ │ Traduzione italiana │ │ │ │ │ │ │ │ │ │ -25 gennaio 2025 │ │ │ │ │ +28 febbraio 2026 │ │ │ │ │ │ │ │ │ │ Traduzione italiana │ │ │ │ │ │ │ │ │ │ -25 gennaio 2025 │ │ │ │ │ +28 febbraio 2026 │ │ │ │ │ │ │ │ │ │ CRONOLOGIA DELLE REVISIONI │ │ │ │ │ POSIZIONE │ │ │ │ │ │ │ │ │ │ DATA │ │ │ │ │ │ │ │ │ │ DESCRIZIONE │ │ │ │ │ @@ -375,27 +375,27 @@ │ │ │ │ │ │ │ │ │ │ Includere orig.tar.gz per il caricamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ Aggiornamenti scartati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A Pacchettizzazione avanzata │ │ │ │ │ │ │ │ │ │ 56 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ +A.1 Librerie condivise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ +A.2 Gestire debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ +A.4 Costruzione del pacchetto della libreria condivisa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ +A.5 Pacchetto nativo Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -1 / 60 │ │ │ │ │ +1 / 61 │ │ │ │ │ │ │ │ │ │ Capitolo 1 │ │ │ │ │ │ │ │ │ │ Partire nel modo giusto │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Si prega di utilizzare il nuovo tutorial come documento │ │ │ │ │ primario. │ │ │ │ │ @@ -430,15 +430,15 @@ │ │ │ │ │ 1Nel documento si suppone l’utilizzo di un sistema jessie o superiore. Se si intende seguire questo documento per un vecchio sistema (incluse le vecchie │ │ │ │ │ versioni di Ubuntu), bisognerebbe almeno installare delle versioni backport (n.d.t. versioni dei programmi presenti nei pacchetti di testing e unstable, compilate │ │ │ │ │ per poter funzionare in un sistema stable) di dpkg e debhelper. │ │ │ │ │ 2Si possono avere più informazioni sulla gestione base di un sistema Debian dal documento Debian Reference (http://www.debian.org/doc/manuals/debianreference/) . Questo documento contiene anche alcune riferimenti utili per approfondire la programmazioni Unix. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -2 / 60 │ │ │ │ │ +2 / 61 │ │ │ │ │ │ │ │ │ │ – Non si può imporre agli altri cosa fare. │ │ │ │ │ – Si dovrebbe essere motivati a fare le cose da soli. │ │ │ │ │ • La coooperazione amichevole è la forza motrice. │ │ │ │ │ – Il vostro contributo non deve affaticare gli altri. │ │ │ │ │ – Il vostro contributo è prezioso solo quando gli altri lo apprezzano. │ │ │ │ │ • Debian non è la vostra scuola in cui si ottiene in automatico l’attenzione degli insegnanti. │ │ │ │ │ @@ -473,15 +473,15 @@ │ │ │ │ │ • Sito del New Member Debian (https://nm.debian.org/) (ufficiale) │ │ │ │ │ • Debian Mentors FAQ (http://wiki.debian.org/DebianMentorsFaq) (supplementare) │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 1.2 │ │ │ │ │ │ │ │ │ │ -3 / 60 │ │ │ │ │ +3 / 61 │ │ │ │ │ │ │ │ │ │ Programmi necessari per lo sviluppo │ │ │ │ │ │ │ │ │ │ Prima di iniziare, bisogna assicurarsi di avere installato correttamente alcuni pacchetti aggiuntivi, necessari per lo sviluppo. Da │ │ │ │ │ notare che la lista non contiene nessun pacchetto etichettato come essenziale o richiesto - ci aspettiamo che siano già │ │ │ │ │ installati nel sistema. │ │ │ │ │ I seguenti pacchetti fanno parte dell’installazione standard di Debian, per cui probabilmente sono già presenti nel sistema (insieme │ │ │ │ │ @@ -521,15 +521,15 @@ │ │ │ │ │ • pbuilder - questo pacchetto contiene i programmi che vengono usati per creare e manutenere un ambiente chroot. Creare │ │ │ │ │ pacchetti Debian nell’ambiente chroot permette di verificare le dipendenze appropriate ed evitare bug di tipo FTBFS (Fails To │ │ │ │ │ Build From Source, non compila da sorgente). (vedere pbuilder(8) e pdebuild(1)) │ │ │ │ │ 3Ci sono un paio di pacchetti specializzati ma simili, come dh-make-perl, dh-make-php, ecc. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -4 / 60 │ │ │ │ │ +4 / 61 │ │ │ │ │ │ │ │ │ │ • perl - Perl è uno dei linguaggi di scripting interpretato più utilizzati sugli odierni sistemi Unix e derivati, spesso definito come │ │ │ │ │ il coltellino svizzero di Unix. (vedere perl(1).) │ │ │ │ │ • python - Python è un altro linguaggio di scripting interpretato molto utilizzato sui sistemi Debian, combina una notevole │ │ │ │ │ potenza con una sintassi molto chiara. (vedere python(1).) │ │ │ │ │ • quilt - questo pacchetto aiuta a gestire una gran numero di patch, tenendo traccia dei cambiamenti apportati. Le patch │ │ │ │ │ sono organizzate in maniera logica come una pila, è possibile applicare(=push) le modifiche apportate dalla patch, oppure │ │ │ │ │ @@ -569,15 +569,15 @@ │ │ │ │ │ Segue una serie di tutorial alternativi che si possono leggere insieme a questo documento: │ │ │ │ │ • Debian Packaging Tutorial (http://www.debian.org/doc/packaging-manuals/packaging-tutorial/packaging-tutorial) │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 1.4 │ │ │ │ │ │ │ │ │ │ -5 / 60 │ │ │ │ │ +5 / 61 │ │ │ │ │ │ │ │ │ │ Dove chiedere aiuto │ │ │ │ │ │ │ │ │ │ Prima di decidere di fare una domanda in qualche luogo pubblico, si prega di leggere la documentazione: │ │ │ │ │ • i file in /usr/share/doc/pacchetto per tutti i pacchetti pertinenti │ │ │ │ │ • il contenuto di mancomando per tutti i comandi pertinenti │ │ │ │ │ • il contenuto di infocomando per tutti i comandi pertinenti │ │ │ │ │ @@ -605,15 +605,15 @@ │ │ │ │ │ il mondo cominceranno ad usare il vostro pacchetto, e se si è commesso qualche errore grave, la propria email sarà inondata da │ │ │ │ │ messaggi di molti utenti Debian incavolati…Si scherza ovviamente. :-) │ │ │ │ │ Ci si deve rilassare ed essere pronti per le segnalazioni di bug, perché c’è molto lavoro prima che un pacchetto sia completamente │ │ │ │ │ conforme alle policy di Debian (ancora una volta, si legga la vera documentazione per i dettagli). In bocca al lupo! │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -6 / 60 │ │ │ │ │ +6 / 61 │ │ │ │ │ │ │ │ │ │ Capitolo 2 │ │ │ │ │ │ │ │ │ │ Primi passi │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Si prega di utilizzare il nuovo tutorial come documento │ │ │ │ │ primario. │ │ │ │ │ @@ -645,15 +645,15 @@ │ │ │ │ │ 2Vedere 5.6.1 ”Sorgente” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Source) , 5.6.7 ”Pacchetto” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Package) , e 5.6.12 ”Versione” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version) . │ │ │ │ │ L’architettura del pacchetto è conforme al manuale delle Policy di Debian: 5.6.8 ”Architettura” (http://www.debian.org/doc/debian-policy/chcontrolfields.html#s-f-Architecture) ed è assegnata automaticamente al processo di creazione del pacchetto. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 2.2 │ │ │ │ │ │ │ │ │ │ -7 / 60 │ │ │ │ │ +7 / 61 │ │ │ │ │ │ │ │ │ │ Scegliamo il programma │ │ │ │ │ │ │ │ │ │ Probabilmente avete già scelto il pacchetto da creare. La prima cosa da fare è controllare se il pacchetto è già presente negli │ │ │ │ │ archivi della distribuzione, utilizzando i seguenti strumenti: │ │ │ │ │ • il comando aptitude │ │ │ │ │ • la pagina web Pacchetti Debian (http://www.debian.org/distrib/packages) │ │ │ │ │ @@ -687,15 +687,15 @@ │ │ │ │ │ contattare il maintainer. Altrimenti —si potrebbe trovare un altro programma interessante che è non manutenuto. │ │ │ │ │ • Il programma deve avere una licenza. │ │ │ │ │ 3Per maggiori informazioni, consulta la Guida di riferimento per lo sviluppatore Debian 5.9.5. ”Adottare un pacchetto” (http://www.debian.org/doc/develmanuals#devref) . │ │ │ │ │ ⁴Detto questo, ovviamente ci sarà sempre qualche nuovo programma che vale la pena pacchettizzare. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -8 / 60 │ │ │ │ │ +8 / 61 │ │ │ │ │ │ │ │ │ │ – I programmi nella sezione main, devono essere completamente compatibili con le Linee Guida per il Software Libero │ │ │ │ │ Debian (DFSG, Debian Free Software Guidelines) (vedere DSFG (http://www.debian.org/social_contract#guidelines) ) │ │ │ │ │ e non devono richiede nessun pacchetto che non sia presente nella sezione main, per la compilazione o l’esecuzione. │ │ │ │ │ Questo è il caso preferito. │ │ │ │ │ – I programmi nella sezione contrib, devono essere conformi alle DFSG, ma potrebbero richiedere, per la compilazione o │ │ │ │ │ l’esecuzione, un pacchetto che non è presente nella sezione main. │ │ │ │ │ @@ -733,15 +733,15 @@ │ │ │ │ │ Creare pacchetti complessi non è troppo difficile, ma richiede un po’ più di conoscenza. Si dovrebbe cercare una guida specifica │ │ │ │ │ per ogni caratteristica complessa. Ad esempio, alcuni linguaggi hanno dei loro documenti con le loro linee guida: │ │ │ │ │ • Perl policy (http://www.debian.org/doc/packaging-manuals/perl-policy/) │ │ │ │ │ • Python policy (http://www.debian.org/doc/packaging-manuals/python-policy/) │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -9 / 60 │ │ │ │ │ +9 / 61 │ │ │ │ │ │ │ │ │ │ • Java policy (http://www.debian.org/doc/packaging-manuals/java-policy/) │ │ │ │ │ C’è un altro vecchio detto latino che dice: fabricando fit faber (la pratica rende perfetti). Si tratta di una pratica vivamente │ │ │ │ │ consigliata, sperimentate tutte le fasi di pacchettizzazione Debian con un pacchetto semplice durante la lettura di questo tutorial. │ │ │ │ │ Un archivio compresso banale come hello-sh-1.0.tar.gz creato come segue, può offrire un buon punto di partenza:⁵ │ │ │ │ │ $ mkdir -p hello-sh/hello-sh-1.0; cd hello-sh/hello-sh-1.0 │ │ │ │ │ $ cat > hello <>~/.bashrc < │ │ │ │ │ 4 Source: http://sourceforge.net/projects/gentoo/files/ │ │ │ │ │ @@ -1525,15 +1525,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -- Josip Rodin │ │ │ │ │ │ │ │ │ │ Mon, 22 Mar 2010 00:37:31 +0100 │ │ │ │ │ │ │ │ │ │ - 25 / 60 │ │ │ │ │ + 25 / 61 │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ (Sono stati aggiunti i numeri di riga.) │ │ │ │ │ La riga 1 indica il nome del pacchetto, la versione, la distribuzione e l’urgenza. Il nome deve corrispondere al nome del pacchetto │ │ │ │ │ sorgente, mentre la distribuzione dovrebbe essere unstable, e l’urgenza dovrebbe essere impostata come media, a meno chè │ │ │ │ │ non ci sia un motivo valido per impostarlo diversamente. │ │ │ │ │ @@ -1591,15 +1591,15 @@ │ │ │ │ │ 11Si può imparare come scrivere il Makefile dalla Guida di riferimento Debian, 12.2. ”Make” (http://www.debian.org/doc/manuals/debian-reference/ch12#_make) . La documentazione completa è disponibile su http://www.gnu.org/software/make/manual/html_node/index.html o come pacchetto make-doc │ │ │ │ │ nella sezione non-free del repository. │ │ │ │ │ 12Il manuale delle policy Debian, 4.9 ”Main building script: debian/rules” (http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules) descrive │ │ │ │ │ i dettagli. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -26 / 60 │ │ │ │ │ +26 / 61 │ │ │ │ │ │ │ │ │ │ • target build: costruisce tutti i sorgenti per ottenere programmi compilati e documenti formattati nella struttura delle directory │ │ │ │ │ del pacchetto. (richiesto) │ │ │ │ │ • target build-arch: costruisce i sorgenti per ottenere programmi compilati, dipendenti dall’architettura, nella radice dei │ │ │ │ │ sorgenti. (richiesto) │ │ │ │ │ • target build-indep: costruisce i sorgenti per ottenere documenti formattati indipendenti dall’architettura nella radice dei │ │ │ │ │ sorgenti. (richiesto) │ │ │ │ │ @@ -1649,15 +1649,15 @@ │ │ │ │ │ debhelper e per essere trasparente, ovvero non nascondere nulla all’utente. │ │ │ │ │ 13Questo obiettivo è utilizzato da dpkg-buildpackage come in Sezione 6.1. │ │ │ │ │ 1⁴Questo target è usato da dpkg-buildpackage -B come descritto in Sezione 6.2. │ │ │ │ │ 1⁵Questo target è utilizzato da dpkg-buildpackage -A. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -27 / 60 │ │ │ │ │ +27 / 61 │ │ │ │ │ │ │ │ │ │ Tutto il lavoro è svolto nelle righe 20 e 21, grazie ad una regola implicita dichiarata nel modello. Il simbolo della percentuale │ │ │ │ │ significa che ”ogni target” esegue una chiamata ad un singolo programma, dh con il nome del target stesso. 1⁶ Il comando dh è │ │ │ │ │ uno script wrapper, che esegue una sequenza appropriata di programmi dh_* in base all’argomento passato. 1⁷ │ │ │ │ │ • debian/rules clean esegue dh clean; che a sua volta esegue i seguenti: │ │ │ │ │ dh_testdir │ │ │ │ │ dh_auto_clean │ │ │ │ │ @@ -1711,15 +1711,15 @@ │ │ │ │ │ 1⁷You can verify the actual sequences of dh_* programs invoked for a given target without really running them by invoking dh target --no-act │ │ │ │ │ or debian/rules -- ’target --no-act’. │ │ │ │ │ 1⁸Il seguente esempio assume che il file debian/compat abbia un valore uguale o superiore a 9, per evitare l’esecuzione automatica di qualsiasi comando │ │ │ │ │ python di supporto. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -28 / 60 │ │ │ │ │ +28 / 61 │ │ │ │ │ │ │ │ │ │ dh_fixperms │ │ │ │ │ dh_strip │ │ │ │ │ dh_makeshlibs │ │ │ │ │ dh_shlibdeps │ │ │ │ │ dh_installdeb │ │ │ │ │ dh_gencontrol │ │ │ │ │ @@ -1764,15 +1764,15 @@ │ │ │ │ │ 21Attualmente il programma esegue il primo target presente nel Makefile, tra distclean, realclean o clean. │ │ │ │ │ 22Attualmente il programma esegue il primo target test o check disponibile nel Makefile. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 4.4.3 │ │ │ │ │ │ │ │ │ │ -29 / 60 │ │ │ │ │ +29 / 61 │ │ │ │ │ │ │ │ │ │ Personalizzazione del file rules │ │ │ │ │ │ │ │ │ │ Verrà qui spiegata la personalizzazione del file rules, creato con il nuovo comando dh. │ │ │ │ │ Il comando dh $@ può essere personalizzato come segue: 23 │ │ │ │ │ • Aggiunge il supporto per il comando dh_python2. (La scelta migliore per Python) 2⁴ │ │ │ │ │ – Include il pacchetto python in Build-Depends. │ │ │ │ │ @@ -1808,15 +1808,15 @@ │ │ │ │ │ • Aggiunge il supporto per i comandi dh_autoreconf e dh_autoreconf_clean. │ │ │ │ │ 23Se il pacchetto installa il file /usr/share/perl5/Debian/Debhelper/Sequence/nome_personalizzato.pm, si deve attivare la │ │ │ │ │ funzione di personalizzazione tramite il comando dh $@ --with nome-personalizzato. │ │ │ │ │ 2⁴L’uso del comando dh_python2 è preferito rispetto all’uso di dei comandi dh_pysupport o dh_pycentral. Non si deve utilizzare il comando dh_python. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -30 / 60 │ │ │ │ │ +30 / 61 │ │ │ │ │ │ │ │ │ │ – Include il pacchetto dh-autoreconf in Build-Depends. │ │ │ │ │ – Utilizza in alternativa dh $@ --with autoreconf. │ │ │ │ │ – Aggiorna i file del sistema di compilazione GNU e ripristina i file dopo la sua compilazione. │ │ │ │ │ • Aggiunge il supporto per il comando dh_girepository. │ │ │ │ │ – Include il pacchetto gobject-introspection in Build-Depends. │ │ │ │ │ – Utilizza in alternativa dh $@ --with gir. │ │ │ │ │ @@ -1859,15 +1859,15 @@ │ │ │ │ │ Se il Makefile di un sorgente per il pacchetto gentoo contiene il target test che non vuole essere eseguito nel processo di │ │ │ │ │ costruzione del pacchetto Debian, si può utilizzare l’obiettivo override_dh_auto_test per saltarlo. │ │ │ │ │ 2⁵Sotto lenny, se si vuole cambiare il comportamento di uno script dh_* basta cercare la riga relativa nel file rules e modificarla. │ │ │ │ │ 2⁶dh_auto_build senza alcun argomento eseguirà il primo target del file Makefile. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -31 / 60 │ │ │ │ │ +31 / 61 │ │ │ │ │ │ │ │ │ │ override_dh_auto_test: │ │ │ │ │ │ │ │ │ │ Se il programma originale gentoo contiene un inusuale file di changelog chiamato FIXES, dh_installchangelogs non installerà questo file in modo predefinito. Il comando dh_installchangelogs richiede che venga fornito il parametro FIXES per │ │ │ │ │ installarlo.2⁷ │ │ │ │ │ override_dh_installchangelogs: │ │ │ │ │ dh_installchangelogs FIXES │ │ │ │ │ @@ -1876,15 +1876,15 @@ │ │ │ │ │ completamente indipendenti. │ │ │ │ │ │ │ │ │ │ 2⁷I file debian/changelog e debian/NEWS vengono sempre installati automaticamente. Il changelog originale viene trovato convertendo i nomi dei │ │ │ │ │ file in minuscolo e cercando la corrispondenza con changelog, changes, changelog.txt, e changes.txt. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -32 / 60 │ │ │ │ │ +32 / 61 │ │ │ │ │ │ │ │ │ │ Capitolo 5 │ │ │ │ │ │ │ │ │ │ Altri file nella directory debian │ │ │ │ │ The dh_make command had major updates since this old document was written. So some parts of this document aren’t applicable │ │ │ │ │ any more. │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ @@ -1916,15 +1916,15 @@ │ │ │ │ │ README.Debian │ │ │ │ │ │ │ │ │ │ Ogni ulteriore dettaglio o discrepanza tra il pacchetto originale e la versione Debian dovrebbe essere documentato qui. │ │ │ │ │ dh_make ne crea uno predefinito; ecco come appare: │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -33 / 60 │ │ │ │ │ +33 / 61 │ │ │ │ │ │ │ │ │ │ gentoo for Debian │ │ │ │ │ ---------------- │ │ │ │ │ -- Josip Rodin , Wed, 11 Nov 1998 21:02:14 +0100 │ │ │ │ │ │ │ │ │ │ Qui dovrebbero inserire delle brevi informazioni specifiche di Debian. Si veda dh_installdocs(1). │ │ │ │ │ │ │ │ │ │ @@ -1967,15 +1967,15 @@ │ │ │ │ │ settimanale, mensile o che vengano eseguite alternativamente in qualsiasi momento si voglia. I file saranno: │ │ │ │ │ • pacchettocron.hourly - Installato come /etc/cron.hourly/pacchetto: viene eseguito una volta ogni ora. │ │ │ │ │ 1Vedere dpkg(1) e il manuale delle policy Debian, ”D.2.5 Conffiles” (http://www.debian.org/doc/debian-policy/ap-pkg-controlfields.html#s-pkg-f-Conffiles) │ │ │ │ │ . │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -34 / 60 │ │ │ │ │ +34 / 61 │ │ │ │ │ │ │ │ │ │ • pacchettocron.daily - Installato as /etc/cron.daily/pacchetto: viene eseguito una volta al giorno. │ │ │ │ │ • pacchettocron.weekly - Installato come /etc/cron.weekly/pacchetto: viene eseguito una volta a settimana. │ │ │ │ │ • pacchettocron.monthly - Installato come /etc/cron.monthly/pacchetto: viene eseguito una volta al mese. │ │ │ │ │ • pacchettocron.d - Installato come /etc/cron.d/pacchetto: per qualsiasi altro periodo. │ │ │ │ │ Molti di questi file sono script di shell, fatta eccezione di pacchetto.cron.d che segue il formato di crontab(5). │ │ │ │ │ Nessun esplicito file cron.* è necessario per impostare la rotazione dei log; a questo proposito si veda dh_installlogrotate(1) e │ │ │ │ │ @@ -2021,15 +2021,15 @@ │ │ │ │ │ Questo file specifica il nome dei file di documentazione che si possono avere dh_installdocs(1) li installa nella directory temporanea automaticamente. │ │ │ │ │ Normalmente, questo file includerà tutti i file esistenti nella directory dei sorgenti di più alto livello che sono chiamati BUGS, │ │ │ │ │ README*, TODO ecc. │ │ │ │ │ Per il pacchetto gentoo, sono stati inclusi anche altri files: │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -35 / 60 │ │ │ │ │ +35 / 61 │ │ │ │ │ │ │ │ │ │ BUGS │ │ │ │ │ CONFIG-CHANGES │ │ │ │ │ CREDITS │ │ │ │ │ NEWS │ │ │ │ │ README │ │ │ │ │ README.gtkrc │ │ │ │ │ @@ -2080,15 +2080,15 @@ │ │ │ │ │ Nel file install compare una riga per ogni file installato, contenente il nome del file (relativo alla directory in cui avviene │ │ │ │ │ la costruzione del pacchetto), uno spazio e la directory di installazione (relativa alla posizione del file install). Un esempio │ │ │ │ │ dell’utilizzo è quando un file binario src/bar non è stato installato, in questo caso il file install dovrebbe essere: │ │ │ │ │ 2Questo comando rimpiazza il comando dh_movefiles(1), ormai deprecato, che veniva configurato dal file files. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -36 / 60 │ │ │ │ │ +36 / 61 │ │ │ │ │ │ │ │ │ │ src/bar usr/bin │ │ │ │ │ │ │ │ │ │ Questo significa che quando il pacchetto verrà installato, ci sarà un file eseguibile /usr/bin/bar. │ │ │ │ │ Alternativamente, questo file install può presentare il nome del file senza la directory di installazione solo quando il percorso │ │ │ │ │ relativo della directory non cambia. Questo formato è solitamente utilizzato per grandi pacchetti che organizzano i risultati della │ │ │ │ │ costruzione in pacchetti multipli utilizzando pacchetto-1.install, pacchetto-2.install, ecc. │ │ │ │ │ @@ -2136,15 +2136,15 @@ │ │ │ │ │ │ │ │ │ │ Le pagine del manuale sono solitamente scritte per nroff(1). Anche il file modello manpage.1.ex è scritto per nroff. Si veda │ │ │ │ │ la pagina di manuale man(7) per una breve descrizione su come modificare un file del genere. │ │ │ │ │ L’ultimo file delle pagine del manuale dovrebbe includere il nome del programma che si sta documentando, quindi verrà rinominato da manpage a gentoo. Il nome del file include anche .1 come primo suffisso, il che sta ad indicare che la sezione della │ │ │ │ │ pagina del manuale è relativa ad un comando dell’utente. Si verifichi che questa sezione sia quella corretta. Qui di seguito viene │ │ │ │ │ presentata una breve lista delle sezioni delle pagine del manuale: │ │ │ │ │ │ │ │ │ │ - 37 / 60 │ │ │ │ │ + 37 / 61 │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ Sezione │ │ │ │ │ 1 │ │ │ │ │ 2 │ │ │ │ │ 3 │ │ │ │ │ @@ -2219,15 +2219,15 @@ │ │ │ │ │ 3Si noti che i segnaposto di help2man contengono la documentazione più dettagliata disponibile nel sistema info. Se al comando manca la pagina info si │ │ │ │ │ dovrebbe modificare manualmente la pagina man generata dal comando help2man. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 5.16 │ │ │ │ │ │ │ │ │ │ -38 / 60 │ │ │ │ │ +38 / 61 │ │ │ │ │ │ │ │ │ │ pacchetto.manpages │ │ │ │ │ │ │ │ │ │ Se il pacchetto creato presenta delle pagine del manuale, queste andrebbero installate utilizzando il comando dh_installman(1) │ │ │ │ │ ed elencandole nei file pacchetto.manpages. │ │ │ │ │ Per installare il file doc/gentoo.1 come pagine di manuale per il pacchetto gentoo, si deve creare il file gentoo.manpages │ │ │ │ │ contenente: │ │ │ │ │ @@ -2278,15 +2278,15 @@ │ │ │ │ │ ⁴Nonostante l’utilizzo dell’espressione bash {pre,post}{inst,rm} per indicare questi file, è necessario utilizzare la sintassi POSIX per questi script │ │ │ │ │ di manutenzione per mantenere la compatibilità con la shell di sistema dash. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 5.21 │ │ │ │ │ │ │ │ │ │ -39 / 60 │ │ │ │ │ +39 / 61 │ │ │ │ │ │ │ │ │ │ watch │ │ │ │ │ │ │ │ │ │ Il formato del file watch è documentato nella pagina di manuale uscan(1). Il file watch configura il programma uscan (nel │ │ │ │ │ pacchetto devscripts) per controllare il sito da cui è stato scaricato il sorgente originale. Questo file viene utilizzato pure dal │ │ │ │ │ servizio Debian Package Tracker (https://tracker.debian.org/) . │ │ │ │ │ Ecco il suo contenuto: │ │ │ │ │ @@ -2334,15 +2334,15 @@ │ │ │ │ │ pop -a, prima di caricarlo nel ramo master. Si può automatizzare l’operazione, aggiungendo il file debian/source/ │ │ │ │ │ ⁵Si veda DebSrc3.0 (http://wiki.debian.org/Projects/DebSrc3.0) per una serie di informazioni generali riguardanti il passaggio al nuovo formato 3.0 │ │ │ │ │ (quilt) ed ai formati sorgente 3.0 (native). │ │ │ │ │ ⁶Al momento questo nuovo formato supporta anche molteplici archivi e più metodi di compressione. Questi però esulano dall’obiettivo di questo documento. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -40 / 60 │ │ │ │ │ +40 / 61 │ │ │ │ │ │ │ │ │ │ local-options con contenuto unapply-patches. Questo file non è incluso nel sorgente del pacchetto generato, e cambia │ │ │ │ │ solamente la modalità di costruzione in locale. Questo file può contenere anche abort-on-upstream-changes, (si veda │ │ │ │ │ dpkg-source(1)). │ │ │ │ │ unapply-patches │ │ │ │ │ abort-on-upstream-changes │ │ │ │ │ │ │ │ │ │ @@ -2390,15 +2390,15 @@ │ │ │ │ │ ⁷Diversi metodi di mantenimento delle patch set sono stati proposti e sono utilizzati per i pacchetti Debian. Il sistema quilt è il sistema di manutenzione │ │ │ │ │ consigliato ed utilizzato. Altri includono dpatch, dbs e cdbs. Molte di questi tengono le patch come file debian/patches/*. │ │ │ │ │ ⁸Se si sta chiedendo ad uno sponsor di caricare il proprio pacchetto, questo tipo di chiara separazione e documentazione dei cambiamenti è molto importante │ │ │ │ │ per accelerare la revisione del pacchetto da parte dello sponsor. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -41 / 60 │ │ │ │ │ +41 / 61 │ │ │ │ │ │ │ │ │ │ Capitolo 6 │ │ │ │ │ │ │ │ │ │ Costruzione del pacchetto │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Si prega di utilizzare il nuovo tutorial come documento │ │ │ │ │ primario. │ │ │ │ │ @@ -2428,15 +2428,15 @@ │ │ │ │ │ la creazione dei pacchetti: │ │ │ │ │ 1Questa chiave GPG deve essere firmata da uno sviluppatore Debian per collegarsi alla rete di fiducia e bisogna essere registrati al portachiavi Debian │ │ │ │ │ (http://keyring.debian.org) . In questo modo i pacchetti caricati potranno essere accettati ed inseriti negli archivi Debian. Vedere Creare una nuova chiave GPG │ │ │ │ │ (http://keyring.debian.org/creating-key.html) e Debian Wiki on Keysigning (http://wiki.debian.org/Keysigning) . │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -42 / 60 │ │ │ │ │ +42 / 61 │ │ │ │ │ │ │ │ │ │ • gentoo_0.9.12.orig.tar.gz │ │ │ │ │ Questo è il codice sorgente originale, semplicemente rinominato in modo da aderire allo standard Debian. Da notare che questo │ │ │ │ │ è stato creato inizialmente con il comando dh_make -f ../gentoo-0.9.12.tar.gz. │ │ │ │ │ • gentoo_0.9.12-1.dsc │ │ │ │ │ Questo è un sommario del contenuto del codice sorgente. Questo file è generato dal file control, ed è usato quando si │ │ │ │ │ decomprime il sorgente con dpkg-source(1). │ │ │ │ │ @@ -2477,15 +2477,15 @@ │ │ │ │ │ • i pacchetti elencati nel campo Build-Depends (vedere Sezione 4.1). │ │ │ │ │ 2È possibile evitare di applicare la patch quilt, nel formato sorgente 3.0 (quilt), aggiungendo il parametro --skip-patches al comando di │ │ │ │ │ estrazione. In alternativa, è possibile eseguire dquilt pop -a dopo le normali operazioni. │ │ │ │ │ 3L’attuale sistema di auto-costruzione è molto più complicato di come è qui documentato. Tali dettagli esulano dallo scopo del documento. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -43 / 60 │ │ │ │ │ +43 / 61 │ │ │ │ │ │ │ │ │ │ Dopo si può eseguire il comando seguente nella directory dei sorgenti: │ │ │ │ │ $ dpkg-buildpackage -B │ │ │ │ │ │ │ │ │ │ Questo comando creerà i pacchetti binari e sorgenti al posto vostro. Eseguirà le seguenti operazioni: │ │ │ │ │ • pulirà l’albero dei sorgenti (debian/rules clean) │ │ │ │ │ • costruirà il programma (debian/rules build) │ │ │ │ │ @@ -2525,15 +2525,15 @@ │ │ │ │ │ ⁴Diversamente dal pacchetto pbuilder, l’ambiente chroot sotto il pacchetto sbuild, usato dal sistema di auto-costruzione, non forza la creazione di un │ │ │ │ │ sistema minimale, e potrebbe lasciare installati molti pacchetti. │ │ │ │ │ ⁵pbuilder è ancora in evoluzione, si dovrebbe controllare l’attuale configurazione consultando la documentazione ufficiale più recente. │ │ │ │ │ ⁶Vedere http://buildd.debian.org/ per maggiori informazioni sull’auto-costruzione dei pacchetti Debian. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -44 / 60 │ │ │ │ │ +44 / 61 │ │ │ │ │ │ │ │ │ │ • impostare il permesso di scrittura per l’utente alla directory /var/cache/pbuilder/result. │ │ │ │ │ • creare una directory, ad es. /var/cache/pbuilder/hooks, con i permessi di scrittura per l’utente per potergli inserire degli │ │ │ │ │ script di hook. │ │ │ │ │ • configurare il file ~/.pbuilderrc o /etc/pbuilderrc in modo che includa le seguenti righe. │ │ │ │ │ AUTO_DEBSIGN=${AUTO_DEBSIGN:-no} │ │ │ │ │ HOOKDIR=/var/cache/pbuilder/hooks │ │ │ │ │ @@ -2586,15 +2586,15 @@ │ │ │ │ │ share/doc/pbuilder/examples. │ │ │ │ │ ⁸Ci sono alcune restrizioni per tali aggiornamenti del pacchetto stable. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 6.5 │ │ │ │ │ │ │ │ │ │ -45 / 60 │ │ │ │ │ +45 / 61 │ │ │ │ │ │ │ │ │ │ Il comando git-buildpackage ed altri simili │ │ │ │ │ │ │ │ │ │ Se l’autore originale utilizza un sistema di controllo di versione (VCS) ⁹ per gestire il proprio codice, si dovrebbe prendere in │ │ │ │ │ considerazione di usarlo. Questo rende molto più semplice la fusione e la raccolta di patch dai sorgenti originali. Ci sono diversi │ │ │ │ │ pacchetti di script adatti alla costruzione di pacchetti Debian per ogni sistema VCS. │ │ │ │ │ • git-buildpackage: una suite per aiutare con i pacchetti Debian nei repository Git. │ │ │ │ │ @@ -2638,15 +2638,15 @@ │ │ │ │ │ 13Le variabili d’ambiente, che sono normalmente impostate con dei valori corretti, non sono utilizzati in questa modalità. Mai creare dei pacchetti, che poi │ │ │ │ │ andranno caricati, utilizzando il metodo veloce. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 6.7 │ │ │ │ │ │ │ │ │ │ -46 / 60 │ │ │ │ │ +46 / 61 │ │ │ │ │ │ │ │ │ │ Struttura gerarchica del comando │ │ │ │ │ │ │ │ │ │ Ecco un breve riassunto di come molti comandi per creare i pacchetti si incastrano nella gerarchia di comando. Ci sono molti │ │ │ │ │ modi per fare la stessa cosa. │ │ │ │ │ • debian/rules = script responsabile della costruzione del pacchetto │ │ │ │ │ • dpkg-buildpackage = il cuore dello strumento di costruzione del pacchetto │ │ │ │ │ @@ -2659,15 +2659,15 @@ │ │ │ │ │ • gbp buildpackage = pbuilder + dpkg-buildpackage + gbp │ │ │ │ │ Sebbene l’uso di comandi di alto livello come gbp buildpackage e pbuilder assicura l’ambiente ideale per la costruzione del │ │ │ │ │ pacchetto, è essenziale comprendere come i comandi di basso livello debian/rules e dpkg-buildpackage vengono richiamati │ │ │ │ │ da loro. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -47 / 60 │ │ │ │ │ +47 / 61 │ │ │ │ │ │ │ │ │ │ Capitolo 7 │ │ │ │ │ │ │ │ │ │ Controllare il pacchetto per errori │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Si prega di utilizzare il nuovo tutorial come documento │ │ │ │ │ primario. │ │ │ │ │ @@ -2705,15 +2705,15 @@ │ │ │ │ │ Verifica degli script del manutentore di un pacchetto │ │ │ │ │ │ │ │ │ │ Tutti gli script del manutentore (ad esempio i file, preinst, prerm, postinst, e postrm) sono difficili da scrivere correttamente a meno che non siano stati generati automaticamente dai programmi di debhelper. Si consiglia pertanto di non │ │ │ │ │ utilizzarli se non si ha sufficiente esperienza come manutentore (si veda Sezione 5.18). │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -48 / 60 │ │ │ │ │ +48 / 61 │ │ │ │ │ │ │ │ │ │ Se il pacchetto utilizza questi particolari script del manutentore, ci si assicuri di effettuare delle prove non solo per l’operazione │ │ │ │ │ di install, ma anche per il remove, purge, e l’upgrade. Molti bug degli script del manutentore vengono fuori quando i pacchetti │ │ │ │ │ sono rimossi o viene applicato il purge. Si utilizzi il comando dpkg nel seguente modo per testarli: │ │ │ │ │ $ sudo dpkg -r gentoo │ │ │ │ │ $ sudo dpkg -P gentoo │ │ │ │ │ $ sudo dpkg -i gentoo_version-revision_i386.deb │ │ │ │ │ @@ -2756,15 +2756,15 @@ │ │ │ │ │ 1Non c’è bisogno di fornire l’opzione lintian -i -I --show-overrides se si è personalizzato il file /etc/devscripts.conf o il file ~/ │ │ │ │ │ .devscripts come descritto in Sezione 6.3. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ 7.5 │ │ │ │ │ │ │ │ │ │ -49 / 60 │ │ │ │ │ +49 / 61 │ │ │ │ │ │ │ │ │ │ Il comando debc │ │ │ │ │ │ │ │ │ │ Si possono elencare i file nel pacchetto binario Debian con il comando debc(1). │ │ │ │ │ $ debc package.changes │ │ │ │ │ │ │ │ │ │ 7.6 │ │ │ │ │ @@ -2800,15 +2800,15 @@ │ │ │ │ │ permette di navigare non solo il contenuto dei pacchetti in formato *.deb ma anche degli *.udeb, *.debian.tar.gz, │ │ │ │ │ *.diff.gz, e dei file *.orig.tar.gz. │ │ │ │ │ Si faccia attenzione ad ulteriori file non necessari o vuoti, sia nel pacchetto binario che in quello sorgente. Spesso non vengono │ │ │ │ │ ripuliti correttamente; si aggiusti il file rules per riparare a questo problema. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -50 / 60 │ │ │ │ │ +50 / 61 │ │ │ │ │ │ │ │ │ │ Capitolo 8 │ │ │ │ │ │ │ │ │ │ Aggiornamento del pacchetto │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Si prega di utilizzare il nuovo tutorial come documento │ │ │ │ │ primario. │ │ │ │ │ @@ -2839,15 +2839,15 @@ │ │ │ │ │ Debian nel momento stesso in cui il pacchetto viene accettato. │ │ │ │ │ • Si ripetano questi passaggi per risolvere ulteriori problemi e si ricordi nel frattempo di aggiornare il file Debian di changelog │ │ │ │ │ con dch a seconda della necessità. │ │ │ │ │ 1Per impostare la data nel formato corretto, si usi LANG=C date -R. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -51 / 60 │ │ │ │ │ +51 / 61 │ │ │ │ │ │ │ │ │ │ • Si ripetano i passi fatti in Sezione 6.1, Capitolo 7. │ │ │ │ │ • Quando si è soddisfatti, si può cambiare il valore del campo distribuzione nel file changelog da UNRELEASED a unstable │ │ │ │ │ (o anche experimental).2 │ │ │ │ │ • Caricare i pacchetti come Capitolo 9. La differenza è che questa volta, l’archivio del sorgente originale non sarà incluso, dal │ │ │ │ │ momento che non è stato modificato e già esiste nell’archivio Debian. │ │ │ │ │ Un caso complicato può verificarsi quando si crea un pacchetto locale per sperimentare la pacchettizzazione prima di caricare │ │ │ │ │ @@ -2889,15 +2889,15 @@ │ │ │ │ │ • Se una patch applicata ai sorgenti è stata integrata nei sorgenti originali, │ │ │ │ │ 2Se si utilizza il comando dch -r per effettuare quest’ultima modifica, ci si assicuri che l’editor salvi il file con il nome changelog. │ │ │ │ │ 3Se un pacchetto foo è stato pacchettizzato nel vecchio formato 1.0, si deve invece eseguire zcat /path/to/foo_oldversion.diff.gz|patch │ │ │ │ │ -p1 nella nuova directory sorgente scompattata. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -52 / 60 │ │ │ │ │ +52 / 61 │ │ │ │ │ │ │ │ │ │ – si rimuova con dquilt delete. │ │ │ │ │ • Se una patch applicata alla sorgente è andata in conflitto con i nuovi cambiamenti nei sorgenti originali, │ │ │ │ │ – si esegua dquilt push -f per applicare le vecchie patch forzando gli scarti nel file baz.rej. │ │ │ │ │ – Modificare manualmente il file baz per applicare gli effetti desiderati presenti nel file baz.rej. │ │ │ │ │ – dquilt refresh per aggiornare la patch. │ │ │ │ │ • Ritornare alla procedura while dquilt push; do dquilt refresh; done. │ │ │ │ │ @@ -2943,15 +2943,15 @@ │ │ │ │ │ ⁴Se il comando uscan scarica il sorgente aggiornato ma non esegue il comando uupdate, si può modificare il file debian/watch inserendo debian │ │ │ │ │ uupdate alla fine dell’URL. │ │ │ │ │ ⁵Se il proprio sponsor o altri manutentori non ritengono sia necessario aggiornare lo stile del pacchetto, allora non vale la pena perderci molto tempo. Ci │ │ │ │ │ sono cose più importanti da fare. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -53 / 60 │ │ │ │ │ +53 / 61 │ │ │ │ │ │ │ │ │ │ • Se si ha un pacchetto sorgente nella versione 1.0 senza il file foo.diff.gz, si può aggiornare al nuovo formato sorgente │ │ │ │ │ 3.0 (native) creando il file debian/source/format contenente 3.0 (native). Gli altri file debian/* possono │ │ │ │ │ essere semplicemente copiati. │ │ │ │ │ • Se si ha un pacchetto sorgente nella versione 1.0 con il file foo.diff.gz, si può aggiornare al nuovo formato sorgente │ │ │ │ │ 3.0 (quilt) creando il file debian/source/format contenente 3.0 (quilt). Gli altri file debian/* possono essere semplicemente copiati. Se necessario, si importi il file big.diff generato dal comando filterdiff -z -x │ │ │ │ │ ’*/debian/*’ foo.diff.gz > big.diff nel sistema quilt.⁶ │ │ │ │ │ @@ -2992,15 +2992,15 @@ │ │ │ │ │ • Si controlli il contenuto del file .changes per essere sicuri che si stia caricando per la distribuzione corretta, le risoluzioni │ │ │ │ │ ai bug vengono listate nel campo Closes, i campi Maintainer e Changed-By corrispondono, il file è firmato con GPG, │ │ │ │ │ ecc. │ │ │ │ │ ⁶È possibile dividere il file big.diff in tante piccole patch incrementali utilizzando il comando splitdiff. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -54 / 60 │ │ │ │ │ +54 / 61 │ │ │ │ │ │ │ │ │ │ Capitolo 9 │ │ │ │ │ │ │ │ │ │ Caricamento del pacchetto │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Si prega di utilizzare il nuovo tutorial come documento │ │ │ │ │ primario. │ │ │ │ │ @@ -3035,15 +3035,15 @@ │ │ │ │ │ 3Il pacchetto dput sembra avere più funzionalità e sta divenendo più popolare del pacchetto dupload. Questo utilizza il file /etc/dput per la sua │ │ │ │ │ configurazione globale ed il file ~/.dput.cf per quella dei singoli utenti. Inoltre supporta nativamente anche i servizi relativi ad Ubuntu. │ │ │ │ │ ⁴Per maggiori informazioni, si consulti la Guida di riferimento per lo sviluppatore 5.6. ”Uploading a package” (http://www.debian.org/doc/develmanuals#devref) . │ │ │ │ │ ⁵Si veda ftp://ftp.upload.debian.org/pub/UploadQueue/README. Alternativamente, si può utilizzare il comando dcut del pacchetto dput. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -55 / 60 │ │ │ │ │ +55 / 61 │ │ │ │ │ │ │ │ │ │ Commands: │ │ │ │ │ rm hello_1.0-1_i386.deb │ │ │ │ │ mv hello_1.0-1.dsx hello_1.0-1.dsc │ │ │ │ │ -----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.10 (GNU/Linux) │ │ │ │ │ [...] │ │ │ │ │ -----END PGP SIGNATURE----- │ │ │ │ │ @@ -3079,107 +3079,110 @@ │ │ │ │ │ $ debuild -v1.2 │ │ │ │ │ │ │ │ │ │ Per il comando pdebuild: │ │ │ │ │ $ pdebuild --debbuildopts ”-v1.2” │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -56 / 60 │ │ │ │ │ +56 / 61 │ │ │ │ │ │ │ │ │ │ Appendice A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +Pacchettizzazione avanzata │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Si prega di utilizzare il nuovo tutorial come documento │ │ │ │ │ primario. │ │ │ │ │ -Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ -to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +Sono qui riportati alcuni suggerimenti e riferimenti sulle cose più comuni riguardanti la pacchettizzazione avanzata. Si consiglia │ │ │ │ │ +vivamente di leggere tutti i riferimenti qui riportati. │ │ │ │ │ +Può essere necessario modificare manualmente il file del template del pacchetto generato dal comando dh_make per affrontare │ │ │ │ │ +gli argomenti trattati in questo capitolo. Il nuovo comando debmake potrebbe trattare questi temi in modo migliore. │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +Librerie condivise │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ -• Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ -• Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ -• Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -• Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -• Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -• Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -• Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ -• Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ -to them from the linked executables. │ │ │ │ │ -• The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -• The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -• The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -• libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -• The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ +Prima di pacchettizzare una libreria condivisa, si dovrebbero leggere attentamente i seguenti riferimenti principali: │ │ │ │ │ +• Manuale delle policy di Debian, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ +• Manuale delle policy di Debian, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#sfhs) │ │ │ │ │ +• Manuale delle policy di Debian, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ +Di seguito alcuni semplici suggerimenti per iniziare: │ │ │ │ │ +• Le librerie condivise sono file oggetto ELF che contengono del codice compilato. │ │ │ │ │ +• Le librerie condivise sono distribuite come file *.so. (Né come file *.a né come file *.la) │ │ │ │ │ +• Le librerie condivise sono utilizzate principalmente per condividere codice tra più eseguibili, utilizzando il sistema ld. │ │ │ │ │ +• Le librerie condivise sono a volte utilizzate per fornire plugin a più di un file eseguibile con il sistema dlopen. │ │ │ │ │ +• Le librerie condivise esportano i symbols che rappresentano gli oggetti compilati, come le variabili, le funzioni e le classi; e │ │ │ │ │ +consentono l’accesso ad essi dagli eseguibili collegati. │ │ │ │ │ +• Il SONAME di una libreria condivisa libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ +• Il SONAME di una libreria condivisa di solito corrisponde al nome del file della libreria (ma non sempre). │ │ │ │ │ +• Il SONAME delle librerie condivise collegate a /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ +1In alternativa: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +2In alternativa: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -57 / 60 │ │ │ │ │ - │ │ │ │ │ -• libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ -• libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ -• Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ -• Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -• Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +57 / 61 │ │ │ │ │ + │ │ │ │ │ +• libfoo1: il pacchetto libreria per la libreria condivisa libfoo.so.1 con la versione SONAME ABI 1.3 │ │ │ │ │ +• Gli script dei maintainer riguardanti i pacchetti libreria devono richiamare ldconfig in circostanze specifiche per creare i │ │ │ │ │ +necessari collegamenti simbolici per SONAME.⁴ │ │ │ │ │ +• libfoo1-dbg: i pacchetti di simboli di debugging che contengono i simboli di debugging per il pacchetto della libreria │ │ │ │ │ +condivisa libfoo1. │ │ │ │ │ +• libfoo-dev: il pacchetto di sviluppo che contiene i file header etc, per la libreria condivisa libfoo.so.1.⁵ │ │ │ │ │ +• Un pacchetto Debian, di norma, non deve contenere file di archivi Libtool *.la.⁶ │ │ │ │ │ +• Un pacchetto Debian, di norma, non deve usare RPATH.⁷ │ │ │ │ │ +• Anche se un po’ datato, ed è solo un riferimento secondario, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) può ancora essere utile. │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +Gestire debian/package.symbols │ │ │ │ │ │ │ │ │ │ -When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ -associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ -library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ -• Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ +Quando si pacchettizza una libreria condivisa, si deve creare il file debian/package.symbols per gestire la versione minima │ │ │ │ │ +associata ad ogni simbolo per le modifiche ABI compatibili con le versioni precedenti, utilizzando lo stesso SONAME della │ │ │ │ │ +libreria per lo stesso nome del pacchetto della libreria condivisa.⁸ Si dovrebbero leggere, con attenzione, i seguenti riferimenti: │ │ │ │ │ +• Manuale delle policy di Debian, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#ssharedlibs-symbols) ⁹ │ │ │ │ │ • dh_makeshlibs(1) │ │ │ │ │ • dpkg-gensymbols(1) │ │ │ │ │ • dpkg-shlibdeps(1) │ │ │ │ │ • deb-symbols(5) │ │ │ │ │ -Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ -libfoo1.symbols file: │ │ │ │ │ -• Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -– If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -– If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1.symbols │ │ │ │ │ -in its source package, use it again. │ │ │ │ │ -– If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ -from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ -for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ +Di seguito un esempio di massima, per creare il pacchetto libfoo1 alla versione originale (upstream) 1.3 con il file debian/ │ │ │ │ │ +libfoo1.symbols corretto: │ │ │ │ │ +• Preparare lo scheletro dell’albero del sorgente debianizzato utilizzando il file originale libfoo-1.3.tar.gz. │ │ │ │ │ +– Se è il primo pacchetto per libfoo1, bisogna creare il file vuoto debian/libfoo1.symbols. │ │ │ │ │ +– Se la versione originale (upstream) precedente 1.2 è stata pacchettizzata come libfoo1 con il file debian/libfoo1. │ │ │ │ │ +symbols nei propri sorgenti del pacchetto, lo si utilizzi. │ │ │ │ │ +– Se la versione originale (upstream) precedente 1.2 non è stata pacchettizzata con il file debian/libfoo1.symbols, │ │ │ │ │ +è necessario creare il file symbols per tutti i pacchetti binari disponibili con lo stesso nome del pacchetto della libreria │ │ │ │ │ +condivisa che contiene lo stesso SONAME della libreria, ad esempio, le versioni 1.1-1 e 1.2-1. 10 │ │ │ │ │ +3See Manuale delle policy di Debian, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +⁴See Manuale delle policy di Debian, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ +⁵See Manuale delle policy di Debian, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) e Manuale delle │ │ │ │ │ +policy di Debian, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ +⁶Si veda Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +⁷Si veda Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +⁸Le modifiche ABI incompatibili con le versioni precedenti, normalmente rendono necessario aggiornare il SONAME della libreria e il nome del pacchetto │ │ │ │ │ +della libreria condivisa a quelli nuovi. │ │ │ │ │ +⁹Per le librerie C++ e per gli altri casi in cui il tracciamento dei singoli simboli è troppo difficile, si consulti invece Manuale delle policy di Debian, 8.6.4 │ │ │ │ │ +”The shlibs system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ +10Tutte la versioni precedenti del pacchetto Debian packages sono disponibili su http://snapshot.debian.org/ (http://snapshot.debian.org/) . La revisione Debian │ │ │ │ │ +viene eliminata dalla versione per rendere più facile il backport del pacchetto: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + │ │ │ │ │ + Guida per il nuovo Maintainer │ │ │ │ │ + │ │ │ │ │ +58 / 61 │ │ │ │ │ + │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ -• Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ -were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ -libfoo1a and you should start over again.) │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy │ │ │ │ │ -Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ - │ │ │ │ │ - Guida per il nuovo Maintainer │ │ │ │ │ - │ │ │ │ │ -58 / 60 │ │ │ │ │ - │ │ │ │ │ +• È possibile provare a costruire l’albero dei sorgenti utilizzando dei programmi come debuild e pdebuild. (Se questo non │ │ │ │ │ +riesce a causa della mancanza di simboli, ecc, ci sono stati dei cambiamenti ABI incompatibili con le versioni precedenti, che │ │ │ │ │ +richiedono di cambiare il nome del pacchetto della libreria condivisa a qualcosa di simile libfoo1a e si dovrebbe ricominciare │ │ │ │ │ +di nuovo da capo.) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx │ │ │ │ │ @@ -3190,179 +3193,192 @@ │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -• If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ -binary package of the shared library. 11 │ │ │ │ │ +• Se si vede il diff stampato da dpkg-gensymbols qui sopra, bisogna estrarre i file symbols aggiornati correttamente dal │ │ │ │ │ +pacchetto binario generato dalla libreria condivisa. 11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -• Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +• Costruire la release dei pacchetti con programmi come debuild e pdebuild. │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ +In aggiunta agli esempi sopra riportati, è necessario controllare ulteriormente la compatibilità ABI e cambiare le versioni di │ │ │ │ │ +qualche simbolo manualmente come richiesto. 12 │ │ │ │ │ +Anche se è solo un riferimento secondario„ Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) e i suoi │ │ │ │ │ +collegamenti possono essere utili. │ │ │ │ │ │ │ │ │ │ A.3 │ │ │ │ │ │ │ │ │ │ Multiarch │ │ │ │ │ │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages │ │ │ │ │ -(particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in │ │ │ │ │ -detail: │ │ │ │ │ -• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ - │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +La funzionalità multiarch introdotta in Debian wheezy integra il supporto per l’installazione dei pacchetti binari cross-architettura │ │ │ │ │ +(in particolare i386<->amd64, ma anche altre combinazioni) in dpkg e apt. Si consiglia di leggere attentamente i seguenti │ │ │ │ │ +riferimenti: │ │ │ │ │ +11La revisione Debian viene eliminata dalla versione per rendere più facile il backport del pacchetto: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12Si veda Manuale delle policy di Debian, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibsupdates) . │ │ │ │ │ │ │ │ │ │ - 59 / 60 │ │ │ │ │ + 59 / 61 │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -Old path │ │ │ │ │ +• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ +• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ +Esso utilizza la tripletta come i386-linux-gnu e x86_64-linux-gnu per il percorso d’installazione delle librerie condivise. La tripletta del percorso reale è impostata con il valore dinamico $(DEB_HOST_MULTIARCH) da dpkg-architecture(1) │ │ │ │ │ +per ogni costruzione. Ad esempio, il percorso per installare le librerie multiarch viene modificato come segue.13 │ │ │ │ │ +Vecchio percorso │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +percorso i386 multiarch │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +percorso amd64 multiarch │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -• a library source libfoo-1.tar.gz │ │ │ │ │ -• a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -• a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ -Package │ │ │ │ │ +Qui di seguito alcuni esempi tipici di pacchetti multiarch divisi per scenario: │ │ │ │ │ +• sorgente di libreria libfoo-1.tar.gz │ │ │ │ │ +• sorgente di programma bar-1.tar.gz scritto con un linguaggio compilato │ │ │ │ │ +• sorgente di programma baz-1.tar.gz scritto con un linguaggio interpretato │ │ │ │ │ +Pacchetto │ │ │ │ │ libfoo1 │ │ │ │ │ libfoo1-dbg │ │ │ │ │ libfoo-dev │ │ │ │ │ libfoo-tools │ │ │ │ │ libfoo-doc │ │ │ │ │ bar │ │ │ │ │ bar-doc │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -Architecture: │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -all │ │ │ │ │ +Architettura: │ │ │ │ │ +qualsiasi │ │ │ │ │ +qualsiasi │ │ │ │ │ +qualsiasi │ │ │ │ │ +qualsiasi │ │ │ │ │ +tutti │ │ │ │ │ +qualsiasi │ │ │ │ │ +tutti │ │ │ │ │ +tutti │ │ │ │ │ │ │ │ │ │ Multi-Arch: │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ - │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ +uguale │ │ │ │ │ +uguale │ │ │ │ │ +uguale │ │ │ │ │ +straniero │ │ │ │ │ +straniero │ │ │ │ │ +straniero │ │ │ │ │ +straniero │ │ │ │ │ +straniero │ │ │ │ │ + │ │ │ │ │ +Contenuto del pacchetto │ │ │ │ │ +la libreria condivisa, co-installabile │ │ │ │ │ +i simboli di debug della libreira condivisa, co-installabile │ │ │ │ │ +i file di header, ecc, della libreira condivisa, co-installabile │ │ │ │ │ +il programma di supporto run-time, non co-installabile │ │ │ │ │ +i file di documentazione della libreria condivisa │ │ │ │ │ +i file del programma compilato, non co-installabile │ │ │ │ │ +i file di documentazione del programma │ │ │ │ │ +i file del programma interpretato │ │ │ │ │ │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +Si prega di notare che il pacchetto di sviluppo dovrebbe contenere un link simbolico per la libreria condivisa associata senza un │ │ │ │ │ +numero di versione. Ad es.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +Costruzione del pacchetto della libreria condivisa │ │ │ │ │ │ │ │ │ │ -You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -• Update debian/control. │ │ │ │ │ -– Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -– Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -– Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ -• Set debian/compat to ”10”. │ │ │ │ │ -• Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ -– Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ -to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -– Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ -– If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ -replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -– Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ -– Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ -target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ +Si può costruire il pacchetto Debian delle libreria, abilitando il supporto multiarch utilizzando dh(1) come di seguito: │ │ │ │ │ +• Aggiornare debian/control. │ │ │ │ │ +– Aggiungere Build-Depends: debhelper (>=10) per la sezione del sorgente del pacchetto. │ │ │ │ │ +– Aggiungere Pre-Depends: ${misc:Pre-Depends} per ogni pacchetto binario di una libreria condivisa. │ │ │ │ │ +– Aggiungere Multi-Arch: per ogni sezione del pacchetto binario. │ │ │ │ │ +• Impostare debian/compat a ”10”. │ │ │ │ │ +• Regolare il percorso dal normale /usr/lib/ a quello multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ per tutti gli │ │ │ │ │ +script di pacchettizzazione. │ │ │ │ │ + │ │ │ │ │ +– Invocare DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) nel file debian/ │ │ │ │ │ +rules per impostare la variabile DEB_HOST_MULTIARCH. │ │ │ │ │ +– Sostituire /usr/lib/ con /usr/lib/$(DEB_HOST_MULTIARCH)/ nel file debian/rules. │ │ │ │ │ +13Vecchi percorsi di libreria, per scopi speciali, come /lib32/ and /lib64/ non sono più utilizzati. │ │ │ │ │ │ │ │ │ │ Guida per il nuovo Maintainer │ │ │ │ │ │ │ │ │ │ -60 / 60 │ │ │ │ │ - │ │ │ │ │ +60 / 61 │ │ │ │ │ + │ │ │ │ │ +– Se ./configure viene utilizzato nella parte target di override_dh_auto_configure in debian/rules, ci si │ │ │ │ │ +assicuri di sostituirlo con dh_auto_configure -- . 1⁴ │ │ │ │ │ +– Sostituire tutte le occorrenze di /usr/lib/ con /usr/lib/*/ nei file debian/foo.install. │ │ │ │ │ +– Genera dinamicamente dei file come debian/foo.links da debian/foo.links.in aggiungendo un script al target │ │ │ │ │ +di override_dh_auto_configure in debian/rules. │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ -All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ -must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ +Ci si assicuri di verificare che il pacchetto di libreria condivisa contenga solo i file attesi, e che il pacchetto -dev continui a │ │ │ │ │ +funzionare. │ │ │ │ │ +Tutti i file installati contemporaneamente come pacchetto multiarch con lo stesso percorso del file devono avere esattamente │ │ │ │ │ +lo stesso contenuto. È necessario prestare attenzione alle differenze generate dall’ordine dei byte nei dati e dall’algoritmo di │ │ │ │ │ +compressione. │ │ │ │ │ │ │ │ │ │ A.5 │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ +Pacchetto nativo Debian │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ -You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in │ │ │ │ │ -Sezione 2.1. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -• Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ -– package_version.tar.gz │ │ │ │ │ -– package_version.dsc │ │ │ │ │ -• Build Debian binary packages from the native Debian source package. │ │ │ │ │ -– package_version_arch.deb │ │ │ │ │ -For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ -package by issuing the dh_make command as follows: │ │ │ │ │ +Se il pacchetto è mantenuto solo per Debian o per uso locale, il suo sorgente potrebbe contenere tutti i file in debian/*. In │ │ │ │ │ +questo caso, ci sono 2 modi per pacchettizzarlo. │ │ │ │ │ +È possibile creare l’archivio originale escludendo i file in debian/* e pacchettizandolo come pacchetto Debian non nativo, │ │ │ │ │ +come descritto in Sezione 2.1. Questo è il metodo normale che alcune persone incoraggiano ad utilizzare. │ │ │ │ │ +L’alternativa è utilizzare lo stesso metodo usato dai pacchetti Debian nativi. │ │ │ │ │ +• Creare un pacchetto sorgente nativo di Debian nel formato 3.0 (native) usando un singolo file tar compresso che include │ │ │ │ │ +tutti i file. │ │ │ │ │ +– pacchetto_versione.tar.gz │ │ │ │ │ +– pacchetto_versione.dsc │ │ │ │ │ +• Costruire pacchetti binari Debian dal pacchetto sorgente nativo di Debian. │ │ │ │ │ +– pacchetto_versione_arch.deb │ │ │ │ │ +Per esempio, se si hanno i file sorgenti in ~/mypackage-1.0 senza i file debian/*, si può creare un pacchetto nativo Debian, │ │ │ │ │ +utilizzando il comando dh_make come segue: │ │ │ │ │ $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ -Then the debian directory and its contents are created just like in Sezione 2.8. This does not create a tarball, since this is a │ │ │ │ │ -native Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ +La directory debian e il suo contenuto, sono creati proprio come Sezione 2.8. Questo non crea un archivio poiché si tratta di │ │ │ │ │ +un pacchetto Debian nativo. Questa è l’unica differenza. Il resto delle attività di pacchettizzazione sono praticamente le stesse. │ │ │ │ │ +Dopo l’esecuzione del comando dpkg-buildpackage, si possono vedere i seguenti file nella directory principale: │ │ │ │ │ • mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ +Questo è l’archivio del codice sorgente creato dalla directory mypackage-1.0 dal comando dpkg-source. (Il suffisso non è │ │ │ │ │ orig.tar.gz.) │ │ │ │ │ +1⁴In │ │ │ │ │ +alternativa, │ │ │ │ │ +si │ │ │ │ │ +possono │ │ │ │ │ +aggiungere │ │ │ │ │ +gli │ │ │ │ │ +argomenti │ │ │ │ │ +--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ +e │ │ │ │ │ +--libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) a ./configure. Si noti che --libexecdir indica il percorso predefinito │ │ │ │ │ +d’installazione dei programmi eseguibili gestiti da altri programmi e non dagli utenti. Il percorso predefinito di Autotools è /usr/libexec/ mentre quello di │ │ │ │ │ +Debian è /usr/lib/. │ │ │ │ │ + │ │ │ │ │ + Guida per il nuovo Maintainer │ │ │ │ │ + │ │ │ │ │ +61 / 61 │ │ │ │ │ + │ │ │ │ │ • mypackage_1.0.dsc │ │ │ │ │ -This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +Questo è un sommario del contenuto del codice sorgente, come per i pacchetti non-nativi Debian. (non c’è revisione Debian.) │ │ │ │ │ • mypackage_1.0_i386.deb │ │ │ │ │ -This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +Questo è il pacchetto binario completo, come per i pacchetti non-nativi Debian. (non c’è revisione Debian.) │ │ │ │ │ • mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no Debian │ │ │ │ │ -revision.) │ │ │ │ │ +Questo file descrive tutte le modifiche apportate nella versione attuale del pacchetto, come per i pacchetti Debian non-nativi. │ │ │ │ │ +(non c’è revisione Debian.) │ │ │ ├── ./usr/share/doc/maint-guide-it/maint-guide.it.txt.gz │ │ │ │ ├── maint-guide.it.txt │ │ │ │ │ @@ -139,20 +139,20 @@ │ │ │ │ │ 8.4. Aggiornare lo stile di pacchettizzazione │ │ │ │ │ 8.5. Conversione UTF-8 │ │ │ │ │ 8.6. Note per l'aggiornamento dei pacchetti │ │ │ │ │ 9. Caricamento del pacchetto │ │ │ │ │ 9.1. Caricamento nell'archivio Debian │ │ │ │ │ 9.2. Includere orig.tar.gz per il caricamento │ │ │ │ │ 9.3. Aggiornamenti scartati │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ +A. Pacchettizzazione avanzata │ │ │ │ │ + A.1. Librerie condivise │ │ │ │ │ + A.2. Gestire debian/package.symbols │ │ │ │ │ A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ + A.4. Costruzione del pacchetto della libreria condivisa │ │ │ │ │ + A.5. Pacchetto nativo Debian │ │ │ │ │ │ │ │ │ │ Capitolo 1. Partire nel modo giusto │ │ │ │ │ │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti │ │ │ │ │     aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers. Si prega di utilizzare il nuovo tutorial come │ │ │ │ │ documento primario. │ │ │ │ │ @@ -3067,15 +3067,15 @@ │ │ │ │ │ │ │ │ │ │ 5.19. package.symbols │ │ │ │ │ │ │ │ │ │ Creare il pacchetto di una libreria non è semplice per un │ │ │ │ │ maintainer con poca esperienza e dovrebbe essere evitato. Detto │ │ │ │ │     questo, se il pacchetto in questione ha delle librerie, si │ │ │ │ │ dovrebbero avere dei file debian/package.symbols files. Si veda │ │ │ │ │ - Sezione A.2, «Managing debian/package.symbols». │ │ │ │ │ + Sezione A.2, «Gestire debian/package.symbols». │ │ │ │ │ │ │ │ │ │ 5.20. TODO │ │ │ │ │ │ │ │ │ │     Il comando dh_installdocs(1) installa questo file. │ │ │ │ │ │ │ │ │ │ 5.21. watch │ │ │ │ │ │ │ │ │ │ @@ -4381,143 +4381,150 @@ │ │ │ │ │     ^[85] Per maggiori informazioni, si consulti la Guida di │ │ │ │ │ riferimento per lo sviluppatore 5.6. "Uploading a package". │ │ │ │ │ │ │ │ │ │ ^[86] Si veda ftp://ftp.upload.debian.org/pub/UploadQueue/README. │ │ │ │ │     Alternativamente, si può utilizzare il comando dcut del pacchetto │ │ │ │ │ dput. │ │ │ │ │ │ │ │ │ │ -Appendice A. Advanced packaging │ │ │ │ │ +Appendice A. Pacchettizzazione avanzata │ │ │ │ │ │ │ │ │ │ È disponibile la riscrittura di questo tutorial, con contenuti │ │ │ │ │     aggiornati e con esempi più pratici, denominato Guide for Debian │ │ │ │ │ Maintainers. Si prega di utilizzare il nuovo tutorial come │ │ │ │ │ documento primario. │ │ │ │ │ │ │ │ │ │ - Here are some hints and pointers for advanced packaging topics │ │ │ │ │ -    that you are most likely to deal with. You are strongly advised │ │ │ │ │ - to read all the references suggested here. │ │ │ │ │ + Sono qui riportati alcuni suggerimenti e riferimenti sulle cose │ │ │ │ │ +    più comuni riguardanti la pacchettizzazione avanzata. Si │ │ │ │ │ + consiglia vivamente di leggere tutti i riferimenti qui riportati. │ │ │ │ │ │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ + Può essere necessario modificare manualmente il file del template │ │ │ │ │ +    del pacchetto generato dal comando dh_make per affrontare gli │ │ │ │ │ + argomenti trattati in questo capitolo. Il nuovo comando debmake │ │ │ │ │ + potrebbe trattare questi temi in modo migliore. │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +A.1. Librerie condivise │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +    Prima di pacchettizzare una libreria condivisa, si dovrebbero │ │ │ │ │ + leggere attentamente i seguenti riferimenti principali: │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ + * Manuale delle policy di Debian, 8 "Shared libraries" │ │ │ │ │ │ │ │ │ │ -    * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ +    * Manuale delle policy di Debian, 9.1.1 "File System Structure" │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ + * Manuale delle policy di Debian, 10.2 "Libraries" │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    Di seguito alcuni semplici suggerimenti per iniziare: │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * Le librerie condivise sono file oggetto ELF che contengono │ │ │ │ │ + del codice compilato. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * Le librerie condivise sono distribuite come file *.so. (Né │ │ │ │ │ + come file *.a né come file *.la) │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * Le librerie condivise sono utilizzate principalmente per │ │ │ │ │ + condividere codice tra più eseguibili, utilizzando il sistema │ │ │ │ │ + ld. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * Le librerie condivise sono a volte utilizzate per fornire │ │ │ │ │ + plugin a più di un file eseguibile con il sistema dlopen. │ │ │ │ │ │ │ │ │ │ - * Shared libraries export symbols, which represent compiled │ │ │ │ │ - objects such as variables, functions, and classes; and enable │ │ │ │ │ - access to them from the linked executables. │ │ │ │ │ + * Le librerie condivise esportano i symbols che rappresentano │ │ │ │ │ + gli oggetti compilati, come le variabili, le funzioni e le │ │ │ │ │ + classi; e consentono l'accesso ad essi dagli eseguibili │ │ │ │ │ + collegati. │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ + * Il SONAME di una libreria condivisa libfoo.so.1: objdump -p │ │ │ │ │ + libfoo.so.1 | grep SONAME ^[87] │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ - │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ + * Il SONAME di una libreria condivisa di solito corrisponde al │ │ │ │ │ + nome del file della libreria (ma non sempre). │ │ │ │ │ +    │ │ │ │ │ + * Il SONAME delle librerie condivise collegate a /usr/bin/foo: │ │ │ │ │ objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ + * libfoo1: il pacchetto libreria per la libreria condivisa lib │ │ │ │ │ + foo.so.1 con la versione SONAME ABI 1.^[89] │ │ │ │ │ │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * Gli script dei maintainer riguardanti i pacchetti libreria │ │ │ │ │ + devono richiamare ldconfig in circostanze specifiche per │ │ │ │ │ + creare i necessari collegamenti simbolici per SONAME.^[90] │ │ │ │ │ │ │ │ │ │ - * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ - debugging symbols for the shared library package libfoo1. │ │ │ │ │ + * libfoo1-dbg: i pacchetti di simboli di debugging che │ │ │ │ │ + contengono i simboli di debugging per il pacchetto della │ │ │ │ │ + libreria condivisa libfoo1. │ │ │ │ │ │ │ │ │ │ - * libfoo-dev: the development package that contains the header │ │ │ │ │ - files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ + * libfoo-dev: il pacchetto di sviluppo che contiene i file │ │ │ │ │ + header etc, per la libreria condivisa libfoo.so.1.^[91] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ - in general.^[92] │ │ │ │ │ + * Un pacchetto Debian, di norma, non deve contenere file di │ │ │ │ │ + archivi Libtool *.la.^[92] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ + * Un pacchetto Debian, di norma, non deve usare RPATH.^[93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * Anche se un po' datato, ed è solo un riferimento secondario, │ │ │ │ │ + Debian Library Packaging Guide può ancora essere utile. │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. Gestire debian/package.symbols │ │ │ │ │ │ │ │ │ │ - When you package a shared library, you should create a debian/ │ │ │ │ │ - package.symbols file to manage the minimal version associated │ │ │ │ │ -    with each symbol for backward-compatible ABI changes under the │ │ │ │ │ - same SONAME of the library for the same shared library package │ │ │ │ │ - name.^[94] You should read the following primary references in │ │ │ │ │ - detail: │ │ │ │ │ + Quando si pacchettizza una libreria condivisa, si deve creare il │ │ │ │ │ + file debian/package.symbols per gestire la versione minima │ │ │ │ │ +    associata ad ogni simbolo per le modifiche ABI compatibili con le │ │ │ │ │ + versioni precedenti, utilizzando lo stesso SONAME della libreria │ │ │ │ │ + per lo stesso nome del pacchetto della libreria condivisa.^[94] │ │ │ │ │ + Si dovrebbero leggere, con attenzione, i seguenti riferimenti: │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8.6.3 "The symbols system"^[95] │ │ │ │ │ + * Manuale delle policy di Debian, 8.6.3 "The symbols system"^ │ │ │ │ │ + [95] │ │ │ │ │ │ │ │ │ │ * dh_makeshlibs(1) │ │ │ │ │ - │ │ │ │ │ -    * dpkg-gensymbols(1) │ │ │ │ │ +    │ │ │ │ │ + * dpkg-gensymbols(1) │ │ │ │ │ │ │ │ │ │ * dpkg-shlibdeps(1) │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ - Here is a rough example of how to create the libfoo1 package from │ │ │ │ │ -    the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ - file: │ │ │ │ │ - │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ - │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ - debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ - all available binary packages of the same shared library │ │ │ │ │ - package name containing the same SONAME of the library, for │ │ │ │ │ - example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ + Di seguito un esempio di massima, per creare il pacchetto libfoo1 │ │ │ │ │ +    alla versione originale (upstream) 1.3 con il file debian/ │ │ │ │ │ + libfoo1.symbols corretto: │ │ │ │ │ + │ │ │ │ │ + * Preparare lo scheletro dell'albero del sorgente debianizzato │ │ │ │ │ + utilizzando il file originale libfoo-1.3.tar.gz. │ │ │ │ │ + │ │ │ │ │ + + Se è il primo pacchetto per libfoo1, bisogna creare il file │ │ │ │ │ + vuoto debian/libfoo1.symbols. │ │ │ │ │ + │ │ │ │ │ + + Se la versione originale (upstream) precedente 1.2 è stata │ │ │ │ │ + pacchettizzata come libfoo1 con il file debian/ │ │ │ │ │ + libfoo1.symbols nei propri sorgenti del pacchetto, lo si │ │ │ │ │ + utilizzi. │ │ │ │ │ + │ │ │ │ │ + + Se la versione originale (upstream) precedente 1.2 non è │ │ │ │ │ + stata pacchettizzata con il file debian/libfoo1.symbols, è │ │ │ │ │ + necessario creare il file symbols per tutti i pacchetti │ │ │ │ │ + binari disponibili con lo stesso nome del pacchetto della │ │ │ │ │ + libreria condivisa che contiene lo stesso SONAME della │ │ │ │ │ + libreria, ad esempio, le versioni 1.1-1 e 1.2-1. ^[96] │ │ │ │ │ │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ - * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ - and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ - were some backward-incompatible ABI changes that require you to │ │ │ │ │ - bump the shared library package name to something like libfoo1a │ │ │ │ │ - and you should start over again.) │ │ │ │ │ + * È possibile provare a costruire l'albero dei sorgenti utilizzando │ │ │ │ │ + dei programmi come debuild e pdebuild. (Se questo non riesce a │ │ │ │ │ + causa della mancanza di simboli, ecc, ci sono stati dei │ │ │ │ │ + cambiamenti ABI incompatibili con le versioni precedenti, che │ │ │ │ │ + richiedono di cambiare il nome del pacchetto della libreria │ │ │ │ │ + condivisa a qualcosa di simile libfoo1a e si dovrebbe │ │ │ │ │ + ricominciare di nuovo da capo.) │ │ │ │ │ │ │ │ │ │ - $ cd libfoo-1.3 │ │ │ │ │ -    $ debuild │ │ │ │ │ +    $ cd libfoo-1.3 │ │ │ │ │ + $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ foo_get_name@Base 1.1 │ │ │ │ │ @@ -4525,264 +4532,284 @@ │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - * If you see the diff printed by the dpkg-gensymbols as above, │ │ │ │ │ - extract the proper updated symbols file from the generated binary │ │ │ │ │ - package of the shared library. ^[97] │ │ │ │ │ + * Se si vede il diff stampato da dpkg-gensymbols qui sopra, bisogna │ │ │ │ │ + estrarre i file symbols aggiornati correttamente dal pacchetto │ │ │ │ │ + binario generato dalla libreria condivisa. ^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * Costruire la release dei pacchetti con programmi come debuild e │ │ │ │ │ + pdebuild. │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ + In aggiunta agli esempi sopra riportati, è necessario controllare │ │ │ │ │ +    ulteriormente la compatibilità ABI e cambiare le versioni di │ │ │ │ │ + qualche simbolo manualmente come richiesto. ^[98] │ │ │ │ │ │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ +    Anche se è solo un riferimento secondario,, Debian wiki │ │ │ │ │ + UsingSymbolsFiles e i suoi collegamenti possono essere utili. │ │ │ │ │ │ │ │ │ │ A.3. Multiarch │ │ │ │ │ │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ + La funzionalità multiarch introdotta in Debian wheezy integra il │ │ │ │ │ + supporto per l'installazione dei pacchetti binari │ │ │ │ │ +    cross-architettura (in particolare i386<->amd64, ma anche altre │ │ │ │ │ + combinazioni) in dpkg e apt. Si consiglia di leggere attentamente │ │ │ │ │ + i seguenti riferimenti: │ │ │ │ │ │ │ │ │ │ * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │     │ │ │ │ │ * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ + Esso utilizza la tripletta come i386-linux-gnu e x86_64-linux-gnu │ │ │ │ │ + per il percorso d'installazione delle librerie condivise. La │ │ │ │ │ +    tripletta del percorso reale è impostata con il valore dinamico $ │ │ │ │ │ + (DEB_HOST_MULTIARCH) da dpkg-architecture(1) per ogni │ │ │ │ │ + costruzione. Ad esempio, il percorso per installare le librerie │ │ │ │ │ + multiarch viene modificato come segue.^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ -    |---------+------------------------+--------------------------| │ │ │ │ │ - |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ - |---------+------------------------+--------------------------| │ │ │ │ │ - |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ + | Vecchio | percorso i386 |percorso amd64 multiarch| │ │ │ │ │ + | percorso | multiarch | | │ │ │ │ │ +    |---------------+----------------------+------------------------| │ │ │ │ │ + |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ + |---------------+----------------------+------------------------| │ │ │ │ │ + |/usr/lib/ |/usr/lib/ |/usr/lib/ | │ │ │ │ │ + | |i386-linux-gnu/ |x86_64-linux-gnu/ | │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ -    Here are some typical multiarch package split scenario examples │ │ │ │ │ - for the following: │ │ │ │ │ +    Qui di seguito alcuni esempi tipici di pacchetti multiarch divisi │ │ │ │ │ + per scenario: │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * sorgente di libreria libfoo-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ + * sorgente di programma bar-1.tar.gz scritto con un linguaggio │ │ │ │ │ +    compilato │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * sorgente di programma baz-1.tar.gz scritto con un linguaggio │ │ │ │ │ + interpretato │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ + | Pacchetto |Architettura:|Multi-Arch:|Contenuto del pacchetto | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + |libfoo1 |qualsiasi |uguale |la libreria condivisa, | │ │ │ │ │ + | | | |co-installabile | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ + | | | |i simboli di debug della| │ │ │ │ │ + |libfoo1-dbg |qualsiasi |uguale |libreira condivisa, | │ │ │ │ │ + | | | |co-installabile | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + | | | |i file di header, ecc, | │ │ │ │ │ + |libfoo-dev |qualsiasi |uguale |della libreira | │ │ │ │ │ + | | | |condivisa, | │ │ │ │ │ + | | | |co-installabile | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ +    | | | |il programma di supporto| │ │ │ │ │ + |libfoo-tools|qualsiasi |straniero |run-time, non | │ │ │ │ │ + | | | |co-installabile | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ + |libfoo-doc |tutti |straniero |i file di documentazione| │ │ │ │ │ + | | | |della libreria condivisa| │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + | | | |i file del programma | │ │ │ │ │ + |bar |qualsiasi |straniero |compilato, non | │ │ │ │ │ + | | | |co-installabile | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ + |bar-doc |tutti |straniero |i file di documentazione| │ │ │ │ │ + | | | |del programma | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ + |baz |tutti |straniero |i file del programma | │ │ │ │ │ + | | | |interpretato | │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ - │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ + Si prega di notare che il pacchetto di sviluppo dovrebbe │ │ │ │ │ +    contenere un link simbolico per la libreria condivisa associata │ │ │ │ │ + senza un numero di versione. Ad es.: /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ + libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -    You can build a Debian library package enabling multiarch support │ │ │ │ │ - using dh(1) as follows: │ │ │ │ │ +A.4. Costruzione del pacchetto della libreria condivisa │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ +    Si può costruire il pacchetto Debian delle libreria, abilitando │ │ │ │ │ + il supporto multiarch utilizzando dh(1) come di seguito: │ │ │ │ │ │ │ │ │ │ - + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ - section. │ │ │ │ │ + * Aggiornare debian/control. │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + Aggiungere Build-Depends: debhelper (>=10) per la sezione del │ │ │ │ │ + sorgente del pacchetto. │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + Aggiungere Pre-Depends: ${misc:Pre-Depends} per ogni │ │ │ │ │ + pacchetto binario di una libreria condivisa. │ │ │ │ │ │ │ │ │ │ - * Set debian/compat to "10". │ │ │ │ │ + + Aggiungere Multi-Arch: per ogni sezione del pacchetto │ │ │ │ │ + binario. │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ + * Impostare debian/compat a "10". │ │ │ │ │ │ │ │ │ │ - + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ - -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ - debian/rules. │ │ │ │ │ + * Regolare il percorso dal normale /usr/lib/ a quello multiarch / │ │ │ │ │ + usr/lib/$(DEB_HOST_MULTIARCH)/ per tutti gli script di │ │ │ │ │ + pacchettizzazione. │ │ │ │ │ │ │ │ │ │ - + If ./configure is used in part of the │ │ │ │ │ - override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ - to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ - │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ - + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ - dynamically by adding a script to the │ │ │ │ │ - override_dh_auto_configure target in debian/rules. │ │ │ │ │ + + Invocare DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ + -qDEB_HOST_MULTIARCH) nel file debian/rules per impostare la │ │ │ │ │ +    variabile DEB_HOST_MULTIARCH. │ │ │ │ │ + │ │ │ │ │ + + Sostituire /usr/lib/ con /usr/lib/$(DEB_HOST_MULTIARCH)/ nel │ │ │ │ │ + file debian/rules. │ │ │ │ │ + │ │ │ │ │ + + Se ./configure viene utilizzato nella parte target di │ │ │ │ │ + override_dh_auto_configure in debian/rules, ci si assicuri di │ │ │ │ │ + sostituirlo con dh_auto_configure -- . ^[100] │ │ │ │ │ + │ │ │ │ │ + + Sostituire tutte le occorrenze di /usr/lib/ con /usr/lib/*/ │ │ │ │ │ + nei file debian/foo.install. │ │ │ │ │ + │ │ │ │ │ + + Genera dinamicamente dei file come debian/foo.links da debian │ │ │ │ │ + /foo.links.in aggiungendo un script al target di │ │ │ │ │ + override_dh_auto_configure in debian/rules. │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ - │ │ │ │ │ - All files installed simultaneously as the multiarch package to │ │ │ │ │ -    the same file path should have exactly the same file content. You │ │ │ │ │ - must be careful of differences generated by the data byte order │ │ │ │ │ - and by the compression algorithm. │ │ │ │ │ - │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ - │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ - │ │ │ │ │ - You can make the upstream tarball by excluding the debian/* files │ │ │ │ │ -    and package it as a non-native Debian package as in Sezione 2.1, │ │ │ │ │ - «Flusso di lavoro per la costruzione dei pacchetti Debian». This │ │ │ │ │ - is the normal way, which some people encourage using. │ │ │ │ │ - │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ - │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ - │ │ │ │ │ -    + package_version.tar.gz │ │ │ │ │ - + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ - │ │ │ │ │ - + package_version_arch.deb │ │ │ │ │ - │ │ │ │ │ - For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │ -    the debian/* files, you can create a native Debian package by │ │ │ │ │ - issuing the dh_make command as follows: │ │ │ │ │ + Ci si assicuri di verificare che il pacchetto di libreria │ │ │ │ │ +    condivisa contenga solo i file attesi, e che il pacchetto -dev │ │ │ │ │ + continui a funzionare. │ │ │ │ │ + │ │ │ │ │ + Tutti i file installati contemporaneamente come pacchetto │ │ │ │ │ + multiarch con lo stesso percorso del file devono avere │ │ │ │ │ +    esattamente lo stesso contenuto. È necessario prestare attenzione │ │ │ │ │ + alle differenze generate dall'ordine dei byte nei dati e │ │ │ │ │ + dall'algoritmo di compressione. │ │ │ │ │ + │ │ │ │ │ +A.5. Pacchetto nativo Debian │ │ │ │ │ + │ │ │ │ │ + Se il pacchetto è mantenuto solo per Debian o per uso locale, il │ │ │ │ │ +    suo sorgente potrebbe contenere tutti i file in debian/*. In │ │ │ │ │ + questo caso, ci sono 2 modi per pacchettizzarlo. │ │ │ │ │ + │ │ │ │ │ + È possibile creare l'archivio originale escludendo i file in │ │ │ │ │ + debian/* e pacchettizandolo come pacchetto Debian non nativo, │ │ │ │ │ +    come descritto in Sezione 2.1, «Flusso di lavoro per la │ │ │ │ │ + costruzione dei pacchetti Debian». Questo è il metodo normale che │ │ │ │ │ + alcune persone incoraggiano ad utilizzare. │ │ │ │ │ + │ │ │ │ │ +    L'alternativa è utilizzare lo stesso metodo usato dai pacchetti │ │ │ │ │ + Debian nativi. │ │ │ │ │ + │ │ │ │ │ + * Creare un pacchetto sorgente nativo di Debian nel formato 3.0 │ │ │ │ │ + (native) usando un singolo file tar compresso che include │ │ │ │ │ + tutti i file. │ │ │ │ │ + │ │ │ │ │ +    + pacchetto_versione.tar.gz │ │ │ │ │ + + pacchetto_versione.dsc │ │ │ │ │ + * Costruire pacchetti binari Debian dal pacchetto sorgente │ │ │ │ │ + nativo di Debian. │ │ │ │ │ + │ │ │ │ │ + + pacchetto_versione_arch.deb │ │ │ │ │ + │ │ │ │ │ + Per esempio, se si hanno i file sorgenti in ~/mypackage-1.0 senza │ │ │ │ │ +    i file debian/*, si può creare un pacchetto nativo Debian, │ │ │ │ │ + utilizzando il comando dh_make come segue: │ │ │ │ │ │ │ │ │ │     $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ - Then the debian directory and its contents are created just like │ │ │ │ │ - in Sezione 2.8, «Il primo pacchetto non nativo per Debian». This │ │ │ │ │ -    does not create a tarball, since this is a native Debian package. │ │ │ │ │ - But that is the only difference. The rest of the packaging │ │ │ │ │ - activities are practically the same. │ │ │ │ │ + La directory debian e il suo contenuto, sono creati proprio come │ │ │ │ │ + Sezione 2.8, «Il primo pacchetto non nativo per Debian». Questo │ │ │ │ │ +    non crea un archivio poiché si tratta di un pacchetto Debian │ │ │ │ │ + nativo. Questa è l'unica differenza. Il resto delle attività di │ │ │ │ │ + pacchettizzazione sono praticamente le stesse. │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    Dopo l'esecuzione del comando dpkg-buildpackage, si possono │ │ │ │ │ + vedere i seguenti file nella directory principale: │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + Questo è l'archivio del codice sorgente creato dalla │ │ │ │ │ + directory mypackage-1.0 dal comando dpkg-source. (Il suffisso │ │ │ │ │ + non è orig.tar.gz.) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.dsc │ │ │ │ │ │ │ │ │ │ - This is a summary of the contents of the source code, as in │ │ │ │ │ - the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -    │ │ │ │ │ + Questo è un sommario del contenuto del codice sorgente, come │ │ │ │ │ + per i pacchetti non-nativi Debian. (non c'è revisione │ │ │ │ │ +    Debian.) │ │ │ │ │ + │ │ │ │ │ * mypackage_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ - This is your completed binary package, as in the non-native │ │ │ │ │ - Debian package. (There is no Debian revision.) │ │ │ │ │ + Questo è il pacchetto binario completo, come per i pacchetti │ │ │ │ │ + non-nativi Debian. (non c'è revisione Debian.) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + Questo file descrive tutte le modifiche apportate nella │ │ │ │ │ + versione attuale del pacchetto, come per i pacchetti Debian │ │ │ │ │ + non-nativi. (non c'è revisione Debian.) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] In alternativa: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] In alternativa: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] See Manuale delle policy di Debian, 8.1 "Run-time shared │ │ │ │ │ + libraries". │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] See Manuale delle policy di Debian, 8.1.1 "ldconfig". │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ +    ^[91] See Manuale delle policy di Debian, 8.3 "Static libraries" │ │ │ │ │ + e Manuale delle policy di Debian, 8.4 "Development files". │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] Si veda Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] Si veda Debian wiki RpathIssue. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ + ^[94] Le modifiche ABI incompatibili con le versioni precedenti, │ │ │ │ │ +    normalmente rendono necessario aggiornare il SONAME della │ │ │ │ │ + libreria e il nome del pacchetto della libreria condivisa a │ │ │ │ │ + quelli nuovi. │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ + ^[95] Per le librerie C++ e per gli altri casi in cui il │ │ │ │ │ +    tracciamento dei singoli simboli è troppo difficile, si consulti │ │ │ │ │ + invece Manuale delle policy di Debian, 8.6.4 "The shlibs system", │ │ │ │ │ + instead. │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] Tutte la versioni precedenti del pacchetto Debian packages │ │ │ │ │ + sono disponibili su http://snapshot.debian.org/. La revisione │ │ │ │ │ +    Debian viene eliminata dalla versione per rendere più facile il │ │ │ │ │ + backport del pacchetto: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << │ │ │ │ │ + 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ + ^[97] La revisione Debian viene eliminata dalla versione per │ │ │ │ │ +    rendere più facile il backport del pacchetto: 1.3 << │ │ │ │ │ + 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ - changes". │ │ │ │ │ +    ^[98] Si veda Manuale delle policy di Debian, 8.6.2 "Shared │ │ │ │ │ + library ABI changes". │ │ │ │ │ │ │ │ │ │ -    ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ - lib64/ are not used anymore. │ │ │ │ │ +    ^[99] Vecchi percorsi di libreria, per scopi speciali, come / │ │ │ │ │ + lib32/ and /lib64/ non sono più utilizzati. │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] In alternativa, si possono aggiungere gli argomenti │ │ │ │ │ + --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) e --libexecdir=\$$ │ │ │ │ │ + {prefix}/lib/$(DEB_HOST_MULTIARCH) a ./configure. Si noti che │ │ │ │ │ +    --libexecdir indica il percorso predefinito d'installazione dei │ │ │ │ │ + programmi eseguibili gestiti da altri programmi e non dagli │ │ │ │ │ + utenti. Il percorso predefinito di Autotools è /usr/libexec/ │ │ │ │ │ + mentre quello di Debian è /usr/lib/. ├── maint-guide-ja_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1572 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 689308 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 690400 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: maint-guide-ja │ │ │ │ Source: maint-guide │ │ │ │ Version: 1.2.53 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Osamu Aoki │ │ │ │ -Installed-Size: 1091 │ │ │ │ +Installed-Size: 1096 │ │ │ │ Suggests: debian-policy, developers-reference, devscripts, dh-make, doc-base, dupload | dput, fakeroot, lintian, pbuilder, quilt │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://www.debian.org/doc/devel-manuals#maint-guide │ │ │ │ Description: Debian New Maintainers' Guide (Japanese) │ │ │ │ This package contains the Debian New Maintainers' Guide. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1224 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39597 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/advanced.ja.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 43562 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/advanced.ja.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 41240 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/build.ja.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20653 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/checkit.ja.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 69193 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/dother.ja.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 69195 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/dother.ja.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 87204 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/dreq.ja.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 61782 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/first.ja.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25424 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/index.ja.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25486 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/index.ja.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 26778 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/modify.ja.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38517 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/start.ja.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 35541 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/update.ja.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13137 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/upload.ja.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 539926 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/maint-guide.ja.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 67589 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/maint-guide.ja.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13155 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/html/upload.ja.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 541317 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/maint-guide.ja.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 67681 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ja/maint-guide.ja.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 619 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-ja.maint-guide-ja │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-ja │ │ │ ├── ./usr/share/doc/maint-guide-ja/html/advanced.ja.html │ │ │ │ ├── ./usr/share/doc/maint-guide-ja/html/advanced.ja.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - 付録A Advanced packaging │ │ │ │ │ + 付録A 上級パッケージング │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

Here are some typical multiarch package split scenario examples for the │ │ │ │ │ -following:

│ │ │ │ │ +

以下の場合に関する典型的なパッケージ分割シナリオの例を示します。

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a library source │ │ │ │ │ + ライブラリーソース │ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + コンパイラー用の言語で書かれたツールのソース │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in a compiled language │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + インタープリター用言語で書かれたツールのソース │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in an interpreted language │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -775,18 +744,18 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
PackageパッケージArchitecture:Multi-Arch:Package contentパッケージ内容
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ @@ -796,15 +765,15 @@ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anysamethe shared library, co-installable共有ライブラリー、同時インストール可能
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ @@ -813,265 +782,252 @@ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ -dbg │ │ │ │ │ │ │ │ │ │ anysamethe shared library debug symbols, co-installable共有ライブラリーデバッグシンボル、同時インストール可能
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -dev │ │ │ │ │ │ │ │ │ │ anysamethe shared library header files etc., co-installable共有ライブラリーヘッダーファイル他、同時インストール可能
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -tools │ │ │ │ │ │ │ │ │ │ anyforeignthe run-time support programs, not co-installable実行時サポートプログラム、同時インストール不可
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe shared library documentation files共有ライブラリーのドキュメンテーションファイル
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anyforeignthe compiled program files, not co-installableコンパイルされ実行されるプログラムファイル、同時インストール不可
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe documentation files for the programプログラムのドキュメンテーションファイル
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ allforeignthe interpreted program filesインタープリターで実行されるプログラムファイル
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + 開発パッケージは関連した共有ライブラリーへの │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + バージョン番号無しの │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + シンボリックリンクを含んでいるべきです。例えば: │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - You can build a Debian library package enabling multiarch support using │ │ │ │ │ │ │ │ │ │ dh │ │ │ │ │ (1) │ │ │ │ │ │ │ │ │ │ - as follows: │ │ │ │ │ + を以下のように使えばマルチアーチをサポートするようにして Debian のライブラリーパッケージをビルドできます: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ -

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ -path should have exactly the same file content. You must be careful of │ │ │ │ │ -differences generated by the data byte order and by the compression │ │ │ │ │ -algorithm.

│ │ │ │ │ +

共有ライブラリーパッケージが期待されるファイルのみを含み、-dev パッケージも依然として動作することを確認しましょう。

│ │ │ │ │ +

マルチアーチパッケージとして同時に同一パスにインストールされる全てのファイルはファイルの内容が完全に同じあるべきです。データのバイトオーダーや圧縮アルゴリズムにより生成される相違に注意すべきです。

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + もしパッケージが Debian のためだけとか、またローカル使用のために保守されている場合、そのソースファイルは │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + ファイルすべてをその中に含まれます。それをパッケージするのには2つの方法があります。 │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - You can make the upstream tarball by excluding the │ │ │ │ │ debian/* │ │ │ │ │ - files and package it as a non-native Debian │ │ │ │ │ -package as in │ │ │ │ │ + ファイルを除外したアップストリームターボールを作成し、 │ │ │ │ │ 「Debian パッケージビルドのワークフロー」 │ │ │ │ │ - . This is the normal way, which │ │ │ │ │ -some people encourage using. │ │ │ │ │ + にあるようにしてノンネイティブ Debian パッケージできます。これが一部の人に推奨される通常の方法です。 │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

この代わりの方法は、ネイティブ Debian パッケージのワークフローです。

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ + 全てのファイルが含まれる単一の圧縮された tar ファイルを用いる │ │ │ │ │ 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + フォーマットでネイティブの Debian ソースパッケージを作成します。 │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ package │ │ │ │ │ @@ -1158,15 +1105,15 @@ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    ネイティブ Debian ソースパッケージから、Debian バイナリーパッケージをビルドします。

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ package │ │ │ │ │ │ │ │ │ │ @@ -1183,96 +1130,88 @@ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - For example, if you have source files in │ │ │ │ │ - ~/mypackage-1.0 │ │ │ │ │ - without the │ │ │ │ │ + 例えば │ │ │ │ │ debian/* │ │ │ │ │ - files, you can create a native Debian package │ │ │ │ │ -by issuing the │ │ │ │ │ + ファイルを含まない │ │ │ │ │ + ~/mypackage-1.0 │ │ │ │ │ + ソースファイルがあれば、以下のように │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ - command as follows: │ │ │ │ │ + コマンドを用いてネイティブ Debian パッケージが作れます: │ │ │ │ │

│ │ │ │ │
$ cd ~/mypackage-1.0
│ │ │ │ │  $ dh_make --native
│ │ │ │ │

│ │ │ │ │ - Then the │ │ │ │ │ + すると、 │ │ │ │ │ debian │ │ │ │ │ - directory and its contents are created │ │ │ │ │ -just like in │ │ │ │ │ + ディレクトリーとその内容は │ │ │ │ │ 「最初のノンネイティブ Debian パッケージ」 │ │ │ │ │ - . This does not create a │ │ │ │ │ -tarball, since this is a native Debian package. But that is the only │ │ │ │ │ -difference. The rest of the packaging activities are practically the same. │ │ │ │ │ + とちょうど同じように作成されます。これはネイティブ Debian パッケージなので tar │ │ │ │ │ +アーカイブを作りません。しかし相違点はこれだけです。他のパッケージング操作は実質的にまったく同じです。 │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - After execution of the │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + コマンドを実行した後、親ディレクトリーに以下のファイルが生成します: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.tar.gz │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + これは、 │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + コマンドにより │ │ │ │ │ + mypackage-1.0 │ │ │ │ │ + ディレクトリーから作られたソースコードのターボールです。(そのサフィックスは │ │ │ │ │ orig.tar.gz │ │ │ │ │ - .) │ │ │ │ │ + ではありません。) │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.dsc │ │ │ │ │

    │ │ │ │ │ -

    This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ -Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    これは、ノンネイティブ Debian パッケージと同様でソースコード内容の要約です。(Debian リビジョンはありません。)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.deb │ │ │ │ │

    │ │ │ │ │ -

    This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ -(There is no Debian revision.)

    │ │ │ │ │ +

    これは、ノンネイティブ Debian パッケージと同様で完成したバイナリーパッケージです。(Debian リビジョンはありません。)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.changes │ │ │ │ │

    │ │ │ │ │ -

    This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    これは、ノンネイティブ Debian パッケージと同様で現パッケージバージョンでの全変更を記述します。(Debian リビジョンはありません。)

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + もしくは: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1285,15 +1224,15 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + もしくは: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1306,166 +1245,156 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ libraries" │ │ │ │ │ - . │ │ │ │ │ + を参照下さい。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ Debian Policy Manual, 8.1.1 │ │ │ │ │ "ldconfig" │ │ │ │ │ - . │ │ │ │ │ + を参照下さい。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ See │ │ │ │ │ Debian Policy Manual, 8.3 "Static │ │ │ │ │ libraries" │ │ │ │ │ and │ │ │ │ │ Debian Policy Manual, 8.4 │ │ │ │ │ "Development files" │ │ │ │ │ - . │ │ │ │ │ + を参照下さい。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ - . │ │ │ │ │ + を参照下さい。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ Debian wiki RpathIssue │ │ │ │ │ - . │ │ │ │ │ + を参照下さい。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + 後方非互換な ABI 変更をした場合、通常、ライブラリーの SONAME │ │ │ │ │ +と共有ライブラリーパッケージ名を新規なものにそれぞれアップデートしないといけません。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + C++ ライブラリーや個別シンボルを追跡するのが非常に困難な他の場合には、これに代えて │ │ │ │ │ + Debian Policy Manual, 8.6.4 "The shlibs │ │ │ │ │ +system" │ │ │ │ │ + に従いましょう。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + Debian パッケージの過去全てのバージョンは │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + から得られます。 │ │ │ │ │ +パッケージのバックポートが楽にできるように Debian リビジョンはバージョンから取り除きます。: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ - and │ │ │ │ │ + と │ │ │ │ │ 1.2 │ │ │ │ │ << │ │ │ │ │ 1.2-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.2-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + Debian リビジョンはパッケージのバックポートを容易にすべく外します: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ library ABI changes" │ │ │ │ │ - . │ │ │ │ │ + を参照下さい。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [99] │ │ │ │ │ │ │ │ │ │ - Old special purpose library paths such as │ │ │ │ │ + 旧来の │ │ │ │ │ /lib32/ │ │ │ │ │ - and │ │ │ │ │ + や │ │ │ │ │ /lib64/ │ │ │ │ │ - are not used anymore. │ │ │ │ │ + 等の特定目的のライブラリーパスは使われなくなっています。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + これに代えて、 │ │ │ │ │ + ./configure │ │ │ │ │ + に │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + と │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ - ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + 引数を追加することもできます。注意いただきたいのは、ユーザーではなく他のプログラムによりのみ実行される実行プログラムをインストールするデフォルトパスを │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + は設定します。その Autotools のデフォルトは │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + ですが、Debian デフォルトは │ │ │ │ │ /usr/lib/ │ │ │ │ │ - . │ │ │ │ │ + です。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-ja/maint-guide.ja.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -36,35 +36,35 @@ │ │ │ │ │ │ │ │ │ │ Josip Rodin, │ │ │ │ │ Osamu Aoki, 倉澤 │ │ │ │ │ 望, 八津尾雄介, 佐 │ │ │ │ │ 々木洋平, 倉敷悟, 、 │ │ │ │ │ 青木修 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 日本語訳 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 日本語訳 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 日本語訳 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 日本語訳 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 日本語訳 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ REVISION HISTORY │ │ │ │ │ NUMBER │ │ │ │ │ │ │ │ │ │ DATE │ │ │ │ │ │ │ │ │ │ DESCRIPTION │ │ │ │ │ @@ -399,27 +399,27 @@ │ │ │ │ │ │ │ │ │ │ アップロード用 orig.tar.gz の内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ スキップされたアップロード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A 上級パッケージング │ │ │ │ │ │ │ │ │ │ 58 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ -A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 │ │ │ │ │ +A.1 共有ライブラリー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ +A.2 debian/package.symbols の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ +A.3 マルチアーチ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ +A.4 共有ライブラリーパッケージのビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ +A.5 ネイティブ Debian パッケージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -1 / 62 │ │ │ │ │ +1 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 1 │ │ │ │ │ │ │ │ │ │ まずは正攻法で始めよう │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ この文書では、一般の Debian ユーザーやデベロッパーを目指している人を対象に Debian パッケージのビルド方法 │ │ │ │ │ @@ -453,15 +453,15 @@ │ │ │ │ │ 1文中では、jessie より新しいシステムを使っていると想定しています。古いシステム (古い Ubuntu システム等を含む) を使ってこの文書 │ │ │ │ │ についていきたいのであれば、少なくともバックポートされた dpkg および debhelper パッケージをインストールする必要があります。 │ │ │ │ │ 2Debian システムの基本的な操作は Debian Reference (http://www.debian.org/doc/manuals/debian-reference/) から学べます。Unix プログラミング │ │ │ │ │ に関しても学べるいくつかのポインターも含まれています。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -2 / 62 │ │ │ │ │ +2 / 63 │ │ │ │ │ │ │ │ │ │ – 他人に何をするかを押し付けてはいけません。 │ │ │ │ │ – 自分自身で行う意欲を持つべきです。 │ │ │ │ │ • 友好的な協力が推進力です。 │ │ │ │ │ – あなたの寄与は他人にストレスを掛けすぎてはいけません。 │ │ │ │ │ – あなたの寄与は他人に評価されて初めて価値があります。 │ │ │ │ │ • Debian は教師の注意が自動的にあなたに注がれるあなたの学校とは違います。 │ │ │ │ │ @@ -497,15 +497,15 @@ │ │ │ │ │ • Debian New Member サイト (https://nm.debian.org/) (正規) │ │ │ │ │ • Debian Mentors FAQ (http://wiki.debian.org/DebianMentorsFaq) (補足) │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 1.2 │ │ │ │ │ │ │ │ │ │ -3 / 62 │ │ │ │ │ +3 / 63 │ │ │ │ │ │ │ │ │ │ 開発に必要なプログラム │ │ │ │ │ │ │ │ │ │ 何はさておき、開発に必要なパッケージがきちんとインストールされていることを確認するべきです。以下のリス │ │ │ │ │ トには essential または required なパッケージが含まれていないことに注意してください。これらのパッケー │ │ │ │ │ ジは既にインストールされていることを前提としています。 │ │ │ │ │ 以下のパッケージは Debian の標準 (standard) インストール構成に含まれており、すでに (それらが依存する他のパ │ │ │ │ │ @@ -552,15 +552,15 @@ │ │ │ │ │ • lintian - これは Debian パッケージチェッカで、あなたがビルドしたパッケージを調べて、その中にありがち │ │ │ │ │ なミスが見つかったらそれを指摘し、その問題について説明してくれます。(詳しくは lintian(1)、Lintian User’s │ │ │ │ │ Manual (https://lintian.debian.org/manual/index.html) 参照。) │ │ │ │ │ 3dh-make-perl、dh-make-php 等のように、同様の内容で特化したパッケージもいくつかあります。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -4 / 62 │ │ │ │ │ +4 / 63 │ │ │ │ │ │ │ │ │ │ • patch - このとても有用なユーティリティは、(diff プログラムによって生成された) オリジナルとの差分が列挙さ │ │ │ │ │ れたファイルを読み込んでオリジナルのファイルに適用し、パッチが当てられたバージョンを作成します。(詳し │ │ │ │ │ くは patch(1) を参照。) │ │ │ │ │ • patchutils - このパッケージには、lsdiff、interdiff や filterdiff といったパッチを扱うユーティリティが含まれ │ │ │ │ │ ています。 │ │ │ │ │ • pbuilder - このパッケージには chroot 環境の作成や保守に使用されるプログラムが含まれます。この chroot 環 │ │ │ │ │ @@ -604,15 +604,15 @@ │ │ │ │ │ ィング標準 (http://www.gnu.org/prep/standards/html_node/index.html) と、GNU ソフトウェアのメンテナー向け情報 │ │ │ │ │ (http://www.gnu.org/prep/maintain/html_node/index.html) です。Debian ではこれらに従うことは求められませんが、ガ │ │ │ │ │ イドラインまたは常識としても有用です (ローカルコピーの /usr/share/doc/gnu-standards/standards. │ │ │ │ │ pdf.gz と /usr/share/doc/gnu-standards/maintain.pdf.gz を参照。) │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -5 / 62 │ │ │ │ │ +5 / 63 │ │ │ │ │ │ │ │ │ │ この文書が、上記文書の記述と矛盾している場合は、そちらが正解です。reportbug を使って maint-guide パッ │ │ │ │ │ ケージにバグレポートをしてください。 │ │ │ │ │ 以下は、この文書と合わせて読める同様の入門書です: │ │ │ │ │ • Debian Packaging Tutorial (http://www.debian.org/doc/packaging-manuals/packaging-tutorial/packaging-tutorial) │ │ │ │ │ │ │ │ │ │ 1.4 │ │ │ │ │ @@ -650,15 +650,15 @@ │ │ │ │ │ な数の怒った Debian ユーザーからメール爆弾を受けとることになります……なんて冗談ですが:-) │ │ │ │ │ リラックスしてバグ報告に備えてください。なにしろ、そのパッケージが Debian ポリシーやそのベストプラクティ │ │ │ │ │ スに完全に沿うようになるまでには、やらなくてはいけないことは沢山あるのですから (繰り返しますが、詳細は │ │ │ │ │ 正式の文書を読んでください)。頑張ってください! │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -6 / 62 │ │ │ │ │ +6 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 2 │ │ │ │ │ │ │ │ │ │ はじめの一歩 │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ (できれば既存パッケージを引き取り) 自分のパッケージを作成しましょう。 │ │ │ │ │ @@ -693,15 +693,15 @@ │ │ │ │ │ ージアーキテクチャーは Debian Policy Manual, 5.6.8 ”Architecture” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture) に従 │ │ │ │ │ い、パッケージビルドプロセスにより自動的に付与されます。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 2.2 │ │ │ │ │ │ │ │ │ │ -7 / 62 │ │ │ │ │ +7 / 63 │ │ │ │ │ │ │ │ │ │ プログラムの選定 │ │ │ │ │ │ │ │ │ │ おそらく、作成したいパッケージを選んだことと思います。まず最初にしなければならないことは、ディストリビ │ │ │ │ │ ューションのアーカイブにそのパッケージがすでにあるかどうかを以下を使って確認することです: │ │ │ │ │ • aptitude コマンド │ │ │ │ │ • Debian パッケージ (http://www.debian.org/distrib/packages) ウェブページ │ │ │ │ │ @@ -739,15 +739,15 @@ │ │ │ │ │ てください。もしその気が無いなら、まだ誰も手をつけていない他の面白いプログラムを探しましょう。 │ │ │ │ │ 3Debian Developer’s Reference 5.9.5 ”Adopting a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#adopting) を参照下さ │ │ │ │ │ い。 │ │ │ │ │ ⁴とはいっても、パッケージ化する価値のある新しいプログラムはいつだって存在するでしょう。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -8 / 62 │ │ │ │ │ +8 / 63 │ │ │ │ │ │ │ │ │ │ • プログラムには、ライセンスが必須です。 │ │ │ │ │ – main セクションは、 │ │ │ │ │ Debian ポリシーにより Debian フリーソフトウェアガイドライン (DFSG (http://www.debian.org/social_contract#guidelines) ) に完全に準拠しなければなりませんし、またコンパイル・実行時に main 以外のパ │ │ │ │ │ ッケージに依存してはなりません。これが望ましいケースです。 │ │ │ │ │ – contrib セクションは、DFSG に完全に準拠していなければなりませんが、コンパイル・実行時に main にあ │ │ │ │ │ るもの以外のパッケージに依存していても構いません。 │ │ │ │ │ @@ -786,15 +786,15 @@ │ │ │ │ │ – 複数のアップストリームソースからなるソースパッケージ │ │ │ │ │ – カーネルモジュールパッケージ │ │ │ │ │ – カーネルパッチパッケージ │ │ │ │ │ – 非自明なメンテナースクリプトを含むあらゆるパッケージ │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -9 / 62 │ │ │ │ │ +9 / 63 │ │ │ │ │ │ │ │ │ │ 高度に複雑なパッケージをパッケージすることはそれほど難しいことではありませんが、少々知識が必要です。そ │ │ │ │ │ れぞれの複雑な特徴には固有のガイダンスを探すべきです。例えば、いくつかの言語にはそれぞれのサブポリシー │ │ │ │ │ 文書があります: │ │ │ │ │ • Perl policy (http://www.debian.org/doc/packaging-manuals/perl-policy/) │ │ │ │ │ • Python policy (http://www.debian.org/doc/packaging-manuals/python-policy/) │ │ │ │ │ • Java policy (http://www.debian.org/doc/packaging-manuals/java-policy/) │ │ │ │ │ @@ -840,15 +840,15 @@ │ │ │ │ │ にして install ターゲットがある新規の Makefile をアップストリームソースに追加してインストールできます。 │ │ │ │ │ ⁶ファイルの拡張子で足りなければ、file コマンドを使ってアーカイブ形式を判別することができます。 │ │ │ │ │ ⁷このプログラムはすでにパッケージ化されています。その最新のバージョン (http://packages.qa.debian.org/g/gentoo.html) は Autotools をその │ │ │ │ │ ビルド構造としており、バージョン 0.9.12 に基づく以下の例から大きく異なります。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -10 / 62 │ │ │ │ │ +10 / 63 │ │ │ │ │ │ │ │ │ │ $ mkdir ~/gentoo ; cd ~/gentoo │ │ │ │ │ $ wget http://www.example.org/gentoo-0.9.12.tar.gz │ │ │ │ │ $ tar xvzf gentoo-0.9.12.tar.gz │ │ │ │ │ $ ls -F │ │ │ │ │ gentoo-0.9.12/ │ │ │ │ │ gentoo-0.9.12.tar.gz │ │ │ │ │ @@ -907,15 +907,15 @@ │ │ │ │ │ が同梱されています。 │ │ │ │ │ ⁹Autotools は本入門書で扱うには大きすぎます。本セクションはキーワードや参照文献を提供するだけです。必要な際には、Autotools Tutorial │ │ │ │ │ (http://www.lrde.epita.fr/~adl/autotools.html) と /usr/share/doc/autotools-dev/README.Debian.gz のローカルコピーをしっかり読んで下 │ │ │ │ │ さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -11 / 62 │ │ │ │ │ +11 / 63 │ │ │ │ │ │ │ │ │ │ configure.ac や Makefile.am ファイルを編集するには、autoconf と automake についての知識が少々必要にな │ │ │ │ │ ります。info autoconf と info automake を参照してください。 │ │ │ │ │ Autotools のワークフローの通常の次のステップは、この配布されているソースをユーザーが入手し、ソースディレ │ │ │ │ │ クトリーで ./configure && make を実行することで、プログラムを binary という実行可能コマンドにコンパ │ │ │ │ │ イルします。 │ │ │ │ │ Makefile.in -----+ │ │ │ │ │ @@ -967,15 +967,15 @@ │ │ │ │ │ パッケージはアップストリームバージョンが 8 文字より少なく、Debian リビジョンが 2 文字より少ないです。90% 上のパッケージはアップスト │ │ │ │ │ リームバージョンが 10 文字より少なく、Debian リビジョンが 3 文字より少ないです。 │ │ │ │ │ 1⁵バ ー ジ ョ ン 文 字 列 は、 ア ッ プ ス ト リ ー ム バ ー ジ ョ ン (version) か、Debian リ ビ ジ ョ ン (revision) か、 バ ー ジ ョ ン │ │ │ │ │ (version-revision) かもしれません。Debian リビジョンがどのように増やされるかは項8.1 を参照下さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -12 / 62 │ │ │ │ │ +12 / 63 │ │ │ │ │ │ │ │ │ │ バージョンの比較ルールは以下のようにまとめられます: │ │ │ │ │ • 文字列は頭から尾へと比較されます。 │ │ │ │ │ • 英文字は数字よりも大きいです。 │ │ │ │ │ • 数字は整数として比較されます。 │ │ │ │ │ • 英文字は ASCII コード順で比較されます。 │ │ │ │ │ • ピリオド (.) と、プラス (+) と波線 (~) には以下のような特殊なルールがあります: │ │ │ │ │ @@ -1025,15 +1025,15 @@ │ │ │ │ │ package (カーネルモジュールパッケージ)、n は Kernel patch package (カーネルパッチパッケージ)、b は cdbs です。本文書は debhelper パッ │ │ │ │ │ ケージを dh コマンドとともに使うことに使うことに重点を置きます。このドキュメントでは、単一バイナリーパッケージのために dh コマンド │ │ │ │ │ を使うことに重点を置き、アーキテクチャー非依存や複数バイナリーのパッケージに関する同様の事にも触れます。cdbs パッケージは dh コマ │ │ │ │ │ ンドに代わるパッケージスクリプトのインフラを提供し、本文書では対象外です。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -13 / 62 │ │ │ │ │ +13 / 63 │ │ │ │ │ │ │ │ │ │ dh_make を実行した後、アップストリームの tarball のコピーを、親ディレクトリーに gentoo_0.9.12.orig. │ │ │ │ │ tar.gz として作成します。次に、それに伴ってノンネイティブ Debian ソースパッケージを debian.tar.gz とし │ │ │ │ │ て作成します: │ │ │ │ │ $ cd ~/gentoo ; ls -F │ │ │ │ │ gentoo-0.9.12/ │ │ │ │ │ gentoo-0.9.12.tar.gz │ │ │ │ │ @@ -1053,15 +1053,15 @@ │ │ │ │ │ 新規パッケージの作成にとどめてください。第8章にて、追加で説明します。 │ │ │ │ │ ソースファイルには項2.4 や項2.5 で述べたようないかなるビルドシステムを含んでいる必要は無いことに注意して │ │ │ │ │ 下さい。それは単なる画像データ集等かもしれません。ファイルのインストールは debian/install (項5.11参照) │ │ │ │ │ のような debhelper コンフィギュレーションファイルだけを使っても行えます。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -14 / 62 │ │ │ │ │ +14 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 3 │ │ │ │ │ │ │ │ │ │ ソースコードの変更 │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ アップストリームのソースを修正する具体的なやり方について、何から何まで説明するにはとても紙面が足りませ │ │ │ │ │ @@ -1098,15 +1098,15 @@ │ │ │ │ │ アップストリームのバグを修正する │ │ │ │ │ │ │ │ │ │ 以下のようなアップストリームの Makefile にエラーを見つけて、install: gentoo の部分が install: │ │ │ │ │ gentoo-target となっているべきだったとします。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -15 / 62 │ │ │ │ │ +15 / 63 │ │ │ │ │ │ │ │ │ │ install: gentoo │ │ │ │ │ install ./gentoo $(BIN) │ │ │ │ │ install icons/* $(ICONS) │ │ │ │ │ install gentoorc-example $(HOME)/.gentoorc │ │ │ │ │ │ │ │ │ │ これを修正して、dquilt コマンドを使って fix-gentoo-target.patch として登録しましょう: 1 │ │ │ │ │ @@ -1151,15 +1151,15 @@ │ │ │ │ │ 1前に説明したように dh_make を実行していれば、debian/patches ディレクトリーはもう存在しているはずです。この操作例では、既存 │ │ │ │ │ のパッケージを更新している場合に合わせて作成しています。 │ │ │ │ │ 2GNU Coding Standards: 7.2.4 DESTDIR: Support for Staged Installs (http://www.gnu.org/prep/standards/html_node/DESTDIR.html#DESTDIR) を参照 │ │ │ │ │ 下さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -16 / 62 │ │ │ │ │ +16 / 63 │ │ │ │ │ │ │ │ │ │ に $(DESTDIR) 変数は付与されます。パッケージ作成スクリプトは $(DESTDIR) を一時ディレクトリーにセット │ │ │ │ │ します。 │ │ │ │ │ 単一バイナリーパッケージを生成するソースパッケージでは、debian/package が dh_auto_install コマンドが使う │ │ │ │ │ 一時ディレクトリーとして指定されます。3 一時ディレクトリーに含まれているものはすべて、ユーザーがあなた │ │ │ │ │ のパッケージをインストールする時に、ユーザーのシステムにインストールされます。唯一の違いは、dpkg はファ │ │ │ │ │ イルをあなたの作業ディレクトリーではなくルートディレクトリーからの相対パスにインストールするということ │ │ │ │ │ @@ -1214,15 +1214,15 @@ │ │ │ │ │ れます。 │ │ │ │ │ ⁴これは Makefile ファイルがこうなっているべきである、ということを示すための例にすぎません。Makefile ファイルが ./configure コ │ │ │ │ │ マンドで作成されているなら、この手の Makefile を修正する正しい方法は、dh_auto_configure コマンドに --prefix=/usr を含むデフォル │ │ │ │ │ トのオプションを与えて、./configure コマンドを実行させることです。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -17 / 62 │ │ │ │ │ +17 / 63 │ │ │ │ │ │ │ │ │ │ こうする代わりに、各置換を確認したい場合は、これは以下のようにインタラクティブにできます: │ │ │ │ │ $ vim ’+argdo %s#usr/local/lib#usr/lib#gce|update’ +q \ │ │ │ │ │ $(find . -type f -name ’*.[c|h]’) │ │ │ │ │ │ │ │ │ │ 修正が終ったら、install ターゲットを探しましょう (install: で始まる行を探してください。この方法でたい │ │ │ │ │ ていうまくいきます)。Makefile の先頭で定義されているものを除いて、ディレクトリーへの参照をすべて変更し │ │ │ │ │ @@ -1271,15 +1271,15 @@ │ │ │ │ │ ことも忘れないでください。そうすれば、あなたの変更はずっと採用されやすくなります。 │ │ │ │ │ アップストリームの作者へ debian/* ファイルを送らなくてもよいことに注意してください。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 3.4 │ │ │ │ │ │ │ │ │ │ -18 / 62 │ │ │ │ │ +18 / 63 │ │ │ │ │ │ │ │ │ │ ライブラリーの相違 │ │ │ │ │ │ │ │ │ │ よくある問題がもう一つあります。 │ │ │ │ │ ライブラリーはしばしばプラットフォームごとに異なります。 │ │ │ │ │ 例えば、 │ │ │ │ │ Makefile │ │ │ │ │ @@ -1299,15 +1299,15 @@ │ │ │ │ │ ... describe patch │ │ │ │ │ │ │ │ │ │ ⁵foo ライブラリーから foo2 ライブラリーへの API 変更があった場合、新しい API に合わせてソースコードへの必要な変更を加える必要 │ │ │ │ │ があります。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -19 / 62 │ │ │ │ │ +19 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 4 │ │ │ │ │ │ │ │ │ │ debian/ ディレクトリー以下に無くてはなら │ │ │ │ │ ないファイル │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ @@ -1340,15 +1340,15 @@ │ │ │ │ │ 1–7 行目は、ソースパッケージの管理情報です。9–13 行目は、バイナリーパッケージの管理情報です。 │ │ │ │ │ 1 行目は、ソースパッケージ名です。 │ │ │ │ │ 2 行目は、パッケージが所属するディストリビューション内のセクションです。 │ │ │ │ │ 1自明な場合、本章では debian ディレクトリー中のファイルは、前に付く debian/ を省略し簡明に表記しています。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -20 / 62 │ │ │ │ │ +20 / 63 │ │ │ │ │ │ │ │ │ │ ご存知のように、Debian アーカイブは main (完全にフリーなソフトウェア)、non-free (本当にフリーではないソ │ │ │ │ │ フトウェア)、contrib (フリーだが non-free ソフトウェアに依存するソフトウェア) という複数エリアに分かれて │ │ │ │ │ います。さらにそれらは、大まかなカテゴリー毎のセクションに分類されています。例えば、管理者専用のプログ │ │ │ │ │ ラムは admin 、プログラムツールは devel、文書作成関連は doc、ライブラリーは libs、メールリーダやメー │ │ │ │ │ ルデーモンは mail、ネットワーク関連のアプリケーションやデーモンは net、分類ができない X11 用のプログラ │ │ │ │ │ ムは x11 に分類され、他にも様々なセクションがあります。2 │ │ │ │ │ @@ -1392,15 +1392,15 @@ │ │ │ │ │ ⁴Debian Policy Manual, 7.7 ”Relationships between source and binary packages - Build-Depends, Build-Depends-Indep, Build-Conflicts, Build-ConflictsIndep” (http://www.debian.org/doc/debian-policy/ch-relationships.html#s-sourcebinarydeps) を参照下さい。 │ │ │ │ │ ⁵この少し変な状況はDebian Policy Manual, Footnotes 55 (http://www.debian.org/doc/debian-policy/footnotes.html#f55) で詳しく説明されている特 │ │ │ │ │ 徴です。これは、debian/rules ファイル内の dh コマンドではなく、dpkg-buildpackage に起因します。同様の状況は auto build system for Ubuntu │ │ │ │ │ (https://bugs.launchpad.net/launchpad-buildd/+bug/238141) にも当てはまります。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -21 / 62 │ │ │ │ │ +21 / 63 │ │ │ │ │ │ │ │ │ │ $ dpkg -S libfoo.so.6 │ │ │ │ │ │ │ │ │ │ を実行します。Build-Depends の項目に、各ライブラリーの-dev バージョンを採用します。このために ldd を使 │ │ │ │ │ 用すると、間接的な依存も報告し、過度のビルド依存問題を引き起こします。 │ │ │ │ │ gentoo パッケージをビルドするには xlibs-dev、 │ │ │ │ │ libgtk1.2-dev、 │ │ │ │ │ @@ -1445,15 +1445,15 @@ │ │ │ │ │ aptitude は提案パッケージを一緒にインストールするように変更することが可能ですが、デフォルトではありま │ │ │ │ │ せん。dpkg と apt-get はこのフィールドを無視します。 │ │ │ │ │ ⁶詳細は Debian Policy Manual, 5.6.8 ”Architecture” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture) を参照下さい。 │ │ │ │ │ ⁷Debian Policy Manual, 7 ”Declaring relationships between packages” (http://www.debian.org/doc/debian-policy/ch-relationships.html) を参照下さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -22 / 62 │ │ │ │ │ +22 / 63 │ │ │ │ │ │ │ │ │ │ • Pre-Depends (事前依存) │ │ │ │ │ これは Depends よりも強い関係を示します。 │ │ │ │ │ パッケージは先行依存のパッケージがあらかじめインストールされ、 │ │ │ │ │ かつ適切に設定されていない限りインストールされません。これは、メーリングリストdebian-devel@lists.debian.org │ │ │ │ │ (http://lists.debian.org/debian-devel/) で議論を尽くした上で、とても慎重に扱うべきです。つまり、使わないでくだ │ │ │ │ │ さい。:-) │ │ │ │ │ @@ -1504,15 +1504,15 @@ │ │ │ │ │ リーパッケージ毎に DEBIAN/control を生成します。 │ │ │ │ │ とは言っても、今のところ Depends フィールドはそのままにして、その下に Suggests: file という新たな行 │ │ │ │ │ を追加しましょう。gentoo は file パッケージによって提供される機能を利用することができるからです。 │ │ │ │ │ 9 行目はホームページの URL です。これが http://www.obsession.se/gentoo/ と仮定しましょう。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -23 / 62 │ │ │ │ │ +23 / 63 │ │ │ │ │ │ │ │ │ │ 12 行目は手短な説明です。従来ターミナルは 1 行(半角)80 文字幅なので、(半角)60 字以上にならないようにしま │ │ │ │ │ しょう。fully GUI-configurable, two-pane X file manager に変更します。 │ │ │ │ │ 13 行目は詳細な説明です。これはパッケージについてより詳しく説明する 1 つの段落であるべきです。各行の先頭 │ │ │ │ │ は空白(スペース文字)で始めます。空白行を入れてはいけませんが、. (半角ピリオド) を 1 つ書くことで、空白 │ │ │ │ │ 行のように見せることができます。説明文の後にも1行以上の空白行を入れてはいけません。⁸ │ │ │ │ │ 6 行目と 7 行目の間に Vcs-* フィールドを追加しバージョン管理システム (VCS) の場所を記録しましょう。⁹ │ │ │ │ │ @@ -1564,15 +1564,15 @@ │ │ │ │ │ ⁸これらの説明は英語です。これらの説明の翻訳は The Debian Description Translation Project - DDTP (http://www.debian.org/intl/l10n/ddtp) によっ │ │ │ │ │ て提供されています。 │ │ │ │ │ ⁹Developer’s Reference, 6.2.5. │ │ │ │ │ ”Version Control System location” (http://www.debian.org/doc/manuals/developers-reference/best-pkgingpractices.html#bpp-vcs) を参照下さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -24 / 62 │ │ │ │ │ +24 / 63 │ │ │ │ │ │ │ │ │ │ LGPL-3, GNU FDL-1.2, GNU FDL-1.3, Apache-2.0, 3-Clause BSD, CC0-1.0, MPL-1.1, MPL-2.0 or the Artistic license), you │ │ │ │ │ can just refer to the appropriate file in the /usr/share/common-licenses/ directory that exists on every Debian system. │ │ │ │ │ Otherwise, you must include the complete license. │ │ │ │ │ つまり、gentoo パッケージの copyright ファイルは以下のようになります: │ │ │ │ │ 1 Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ │ │ │ │ │ 2 Upstream-Name: gentoo │ │ │ │ │ @@ -1631,15 +1631,15 @@ │ │ │ │ │ 1 │ │ │ │ │ 2 │ │ │ │ │ 3 │ │ │ │ │ 4 │ │ │ │ │ 5 │ │ │ │ │ 6 │ │ │ │ │ │ │ │ │ │ -25 / 62 │ │ │ │ │ +25 / 63 │ │ │ │ │ │ │ │ │ │ gentoo (0.9.12-1) unstable; urgency=medium │ │ │ │ │ * Initial release. (Closes: #nnnn) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -- Josip Rodin │ │ │ │ │ @@ -1700,15 +1700,15 @@ │ │ │ │ │ 10もし dch -r コマンドを使ってこの最終変更をする場合には、エディターにより changelog ファイルを明示的に保存して下さい。 │ │ │ │ │ 11Debian Reference, 12.2 ”Make” (http://www.debian.org/doc/manuals/debian-reference/ch12#_make) から Makefile の書き方を学び始められます。 │ │ │ │ │ http://www.gnu.org/software/make/manual/html_node/index.html もしくは non-free のアーカイブエリアにある make-doc パッケージに完全な説 │ │ │ │ │ 明書があります。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -26 / 62 │ │ │ │ │ +26 / 63 │ │ │ │ │ │ │ │ │ │ れに続く TAB コード (ASCII 9) で始まる数行はそのレシピを規定します。空行と # (ハッシュ) で始まる行はコメン │ │ │ │ │ ト行として扱われ無視されます。12 │ │ │ │ │ 実行したいルールは、そのターゲット名をコマンドラインの引数として実行します。例えば、debian/rules │ │ │ │ │ build や fakeroot make -f debian/rules binary は、それぞれ build や binary ターゲットのルールを実 │ │ │ │ │ │ │ │ │ │ 行します。 │ │ │ │ │ @@ -1756,15 +1756,15 @@ │ │ │ │ │ されています。 │ │ │ │ │ 13このターゲットは例えば、項6.1 などで、dpkg-buildpackage が使用します。 │ │ │ │ │ 1⁴このターゲットは例えば、項6.2 などで、dpkg-buildpackage -B が使用します。 │ │ │ │ │ 1⁵このターゲットは、dpkg-buildpackage -A が使用します。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -27 / 62 │ │ │ │ │ +27 / 63 │ │ │ │ │ │ │ │ │ │ 13 #export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed │ │ │ │ │ 14 │ │ │ │ │ 15 │ │ │ │ │ 16 %: │ │ │ │ │ 17 │ │ │ │ │ dh $@ │ │ │ │ │ @@ -1818,15 +1818,15 @@ │ │ │ │ │ 1⁷You can verify the actual sequences of dh_* programs invoked for a given target without really running them by invoking dh target --no-act │ │ │ │ │ or debian/rules -- ’target --no-act’. │ │ │ │ │ 1⁸以下の例は、自動的に python サポートコマンドが起動するのを避けるために、あなたの debian/compat には 9 以下の値が入っていると │ │ │ │ │ 仮定しています。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -28 / 62 │ │ │ │ │ +28 / 63 │ │ │ │ │ │ │ │ │ │ dh_installinit │ │ │ │ │ dh_installmenu │ │ │ │ │ dh_installmime │ │ │ │ │ dh_installmodules │ │ │ │ │ dh_installlogcheck │ │ │ │ │ dh_installlogrotate │ │ │ │ │ @@ -1877,15 +1877,15 @@ │ │ │ │ │ 参照してください。 │ │ │ │ │ 20これらのコマンドは、dh_auto_build --list を実行するとリストされる setup.py のような他のビルド環境もサポートします。 │ │ │ │ │ 21実際には、Makefile 中の distclean、realclean、clean のうち、最初に利用可能なものを探し実行します。 │ │ │ │ │ 22Makefile 中の test か check のうち、最初に利用可能なものを見つけ実行します。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -29 / 62 │ │ │ │ │ +29 / 63 │ │ │ │ │ │ │ │ │ │ • dh_auto_install は、Makefile 中に install ターゲットがあれば、以下のコマンドを通常実行します。(読みや │ │ │ │ │ すくするために畳み込みました)。 │ │ │ │ │ make install \ │ │ │ │ │ DESTDIR=/path/to/package_version-revision/debian/package │ │ │ │ │ │ │ │ │ │ fakeroot コマンドを必要とするターゲットは dh_testroot を含みます。このコマンドは、ルートのふりをしなければ │ │ │ │ │ @@ -1925,15 +1925,15 @@ │ │ │ │ │ プストリームソースにパッチを当てたり外したりできます。 │ │ │ │ │ 23もし、パッケージが /usr/share/perl5/Debian/Debhelper/Sequence/custom_name.pm ファイルをインストールする場合、そ │ │ │ │ │ のカスタマイズの機能を dh $@ --with custom-name で有効にしなければなりません。 │ │ │ │ │ 2⁴dh_pysupport や dh_pycentral コマンドよりも dh_python2 コマンドが好まれます。dh_python コマンドは使用しないでください。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -30 / 62 │ │ │ │ │ +30 / 63 │ │ │ │ │ │ │ │ │ │ – もし新規の 3.0 (quilt) ソースパッケージフォーマットを使用している場合、これは不要です。 │ │ │ │ │ • dh_dkms コマンドのサポートを追加します。 │ │ │ │ │ – Build-Depends に、dkms パッケージを含めます。 │ │ │ │ │ – 代わりに dh $@ --with dkms を使用します。 │ │ │ │ │ – カーネルモジュールパッケージによる DKMS の使用を正しく処理します。 │ │ │ │ │ • dh_autotools-dev_updateconfig と dh_autotools-dev_restoreconfig コマンドのサポートを追加します。 │ │ │ │ │ @@ -1970,15 +1970,15 @@ │ │ │ │ │ えるデフォルトの引数 --sysconfig=/etc を以下のようにしてオーバーライドできます: │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure -- --sysconfig=/etc/gentoo │ │ │ │ │ 2⁵lenny では、dh_* スクリプトの挙動を変えたい場合、rules ファイル内の該当する行を見つけ出し、調整していました。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -31 / 62 │ │ │ │ │ +31 / 63 │ │ │ │ │ │ │ │ │ │ --以 下 の 引 数 は、 自 動 実 行 さ れ る プ ロ グ ラ ム の 引 数 に 付 け 足 さ れ ま す。dh_auto_configure コ マ ン ド は、 引 │ │ │ │ │ 数--sysconfig のみをオーバーライドしその他の良く配慮された ./configure 引数には触れないため、./configure コマンドをここに使うより優れています。 │ │ │ │ │ もしも gentoo のソースをビルドするためにその Makefile に build ターゲットを指定する必要がある場合、こ │ │ │ │ │ れを有効とするため、2⁶override_dh_auto_build ターゲットを作らなければなりません。 │ │ │ │ │ override_dh_auto_build: │ │ │ │ │ dh_auto_build -- build │ │ │ │ │ @@ -2007,15 +2007,15 @@ │ │ │ │ │ │ │ │ │ │ 2⁶引数なしの dh_auto_build は、Makefile の最初のターゲットを実行します。 │ │ │ │ │ 2⁷debian/changelog と debian/NEWS は常に自動でインストールされます。アップストリームの変更履歴は、ファイル名を小文字に変換 │ │ │ │ │ し、changelog、changes、changelog.txt、changes.txt のいずれかと一致するものを見つけます。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -32 / 62 │ │ │ │ │ +32 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 5 │ │ │ │ │ │ │ │ │ │ debian ディレクトリーにあるその他のファ │ │ │ │ │ イル │ │ │ │ │ The dh_make command had major updates since this old document was written. So some parts of this document aren’t applicable │ │ │ │ │ any more. │ │ │ │ │ @@ -2041,15 +2041,15 @@ │ │ │ │ │ 初のバイナリーパッケージへ適用されます。バイナリーパッケージが多数ある場合、package-1.install、 │ │ │ │ │ package-2.install、等のように、パッケージ名を設定ファイルのプリフィックスとすることで指定できます。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 5.1 │ │ │ │ │ │ │ │ │ │ -33 / 62 │ │ │ │ │ +33 / 63 │ │ │ │ │ │ │ │ │ │ README.Debian │ │ │ │ │ │ │ │ │ │ パッケージに関して、何か特別にユーザーに知らせなければならない情報や、オリジナルのソフトウェアと作成し │ │ │ │ │ た Debian パッケージとの相違点があればここに記述します。 │ │ │ │ │ 以下は dh_make がデフォルトとして生成するものです: │ │ │ │ │ gentoo for Debian │ │ │ │ │ @@ -2092,15 +2092,15 @@ │ │ │ │ │ 1dpkg(1) and Debian Policy Manual, ”D.2.5 Conffiles” (http://www.debian.org/doc/debian-policy/ap-pkg-controlfields.html#s-pkg-f-Conffiles) を参照下 │ │ │ │ │ さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 5.4 │ │ │ │ │ │ │ │ │ │ -34 / 62 │ │ │ │ │ +34 / 63 │ │ │ │ │ │ │ │ │ │ package.cron.* │ │ │ │ │ │ │ │ │ │ パッケージが正しく動作するために、定期的にあるタスクを実行する必要がある場合は、これらのファイルで設定 │ │ │ │ │ します。毎時間、毎日、毎週、または指定した時間に定期的タスクを実行するように指定することができます。フ │ │ │ │ │ ァイル名は以下です: │ │ │ │ │ • cron.hourly - /etc/cron.hourly/package としてインストール: 1 時間ごとに実行する。 │ │ │ │ │ @@ -2147,15 +2147,15 @@ │ │ │ │ │ share/doc/doc-base/doc-base.html/index.html にある doc-base のマニュアルを参照してください。 │ │ │ │ │ 追加ドキュメントのインストールについて、詳細は項3.3 を見てください。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 5.7 │ │ │ │ │ │ │ │ │ │ -35 / 62 │ │ │ │ │ +35 / 63 │ │ │ │ │ │ │ │ │ │ docs │ │ │ │ │ │ │ │ │ │ このファイルには、dh_installdocs(1) を使ってパッケージ生成用の一時的なディレクトリーにインストールするため │ │ │ │ │ に、パッケージに付属する資料のファイル名を指定してください。 │ │ │ │ │ デフォルトでは、ソースディレクトリーのトップレベルに存在する BUGS、README*、TODO などの名前を持つファ │ │ │ │ │ イル全てを含みます。 │ │ │ │ │ @@ -2204,15 +2204,15 @@ │ │ │ │ │ │ │ │ │ │ 不要なら、このファイルを削除してください。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 5.11 │ │ │ │ │ │ │ │ │ │ -36 / 62 │ │ │ │ │ +36 / 63 │ │ │ │ │ │ │ │ │ │ install │ │ │ │ │ │ │ │ │ │ パッケージにとってインストールが必要なファイルがあるにも関わらず、make install ではインストールされ │ │ │ │ │ ない場合、そのファイル名とファイルを置く目的地を install ファイルに記述します。そうすると、dh_install(1) │ │ │ │ │ によってそれらのファイルがインストールされます。2 まずは使えそうな別のツールがないかどうかを調べましょ │ │ │ │ │ う。例えば、ドキュメントはこのファイルではなくdocs ファイルにあるべきです。 │ │ │ │ │ @@ -2270,15 +2270,15 @@ │ │ │ │ │ あります。不要なテンプレートファイルを削除するのを忘れないようにしてください。 │ │ │ │ │ 2files ファイルによって、dh_movefiles(1) コマンドが設定され、置換されます。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 5.15.1 │ │ │ │ │ │ │ │ │ │ -37 / 62 │ │ │ │ │ +37 / 63 │ │ │ │ │ │ │ │ │ │ manpage.1.ex │ │ │ │ │ │ │ │ │ │ マニュアルページは通常、nroff(1) で書かれています。manpage.1.ex のテンプレートも nroff で書かれています。 │ │ │ │ │ これらのファイルをどう編集するのかについて、簡単な説明が man(7) にあります。 │ │ │ │ │ 最終的なマニュアルページのファイル名は、解説されているプログラム名を含めなければなりません。ここでは、 │ │ │ │ │ ファイル名を manpage から gentoo に変更しましょう。ファイル名は、.1 というサフィックスも含みます。これ │ │ │ │ │ @@ -2346,15 +2346,15 @@ │ │ │ │ │ • ソースファイルの名前を、gentoo.1.xml のような名前に変更します。 │ │ │ │ │ • docbook-xsl パッケージと xsltproc のような XSLT プロセッサのインストール (推奨) │ │ │ │ │ 3help2man が作成する仮のマニュアルページに、詳細なドキュメントが info システムにあると記載されることに注意して下さい。info ペー │ │ │ │ │ ジ中にコマンドが無い場合は、help2man コマンドが生成したページを手動で修正するべきです。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -38 / 62 │ │ │ │ │ +38 / 63 │ │ │ │ │ │ │ │ │ │ • control ファイルの Build-Depends 行へ、docbook-xsl、docbook-xml、xsltproc の各パッケージを追 │ │ │ │ │ 加します。 │ │ │ │ │ • rules ファイルに override_dh_auto_build ターゲットを追加します: │ │ │ │ │ override_dh_auto_build: │ │ │ │ │ xsltproc --nonet \ │ │ │ │ │ --param make.year.ranges 1 \ │ │ │ │ │ @@ -2402,15 +2402,15 @@ │ │ │ │ │ などの対策を考えるべきです。アップグレード際に メンテナースクリプトで debconf ノートを呼び出したりしてユ │ │ │ │ │ ーザーに迷惑を掛けないでください。 │ │ │ │ │ ⁴{pre,post}{inst,rm} という bash 独自の短縮形をこれらのファイル名の表記としていますが、システムシェルである dash との互換性 │ │ │ │ │ のために、これらのメンテナースクリプトでは純粋な POSIX シンタックスを使うべきです。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -39 / 62 │ │ │ │ │ +39 / 63 │ │ │ │ │ │ │ │ │ │ ucf パッケージは、メンテナースクリプトによって管理されているような conffiles とラベルされていないファイル │ │ │ │ │ に関して、ユーザーによって変更されたファイルを保存する conffile のような処理をする仕組みを提供します。こ │ │ │ │ │ の仕組みを使うとこれらに関する問題を最小化できます。 │ │ │ │ │ これら、メンテナースクリプトはなぜ Debian を選ぶのかという理由の 1 つでもあります。これらの仕組みで、ユー │ │ │ │ │ ザーが迷惑がる原因とならないよう細心の注意をはらいましょう。 │ │ │ │ │ │ │ │ │ │ @@ -2462,15 +2462,15 @@ │ │ │ │ │ │ │ │ │ │ debian/source/format ファイルでは、ソースパッケージのための理想の書式を示すための行があります。(完 │ │ │ │ │ 全なリストは、dpkg-source(1) を参照してください。)squeeze 以降は、以下のどちらかになっているべきです: │ │ │ │ │ • 3.0 (native):ネイティブ Debian パッケージ │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -40 / 62 │ │ │ │ │ +40 / 63 │ │ │ │ │ │ │ │ │ │ • 3.0 (quilt): それ以外の全て。 │ │ │ │ │ 新しい 3.0 (quilt) の書式は quilt パッチによる変更を debian/patches に記録します。そして、その変更は │ │ │ │ │ 自動的にソースパッケージを展開するときに適用されます。⁵Debian の変更は、debian ディレクトリー以下のファ │ │ │ │ │ イル全てを含め、debian.tar.gz アーカイブに保存されています。この新しい書式は、特殊な方法を用いること │ │ │ │ │ なく、PGN アイコンなどのパッケージメンテナーによるバイナリーファイルを含めることが可能です。⁶ │ │ │ │ │ dpkg-source が 3.0 (quilt) の書式でソースパッケージを展開する際、debian/patches/series に列挙され │ │ │ │ │ @@ -2518,15 +2518,15 @@ │ │ │ │ │ ⁵ソースの書式を 3.0 (quilt) や 3.0 (native) に移行する際の注意点などは、DebSrc3.0 (http://wiki.debian.org/Projects/DebSrc3.0) を参照 │ │ │ │ │ 下さい。 │ │ │ │ │ ⁶この新しいフォーマットは、複数のアップストリームの tar アーカイブやこの他の圧縮方法もサポートしています。詳細は本稿の範疇を超 │ │ │ │ │ えるため割愛します。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -41 / 62 │ │ │ │ │ +41 / 63 │ │ │ │ │ │ │ │ │ │ グされます。dpkg-source コマンドは、quilt 形式のパッチデータを quilt パッケージなしで 3.0 (quilt) として │ │ │ │ │ 扱えるので、quilt パッケージを Build-Depends に記載する必要はありません。⁷ │ │ │ │ │ quilt コマンドについては quilt(1) で説明されています。ソースへの変更は、debian/patches ディレクトリー内 │ │ │ │ │ -p1 パッチファイルのスタックとして記録され、debian ディレクトリーの外のソースツリーには触れません。そ │ │ │ │ │ れらのパッチの順番は debian/patches/series ファイルに記録されます。パッチの適用 (=push) も、外す (=pop) │ │ │ │ │ のも、更新 (=refresh) も、簡単にできます。⁸ │ │ │ │ │ @@ -2548,15 +2548,15 @@ │ │ │ │ │ ⁷パッチセットをメンテナンスするためのいくつかの方法が提案され、Debian パッケージで使われていますが、quilt が推奨されています。 │ │ │ │ │ 他には、dpatch、dbs、cdbs、などがあります。これらの方法は、大抵 debian/patches/* ファイルでパッチを管理しています。 │ │ │ │ │ ⁸スポンサーにパッケージのアップロードを頼む時にも、あなたが加えた変更に対するこのような明確な分離とドキュメントは、スポンサ │ │ │ │ │ ーによるパッケージのレビューを促進させるためにも、非常に重要です。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -42 / 62 │ │ │ │ │ +42 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 6 │ │ │ │ │ │ │ │ │ │ パッケージのビルド │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ これでパッケージをビルドする準備が整いました。 │ │ │ │ │ @@ -2586,15 +2586,15 @@ │ │ │ │ │ されているはずです: │ │ │ │ │ 1GPG キーは信頼の網に連結するように Debian デベロッパーによって署名され、the Debian keyring (http://keyring.debian.org) に登録されてい │ │ │ │ │ なければいけません。こうすることで Debian アーカイブにパッケージをアップロードして受け付けられるようになります。Creating a new GPG │ │ │ │ │ key (http://keyring.debian.org/creating-key.html) と Debian Wiki on Keysigning (http://wiki.debian.org/Keysigning ) を参照下さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -43 / 62 │ │ │ │ │ +43 / 63 │ │ │ │ │ │ │ │ │ │ • gentoo_0.9.12.orig.tar.gz │ │ │ │ │ これは単に Debian 標準に合わせるために名前を変更しただけで、中身はオリジナルなソースコードの tar アーカ │ │ │ │ │ イブです。これは元来、dh_make -f ../gentoo-0.9.12.tar.gz で作成されたということを覚えておいてく │ │ │ │ │ ださい。 │ │ │ │ │ • gentoo_0.9.12-1.dsc │ │ │ │ │ これはソースコードの内容の概要です。このファイルはあなたのcontrol ファイルから生成され、dpkg-source(1) │ │ │ │ │ @@ -2640,15 +2640,15 @@ │ │ │ │ │ 23.0 (quilt) ソースフォーマットで quilt パッチを当てないようにするには、上記コマンドに--skip-patches オプションをつけて実行 │ │ │ │ │ します。または、通常の操作の後に、quilt pop -a を実行する方法もあります。 │ │ │ │ │ 3実際のオートビルダーシステムは、本稿の説明よりもかなり複雑なスキームによって実現しています。それらの詳細は、本稿の範囲を超え │ │ │ │ │ るため割愛します。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -44 / 62 │ │ │ │ │ +44 / 63 │ │ │ │ │ │ │ │ │ │ • build-essential パッケージ │ │ │ │ │ • Build-Depends に挙げられているパッケージ (参照項4.1) │ │ │ │ │ そして、ソースディレクトリーで次のコマンドを実行します: │ │ │ │ │ $ dpkg-buildpackage -B │ │ │ │ │ │ │ │ │ │ これは、別のアーキテクチャー上で、アーキテクチャー依存のバイナリーパッケージを生成する作業をすべて行っ │ │ │ │ │ @@ -2684,15 +2684,15 @@ │ │ │ │ │ ⁴pbuilder パッケージとは違い、オートビルダーによって使用される sbuild パッケージ下での chroot 環境では、最小システムを強制し │ │ │ │ │ ないので、多くのパッケージがインストールされたままになるかもしれません。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 6.4 │ │ │ │ │ │ │ │ │ │ -45 / 62 │ │ │ │ │ +45 / 63 │ │ │ │ │ │ │ │ │ │ pbuilder パッケージ │ │ │ │ │ │ │ │ │ │ ビルド依存を確認するためのクリーンルーム (chroot) ビルド環境として、pbuilder パッケージが非常に便利です。 │ │ │ │ │ ⁵ これを使うことで、異なるアーキテクチャー向けに sid 環境オートビルダーの下でのソースからのクリーンな │ │ │ │ │ ビルドが保証され、常に RC (リリースクリティカル) に分類される重要度が serious (深刻) の FTBFS (Fails To Build │ │ │ │ │ From Source、ソースからのビルド失敗) バグを防ぎます。⁶ │ │ │ │ │ @@ -2738,15 +2738,15 @@ │ │ │ │ │ ⁵pbuilder パッケージはまだ進化の過程なので、実際の構成は、最新の公式ドキュメントで確認して下さい。 │ │ │ │ │ ⁶Debian パッケージのオートビルドに関しては http://buildd.debian.org/ を参照下さい。 │ │ │ │ │ ⁷HOOKDIR=/var/cache/pbuilder/hooks をここで仮定しています。フックスクリプトのサンプルは /usr/share/doc/pbuilder/ │ │ │ │ │ examples ディレクトリーににあります。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -46 / 62 │ │ │ │ │ +46 / 63 │ │ │ │ │ │ │ │ │ │ install_packages lintian │ │ │ │ │ echo ”+++ lintian output +++” │ │ │ │ │ su -c ”lintian -i -I --show-overrides /tmp/buildd/*.changes” - pbuilder │ │ │ │ │ # use this version if you don’t want lintian to fail the build │ │ │ │ │ #su -c ”lintian -i -I --show-overrides /tmp/buildd/*.changes; :” - pbuilder │ │ │ │ │ echo ”+++ end of lintian output +++” │ │ │ │ │ @@ -2790,15 +2790,15 @@ │ │ │ │ │ い完全に元通りの手付かずの tar アーカイブを再生成する pristine-tar コマンドを起動します。 │ │ │ │ │ 12以下は、上級者のみなさんの参考になるウェブ上で閲覧できる資料です。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 6.6 │ │ │ │ │ │ │ │ │ │ -47 / 62 │ │ │ │ │ +47 / 63 │ │ │ │ │ │ │ │ │ │ 部分的な再ビルド │ │ │ │ │ │ │ │ │ │ 大規模なパッケージの場合には、debian/rules をちょっといじるたびに、毎回最初からパッケージの再ビルドを │ │ │ │ │ やりなおすのは手間です。テスト目的であれば、以下の方法でアップストリームソースを再ビルドをせずに .deb │ │ │ │ │ ファイルを生成することができます。13: │ │ │ │ │ $ fakeroot debian/rules binary │ │ │ │ │ @@ -2834,15 +2834,15 @@ │ │ │ │ │ • Using Git for Debian Packaging (http://www.eyrie.org/~eagle/notes/debian/git.html) │ │ │ │ │ • git-dpm: Debian packages in Git manager (http://git-dpm.alioth.debian.org/) │ │ │ │ │ 13その場合は、通常だと正しく設定される環境変数は設定されません。アップロード用のパッケージはこの簡易メソッドで生成しないでく │ │ │ │ │ ださい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -48 / 62 │ │ │ │ │ +48 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 7 │ │ │ │ │ │ │ │ │ │ パッケージのエラーの検証 │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ ここでは, 公式アーカイブにパッケージをアップロードする前に、作成したパッケージのエラーをあなた自身で確 │ │ │ │ │ @@ -2885,15 +2885,15 @@ │ │ │ │ │ postinst そして postrm ファイルのこと) は、 │ │ │ │ │ それが debhelper │ │ │ │ │ プログラムで自動生成されたのでない場合は、正しく書くことが非常に困難です。だからあなたが新米メンテナー │ │ │ │ │ ならばこれらは使わないで下さい (項5.18 参照)。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -49 / 62 │ │ │ │ │ +49 / 63 │ │ │ │ │ │ │ │ │ │ パッケージがこれらの重要なメンテナースクリプトを使用するならば、インストールだけではなく、削除、完全削 │ │ │ │ │ 除 (purge)、そしてアップグレードについても確実にテストしましょう。多くのメンテナースクリプトのバグは削除 │ │ │ │ │ もしくは完全削除の場合に発生します。これらのテストのためには、以下の様に dpkg コマンドを実行します: │ │ │ │ │ $ sudo dpkg -r gentoo │ │ │ │ │ $ sudo dpkg -P gentoo │ │ │ │ │ $ sudo dpkg -i gentoo_version-revision_i386.deb │ │ │ │ │ @@ -2937,15 +2937,15 @@ │ │ │ │ │ 1/etc/devscripts.conf や ~/.devscripts において項6.3 で述べた設定をしている場合には、lintian に -i -I --show-overrides │ │ │ │ │ オプションを指定する必要はありません。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ 7.5 │ │ │ │ │ │ │ │ │ │ -50 / 62 │ │ │ │ │ +50 / 63 │ │ │ │ │ │ │ │ │ │ debc コマンド │ │ │ │ │ │ │ │ │ │ debc(1) コマンドを用いるとバイナリーパッケージに含まれるファイルの一覧が得られます。 │ │ │ │ │ $ debc package.changes │ │ │ │ │ │ │ │ │ │ 7.6 │ │ │ │ │ @@ -2982,15 +2982,15 @@ │ │ │ │ │ gz の中身を閲覧することができるファイルマネージャを用いると、多くのファイルの検査が直感的に行なえます。 │ │ │ │ │ 不要なファイルやサイズがゼロのファイルがバイナリーパッケージとソースパッケージに含まれていないことをよ │ │ │ │ │ く確認して下さい。大抵は不要なファイルが正しく削除されずに残ってしまっています。rules を調整しこれを修 │ │ │ │ │ 正して下さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -51 / 62 │ │ │ │ │ +51 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 8 │ │ │ │ │ │ │ │ │ │ パッケージの更新 │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ パッケージをリリースしたなら、すぐにそれを更新する必要があります。 │ │ │ │ │ @@ -3021,15 +3021,15 @@ │ │ │ │ │ • changelog の説明行に、このリビジョンで解決されたバグと、その解決方法についての簡単な説明を記載し、 │ │ │ │ │ Closes: #54321 と続けておきます。これによってあなたのパッケージが Debian アーカイブ中に受け入れられ │ │ │ │ │ た時、アーカイブ管理ソフトウェアによって該当するバグレポートが魔法のように自動的に閉じられます。 │ │ │ │ │ 1日付を要求されるフォーマットで入力するには、LANG=C date -R を使います。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -52 / 62 │ │ │ │ │ +52 / 63 │ │ │ │ │ │ │ │ │ │ • 上記であなたがしたことを繰り返し、必要に応じて Debian changelog ファイルを dch で更新しながら、更なる │ │ │ │ │ バグ修正を行います。 │ │ │ │ │ • 項6.1 と第7章で行ったことを繰り返して下さい。 │ │ │ │ │ • 一旦満足した時点で、changelog 中のディストリビューション値を UNRELEASED からターゲットディストリビ │ │ │ │ │ ューション値 unstable (もしくは場合に依っては experimental) へと変更すべきです。2 │ │ │ │ │ • 第9章と同様にパッケージをアップロードします。今までと違うのは、今回の場合オリジナルソースアーカイブに │ │ │ │ │ @@ -3074,15 +3074,15 @@ │ │ │ │ │ 載しバグを Closes: # バグ番号と追記しクローズします。 │ │ │ │ │ 2もし dch -r コマンドを使ってこの最終変更をする場合には、エディターにより changelog ファイルを明示的に保存して下さい。 │ │ │ │ │ 3も し パ ッ ケ ー ジ foo が 旧 1.0 フ ォ ー マ ッ ト で パ ッ ケ ー ジ さ れ て い る 場 合 は、 新 規 に 展 開 さ れ た ソ ー ス 中 で zcat │ │ │ │ │ /path/to/foo_oldversion.diff.gz|patch -p1 を実行すれば出来ます。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -53 / 62 │ │ │ │ │ +53 / 63 │ │ │ │ │ │ │ │ │ │ • while dquilt push; do dquilt refresh; done として fuzz を削除しながら全てのパッチを適用します。 │ │ │ │ │ もしパッチやマージがクリーンに適用できない場合は、状況を精査します (.rej ファイル中にヒントがあります)。 │ │ │ │ │ • もしソースにあなたが適用していたパッチがアップストリームソースに統合された場合は、 │ │ │ │ │ – dquilt delete として削除します。 │ │ │ │ │ • もしソースにあなたが適用していたパッチが新規アップストリームソースとぶつかる場合は、 │ │ │ │ │ – dquilt push -f として baz.rej としてリジェクトを強制しながら古いパッチを適用します。 │ │ │ │ │ @@ -3126,15 +3126,15 @@ │ │ │ │ │ ⁴もし uscan コマンドが更新されたソースはダウンロードするが uupdate コマンドを実行しない場合には、URL の最後に debian uupdate │ │ │ │ │ となるように debian/watch ファイルを修正するべきです。 │ │ │ │ │ ⁵もしあなたのスポンサーや他のメンテナーが既存のパッケージスタイル更新に異存がある場合には、更新することもまたその議論するこ │ │ │ │ │ とは意味がありません。他にするべきより重要なことがあります。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -54 / 62 │ │ │ │ │ +54 / 63 │ │ │ │ │ │ │ │ │ │ • debian/rules ファイルに関して debhelper v7+ dh シンタックスへとパッケージが更新されていない場合は │ │ │ │ │ dh を使うように更新しましょう。debian/control ファイルもそれに合わせて変更しましょう。 │ │ │ │ │ • コモン Debian ビルドシステム (cdbs) による Makefile 包含メカニズムで生成された rules ファイルを dh シン │ │ │ │ │ タックスに更新しようとする場合には、以下を参照し DEB_* 設定変数を理解して下さい。 │ │ │ │ │ – /usr/share/doc/cdbs/cdbs-doc.pdf.gz のローカルコピー │ │ │ │ │ – The Common Debian Build System (CDBS), FOSDEM 2009 (http://meetings-archive.debian.net/pub/debian-meetings/2009/fosdem/slides/The_Common_Debian_Build_System_CDBS/) │ │ │ │ │ @@ -3175,29 +3175,29 @@ │ │ │ │ │ │ │ │ │ │ パッケージをアップグレードする際の注意点は以下です: │ │ │ │ │ • changelog の旧項目を保全します (自明ですが、dch -i とするべき時に dch とした過去事例があります。) │ │ │ │ │ ⁶splitdiff コマンドを用いると big.diff は多くの小さな増分パッチに分割できます。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -55 / 62 │ │ │ │ │ +55 / 63 │ │ │ │ │ │ │ │ │ │ • 現存の Debian による変更は再評価する必要があります。(何らかの形で) アップストリームが組み込んだことは捨 │ │ │ │ │ て、アップストリームが組み込まなかったことは残しましょう。 │ │ │ │ │ • ビルドシステムに変更が加えられた場合には (アップストリームの変更を精査した際に分かっているはずですよ │ │ │ │ │ ね)、必要に応じて debian/rules と debian/control のビルド依存関係を更新します。 │ │ │ │ │ • 現存もオープンのバグへのパッチを誰かが提供していないかを、 │ │ │ │ │ Debian Bug Tracking System (BTS) (http://www.debian.org/Bugs/) で確認します。 │ │ │ │ │ • 正しいディストリビューションへアップロードすること、Closes フィールドに適切なバグのクローズがリスト │ │ │ │ │ されていること、Maintainer と Changed-By フィールドがマッチしていること、ファイルが GPG 署名されて │ │ │ │ │ いること等を確実にするように、.changes ファイルの内容を確認します。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -56 / 62 │ │ │ │ │ +56 / 63 │ │ │ │ │ │ │ │ │ │ Chapter 9 │ │ │ │ │ │ │ │ │ │ パッケージをアップロードする │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ Debian now requires source-only uploads for normal upload. So this page is outdated. │ │ │ │ │ @@ -3235,15 +3235,15 @@ │ │ │ │ │ 設定に用い、~/.dput.cf ファイルをユーザー毎の設定に用います。更にそれは、そのまま Ubuntu 関連のサービスもサポートします。 │ │ │ │ │ ⁴Debian Developer’s Reference 5.6, ”Uploading a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#upload) を参照下さい。 │ │ │ │ │ ⁵ftp://ftp.upload.debian.org/pub/UploadQueue/README (ftp://ftp.upload.debian.org/pub/UploadQueue/README) を参照下さい。dput パッケージ中 │ │ │ │ │ にある dcut コマンドをこれに代わる方法として用いることもできます。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -57 / 62 │ │ │ │ │ +57 / 63 │ │ │ │ │ │ │ │ │ │ -----BEGIN PGP SIGNED MESSAGE----Hash: SHA1 │ │ │ │ │ Uploader: Foo Bar │ │ │ │ │ Commands: │ │ │ │ │ rm hello_1.0-1_i386.deb │ │ │ │ │ mv hello_1.0-1.dsx hello_1.0-1.dsc │ │ │ │ │ -----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.10 (GNU/Linux) │ │ │ │ │ @@ -3282,104 +3282,110 @@ │ │ │ │ │ $ debuild -v1.2 │ │ │ │ │ │ │ │ │ │ debuild コマンドの場合: │ │ │ │ │ $ pdebuild --debbuildopts ”-v1.2” │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -58 / 62 │ │ │ │ │ +58 / 63 │ │ │ │ │ │ │ │ │ │ Appendix A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +上級パッケージング │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide for Debian Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) として入手できます。この新しい入門書を第一次的な入門書として使ってくださ │ │ │ │ │ い。 │ │ │ │ │ -Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ -to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +あなたが出会いそうな上級パッケージング課題に関するヒントや外部参照をいくつか記します。ここに提案された │ │ │ │ │ +レファレンス全てに目を通すことを切にお薦めします。 │ │ │ │ │ +本章で取り上げたトピックをカバーするには dh_make コマンドで生成されたパッケージ用テンプレートファイル │ │ │ │ │ +ではマニュアル編集する必要があるかもしれません。より新しい debmake コマンドはこのようなトピックへの対応 │ │ │ │ │ +が優れています。 │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +共有ライブラリー │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ +共有 ライブラリー をパッケージングする前に、以下の一次レファレンスを詳細に読むべきです: │ │ │ │ │ • Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ • Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ • Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -• Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -• Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -• Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -• Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ -• Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ -to them from the linked executables. │ │ │ │ │ -• The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -• The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -• The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +以下はあなたが手を付け始めるための少々簡略化しすぎたヒントです: │ │ │ │ │ +• 共有ライブラリーとはコンパイルされたコードを含む ELF オブジェクトファイルです。 │ │ │ │ │ +• 共有ライブラリーは *.so ファイルとして頒布されます。(*.a ファイルでも *.la ファイルでもありません) │ │ │ │ │ +• 主に、共有ライブラリーは ld メカニズムを用い複数の実行プログラム間でコードを共有するのに使用されます。 │ │ │ │ │ +• 時々、共有ライブラリーは dlopen メカニズムを用いある実行プログラムに複数のプラグインを提供するのに使用 │ │ │ │ │ +されます。 │ │ │ │ │ +• 共有ライブラリーは変数や関数やクラスのようなコンパイルされたオブジェクトを表す シンボル をエキスポー │ │ │ │ │ +トし、リンクされた実行プログラムからそれらへのアクセスを可能とします。 │ │ │ │ │ +• 共有ライブラリー libfoo.so.1 の SONAME: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ +• 共有ライブラリーの SONAME は通常ライブラリーのファイル名と一致します (例外もあります)。 │ │ │ │ │ +• /usr/bin/foo にリンクされた共有ライブラリーの SONAME: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ +1もしくは: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +2もしくは: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -59 / 62 │ │ │ │ │ - │ │ │ │ │ -• libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -• The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ -• libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ -• libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ -• Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ -• Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -• Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +59 / 63 │ │ │ │ │ + │ │ │ │ │ +• libfoo1: 共有ライブラリー libfoo.so.1 で SONAME ABI バージョンが 1 のライブラリーパッケージ。3 │ │ │ │ │ +• ライブラリーパッケージのパッケージメンテナースクリプトは SONAME に必要なシンボリックリンクを作成す │ │ │ │ │ +るために特定の環境下で ldconfig を呼ばなければいけません。⁴ │ │ │ │ │ +• libfoo1-dbg: 共有ライブラリー libfoo1 のデバッグシンボルを含むデバッグシンボルパッケージ。 │ │ │ │ │ +• libfoo-dev: 共有ライブラリー libfoo.so.1 用のヘッダーファイル他を含む開発用パッケージ。⁵ │ │ │ │ │ +• Debian パッケージは一般的に *.la Libtool アーカイブファイルを含んではいけません。⁶ │ │ │ │ │ +• Debian パッケージは一般的に RPATH を使うべきではありません。⁷ │ │ │ │ │ +• 少々内容が古くなった二次的なレファレンスですが、Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) はまだ有用かもしれません。 │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +debian/package.symbols の管理 │ │ │ │ │ │ │ │ │ │ -When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ -associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ -library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ +共有ライブラリーをパッケージする際には、同一共有ライブラリーパッケージ名のライブラリーの同一 SONAME の下での後方互換性のある変更に関して、各シンボルと関連付けられる最小のバージョンが記された │ │ │ │ │ +debian/package.symbols ファイルを作成すべきです。⁸ 以下の一次的レファレンスを詳細に読むべきです: │ │ │ │ │ • Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ • dh_makeshlibs(1) │ │ │ │ │ • dpkg-gensymbols(1) │ │ │ │ │ • dpkg-shlibdeps(1) │ │ │ │ │ • deb-symbols(5) │ │ │ │ │ -Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ -libfoo1.symbols file: │ │ │ │ │ -• Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -– If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -– If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1.symbols │ │ │ │ │ -in its source package, use it again. │ │ │ │ │ -– If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ -from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ -for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ +過去バージョン 1.3 のアップストリームバージョンから適切な debian/libfoo1.symbols ファイルを用いて │ │ │ │ │ +libfoo1 パッケージを作成する概略例は以下です: │ │ │ │ │ +• アップストリームの libfoo-1.3.tar.gz ファイルを用いて Debian 化したソースツリーの骨子を準備します。 │ │ │ │ │ +– もし libfoo1 パッケージの最初のパッケージングの場合は、内容が空の debian/libfoo1.symbols ファイ │ │ │ │ │ +ルを作成します。 │ │ │ │ │ +– もし以前のアップストリームバージョン 1.2 が libfoo1 パッケージとして適切な debian/libfoo1. │ │ │ │ │ +symbols を用いてパッケージされていた場合には、それを再び使いましょう。 │ │ │ │ │ +– もし過去のアップストリームバージョン 1.2 が debian/libfoo1.symbols を用いてパッケージされていな │ │ │ │ │ +い場合には、そのライブラリーの同一 SONAME を含む同一共有ライブラリーパッケージ名の全ての手に入る │ │ │ │ │ +バイナリーパッケージ、例えば 1.1-1 と 1.2-1 バージョンから、それを symbols として生成できます。10 │ │ │ │ │ +3Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) を参照下さ │ │ │ │ │ +い。 │ │ │ │ │ +⁴Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) を参照下さい。 │ │ │ │ │ +⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) を参照下さい。 │ │ │ │ │ +⁶Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) を参照下さい。 │ │ │ │ │ +⁷Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) を参照下さい。 │ │ │ │ │ +⁸後方非互換な ABI 変更をした場合、通常、ライブラリーの SONAME と共有ライブラリーパッケージ名を新規なものにそれぞれアップデー │ │ │ │ │ +トしないといけません。 │ │ │ │ │ +⁹C++ ライブラリーや個別シンボルを追跡するのが非常に困難な他の場合には、これに代えて Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ +(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) に従いましょう。 │ │ │ │ │ +10Debian パッケージの過去全てのバージョンは http://snapshot.debian.org/ (http://snapshot.debian.org/) から得られます。パッケージのバックポー │ │ │ │ │ +トが楽にできるように Debian リビジョンはバージョンから取り除きます。: 1.1 << 1.1-1~bpo70+1 << 1.1-1 と 1.2 << 1.2-1~bpo70+1 << │ │ │ │ │ +1.2-1 │ │ │ │ │ + │ │ │ │ │ + Debian 新メンテナーガイド │ │ │ │ │ + │ │ │ │ │ +60 / 63 │ │ │ │ │ + │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ - │ │ │ │ │ - Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -60 / 62 │ │ │ │ │ - │ │ │ │ │ -• Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ -were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ -libfoo1a and you should start over again.) │ │ │ │ │ +• debuild や pdebuild 等のツールを使ってソースツリーのテストビルドをします。(もしシンボルの欠如等でビルド │ │ │ │ │ +がうまく行かない場合には、共有ライブラリーパッケージ名を libfoo1a 等と繰り上げる必要のある何らかの後 │ │ │ │ │ +方非互換な ABI 変更があったので、最初からやり直す必要があります。) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx │ │ │ │ │ @@ -3390,176 +3396,215 @@ │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -• If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ -binary package of the shared library. 11 │ │ │ │ │ +• もし上記のように dpkg-gensymbols によって diff がプリントされるのを発見した場合には、生成された共有ライ │ │ │ │ │ +ブラリーのバイナリーパッケージから適切な symbols ファイルを抽出しましょう。11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -• Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +• debuild や pdebuild のようなツールでリリースパッケージをビルドします。 │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ +上記の例に加えて、更に ABI 互換性を確認し、必要に応じていくつかのシンボルのバージョンを手作業で繰り上げ │ │ │ │ │ +る必要があります。12 │ │ │ │ │ +二次的なレファレンスではありますが、Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) とそ │ │ │ │ │ +こからリンクされているウェブページは有用かもしれません。 │ │ │ │ │ │ │ │ │ │ A.3 │ │ │ │ │ │ │ │ │ │ -Multiarch │ │ │ │ │ +マルチアーチ │ │ │ │ │ │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages (particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in detail: │ │ │ │ │ -• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +Debian wheezy で導入されたマルチアーチ機能は dpkg と apt の中でのバイナリーパッケージのアーキテクチャー │ │ │ │ │ +間サポート (他の組み合わせもありますが、特に i386<->amd64) を統合します。以下のレファレンスを詳細に読 │ │ │ │ │ +んで下さい: │ │ │ │ │ +11Debian リビジョンはパッケージのバックポートを容易にすべく外します: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) を参照下 │ │ │ │ │ +さい。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -Old path │ │ │ │ │ +61 / 63 │ │ │ │ │ + │ │ │ │ │ +• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (アップストリーム) │ │ │ │ │ +• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian の状況) │ │ │ │ │ + │ │ │ │ │ +マルチアーチは共有ライブラリーのインストールパスに i386-linux-gnu や x86_64-linux-gnu 等のトリプレ │ │ │ │ │ +ットを使います。 │ │ │ │ │ +実際のトリプレットパスは、 │ │ │ │ │ +ビルドごとに dpkg-architecture(1) によって動的に $(DEB_HOST_MULTIARCH) │ │ │ │ │ +値として設定されます。例えば、マルチアーチライブラリーをインストールするパスは以下のように変更されます: │ │ │ │ │ +13 │ │ │ │ │ +旧パス │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ -61 / 62 │ │ │ │ │ - │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +i386 マルチアーチパス │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +amd64 マルチアーチパス │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -• a library source libfoo-1.tar.gz │ │ │ │ │ -• a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -• a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ -Package │ │ │ │ │ +以下の場合に関する典型的なパッケージ分割シナリオの例を示します。 │ │ │ │ │ +• ライブラリーソース libfoo-1.tar.gz │ │ │ │ │ +• コンパイラー用の言語で書かれたツールのソース bar-1.tar.gz │ │ │ │ │ +• インタープリター用言語で書かれたツールのソース baz-1.tar.gz │ │ │ │ │ +パッケージ │ │ │ │ │ libfoo1 │ │ │ │ │ -libfoo1-dbg │ │ │ │ │ -libfoo-dev │ │ │ │ │ -libfoo-tools │ │ │ │ │ -libfoo-doc │ │ │ │ │ -bar │ │ │ │ │ -bar-doc │ │ │ │ │ -baz │ │ │ │ │ │ │ │ │ │ Architecture: │ │ │ │ │ any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -all │ │ │ │ │ │ │ │ │ │ Multi-Arch: │ │ │ │ │ same │ │ │ │ │ + │ │ │ │ │ +libfoo1-dbg │ │ │ │ │ + │ │ │ │ │ +any │ │ │ │ │ + │ │ │ │ │ same │ │ │ │ │ + │ │ │ │ │ +libfoo-dev │ │ │ │ │ + │ │ │ │ │ +any │ │ │ │ │ + │ │ │ │ │ same │ │ │ │ │ + │ │ │ │ │ +libfoo-tools │ │ │ │ │ +libfoo-doc │ │ │ │ │ + │ │ │ │ │ +any │ │ │ │ │ +all │ │ │ │ │ + │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ + │ │ │ │ │ +bar │ │ │ │ │ + │ │ │ │ │ +any │ │ │ │ │ + │ │ │ │ │ foreign │ │ │ │ │ + │ │ │ │ │ +bar-doc │ │ │ │ │ +baz │ │ │ │ │ + │ │ │ │ │ +all │ │ │ │ │ +all │ │ │ │ │ + │ │ │ │ │ foreign │ │ │ │ │ foreign │ │ │ │ │ │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ +パッケージ内容 │ │ │ │ │ +共有ライブラリー、同時インストール可能 │ │ │ │ │ +共有ライブラリーデバッグシンボル、同時インスト │ │ │ │ │ +ール可能 │ │ │ │ │ +共有ライブラリーヘッダーファイル他、同時インス │ │ │ │ │ +トール可能 │ │ │ │ │ +実行時サポートプログラム、同時インストール不可 │ │ │ │ │ +共有ライブラリーのドキュメンテーションファイル │ │ │ │ │ +コンパイルされ実行されるプログラムファイル、同 │ │ │ │ │ +時インストール不可 │ │ │ │ │ +プログラムのドキュメンテーションファイル │ │ │ │ │ +インタープリターで実行されるプログラムファイル │ │ │ │ │ │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +開発パッケージは関連した共有ライブラリーへのバージョン番号無しのシンボリックリンクを含んでいるべきで │ │ │ │ │ +す。例えば: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +共有ライブラリーパッケージのビルド │ │ │ │ │ │ │ │ │ │ -You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -• Update debian/control. │ │ │ │ │ -– Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -– Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -– Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ -• Set debian/compat to ”10”. │ │ │ │ │ -• Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ -– Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ -to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -– Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ -– If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ -replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -– Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ -– Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ -target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ +dh(1) を以下のように使えばマルチアーチをサポートするようにして Debian のライブラリーパッケージをビルドで │ │ │ │ │ +きます: │ │ │ │ │ +• debian/control を更新します。 │ │ │ │ │ +– ソースパッケージセクションに Build-Depends: debhelper (>=10) を追加します。 │ │ │ │ │ +– 共有ライブラリーのバイナリーパッケージごとに Pre-Depends: ${misc:Pre-Depends} を追加します。 │ │ │ │ │ +– Multi-Arch: スタンザを各バイナリーパッケージセクション毎に追加します。 │ │ │ │ │ +• debian/compat を”10” と設定します。 │ │ │ │ │ + │ │ │ │ │ +• すべてのパッケージングスクリプトに関して、 │ │ │ │ │ +通常の /usr/lib/ から、 │ │ │ │ │ +マルチアーチの /usr/lib/$(DEB_HOST_MULTI │ │ │ │ │ +へとパスを調整します。 │ │ │ │ │ +13旧来の /lib32/ や /lib64/ 等の特定目的のライブラリーパスは使われなくなっています。 │ │ │ │ │ │ │ │ │ │ Debian 新メンテナーガイド │ │ │ │ │ │ │ │ │ │ -62 / 62 │ │ │ │ │ - │ │ │ │ │ +62 / 63 │ │ │ │ │ + │ │ │ │ │ +– 最初に debian/rules 中で DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIAR │ │ │ │ │ +を呼び DEB_HOST_MULTIARCH 変数を設定します。 │ │ │ │ │ +– debian/rules 中の /usr/lib/ を /usr/lib/$(DEB_HOST_MULTIARCH)/ で置き換えます。 │ │ │ │ │ +– もし debian/rules 中の override_dh_auto_configure ターゲットの一部分として ./configure が用 │ │ │ │ │ +いられている場合には、それを dh_auto_configure -- と置き換えるようにしましょう。1⁴ │ │ │ │ │ +– debian/foo.install ファイル中にある全ての /usr/lib/ を /usr/lib/*/ で置き換えます。 │ │ │ │ │ +– debian/rules 中の override_dh_auto_configure ターゲットにスクリプトを追加し debian/foo.links. │ │ │ │ │ +in から debian/foo.links を動的に生成します。 │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ -All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ -must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ +共有ライブラリーパッケージが期待されるファイルのみを含み、-dev パッケージも依然として動作することを確認 │ │ │ │ │ +しましょう。 │ │ │ │ │ +マルチアーチパッケージとして同時に同一パスにインストールされる全てのファイルはファイルの内容が完全に同 │ │ │ │ │ +じあるべきです。データのバイトオーダーや圧縮アルゴリズムにより生成される相違に注意すべきです。 │ │ │ │ │ │ │ │ │ │ A.5 │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ +ネイティブ Debian パッケージ │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ -You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in 項2.1. │ │ │ │ │ -This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -• Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ +もしパッケージが Debian のためだけとか、またローカル使用のために保守されている場合、そのソースファイルは │ │ │ │ │ +debian/* ファイルすべてをその中に含まれます。それをパッケージするのには 2 つの方法があります。 │ │ │ │ │ +debian/* ファイルを除外したアップストリームターボールを作成し、項2.1 にあるようにしてノンネイティブ │ │ │ │ │ +Debian パッケージできます。これが一部の人に推奨される通常の方法です。 │ │ │ │ │ +この代わりの方法は、ネイティブ Debian パッケージのワークフローです。 │ │ │ │ │ +• 全てのファイルが含まれる単一の圧縮された tar ファイルを用いる 3.0 (native) フォーマットでネイティブの │ │ │ │ │ +Debian ソースパッケージを作成します。 │ │ │ │ │ – package_version.tar.gz │ │ │ │ │ – package_version.dsc │ │ │ │ │ -• Build Debian binary packages from the native Debian source package. │ │ │ │ │ +• ネイティブ Debian ソースパッケージから、Debian バイナリーパッケージをビルドします。 │ │ │ │ │ – package_version_arch.deb │ │ │ │ │ -For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ -package by issuing the dh_make command as follows: │ │ │ │ │ +例えば debian/* ファイルを含まない ~/mypackage-1.0 ソースファイルがあれば、以下のように dh_make コマ │ │ │ │ │ +ンドを用いてネイティブ Debian パッケージが作れます: │ │ │ │ │ $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ -Then the debian directory and its contents are created just like in 項2.8. This does not create a tarball, since this is a native │ │ │ │ │ -Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ +すると、debian ディレクトリーとその内容は項2.8 とちょうど同じように作成されます。これはネイティブ Debian │ │ │ │ │ +パッケージなので tar アーカイブを作りません。しかし相違点はこれだけです。他のパッケージング操作は実質的 │ │ │ │ │ +にまったく同じです。 │ │ │ │ │ +dpkg-buildpackage コマンドを実行した後、親ディレクトリーに以下のファイルが生成します: │ │ │ │ │ + │ │ │ │ │ +1⁴これに代えて、 │ │ │ │ │ +./configure に --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) と --libexecdir=\$${prefix}/lib/$(DEB_HO │ │ │ │ │ +引数を追加することもできます。注意いただきたいのは、ユーザーではなく他のプログラムによりのみ実行される実行プログラムをインス │ │ │ │ │ +トールするデフォルトパスを --libexecdir は設定します。その Autotools のデフォルトは /usr/libexec/ ですが、Debian デフォルトは │ │ │ │ │ +/usr/lib/ です。 │ │ │ │ │ + │ │ │ │ │ + Debian 新メンテナーガイド │ │ │ │ │ + │ │ │ │ │ +63 / 63 │ │ │ │ │ + │ │ │ │ │ • mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ +これは、dpkg-source コマンドにより mypackage-1.0 ディレクトリーから作られたソースコードのターボール │ │ │ │ │ +です。(そのサフィックスは orig.tar.gz ではありません。) │ │ │ │ │ • mypackage_1.0.dsc │ │ │ │ │ -This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +これは、ノンネイティブ Debian パッケージと同様でソースコード内容の要約です。(Debian リビジョンはありま │ │ │ │ │ +せん。) │ │ │ │ │ • mypackage_1.0_i386.deb │ │ │ │ │ -This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +これは、ノンネイティブ Debian パッケージと同様で完成したバイナリーパッケージです。(Debian リビジョンは │ │ │ │ │ +ありません。) │ │ │ │ │ • mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no Debian │ │ │ │ │ -revision.) │ │ │ │ │ +これは、ノンネイティブ Debian パッケージと同様で現パッケージバージョンでの全変更を記述します。(Debian │ │ │ │ │ +リビジョンはありません。) │ │ │ ├── ./usr/share/doc/maint-guide-ja/maint-guide.ja.txt.gz │ │ │ │ ├── maint-guide.ja.txt │ │ │ │ │ @@ -146,20 +146,20 @@ │ │ │ │ │ 8.4. パッケージ化スタイルの更新 │ │ │ │ │ 8.5. UTF-8 変換 │ │ │ │ │ 8.6. パッケージをアップグレードする際の注意点 │ │ │ │ │ 9. パッケージをアップロードする │ │ │ │ │ 9.1. Debian アーカイブへアップロードする │ │ │ │ │ 9.2. アップロード用orig.tar.gzの内容 │ │ │ │ │ 9.3. スキップされたアップロード │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ - A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ +A. 上級パッケージング │ │ │ │ │ + A.1. 共有ライブラリー │ │ │ │ │ + A.2. debian/package.symbols の管理 │ │ │ │ │ + A.3. マルチアーチ │ │ │ │ │ + A.4. 共有ライブラリーパッケージのビルド │ │ │ │ │ + A.5. ネイティブ Debian パッケージ │ │ │ │ │ │ │ │ │ │ 第1章まずは正攻法で始めよう │ │ │ │ │ │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide │ │ │ │ │     for Debian Maintainers として入手できます。この新しい入門書を第一 │ │ │ │ │ 次的な入門書として使ってください。 │ │ │ │ │ │ │ │ │ │ @@ -2877,18 +2877,17 @@ │ │ │ │ │ これら、メンテナースクリプトはなぜ Debian を選ぶのかという理由の │ │ │ │ │     1 つでもあります。これらの仕組みで、ユーザーが迷惑がる原因となら │ │ │ │ │ ないよう細心の注意をはらいましょう。 │ │ │ │ │ │ │ │ │ │ 5.19. package.symbols │ │ │ │ │ │ │ │ │ │ 新米メンテナーにとってはライブラリーのパッケージは容易ではないし │ │ │ │ │ - 、避けるべき行為です。このように言いましたが、もしあなたのパッケ │ │ │ │ │ -    ージがライブラリーを含む場合には、debian/package.symbols ファイル │ │ │ │ │ - を作成すべきです。「Managing debian/package.symbols」を参照下さい │ │ │ │ │ - 。 │ │ │ │ │ +    、避けるべき行為です。このように言いましたが、もしあなたのパッケ │ │ │ │ │ + ージがライブラリーを含む場合には、debian/package.symbols ファイル │ │ │ │ │ + を作成すべきです。「debian/package.symbols の管理」を参照下さい。 │ │ │ │ │ │ │ │ │ │ 5.20. TODO │ │ │ │ │ │ │ │ │ │     dh_installdocs(1)コマンドでインストールします。 │ │ │ │ │ │ │ │ │ │ 5.21. watch │ │ │ │ │ │ │ │ │ │ @@ -4105,139 +4104,139 @@ │ │ │ │ │     ^[85] Debian Developer's Reference 5.6, "Uploading a package" を │ │ │ │ │ 参照下さい。 │ │ │ │ │ │ │ │ │ │ ^[86] ftp://ftp.upload.debian.org/pub/UploadQueue/README を参照下 │ │ │ │ │     さい。dput パッケージ中にある dcut コマンドをこれに代わる方法とし │ │ │ │ │ て用いることもできます。 │ │ │ │ │ │ │ │ │ │ -付録A Advanced packaging │ │ │ │ │ +付録A 上級パッケージング │ │ │ │ │ │ │ │ │ │ 最新の内容とより実用的な例でこの入門書を書き換えたものが Guide │ │ │ │ │     for Debian Maintainers として入手できます。この新しい入門書を第一 │ │ │ │ │ 次的な入門書として使ってください。 │ │ │ │ │ │ │ │ │ │ - Here are some hints and pointers for advanced packaging topics │ │ │ │ │ -    that you are most likely to deal with. You are strongly advised │ │ │ │ │ - to read all the references suggested here. │ │ │ │ │ - │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ + あなたが出会いそうな上級パッケージング課題に関するヒントや外部参 │ │ │ │ │ +    照をいくつか記します。ここに提案されたレファレンス全てに目を通す │ │ │ │ │ + ことを切にお薦めします。 │ │ │ │ │ + │ │ │ │ │ + 本章で取り上げたトピックをカバーするには dh_make コマンドで生成さ │ │ │ │ │ +    れたパッケージ用テンプレートファイルではマニュアル編集する必要が │ │ │ │ │ + あるかもしれません。より新しい debmake コマンドはこのようなトピッ │ │ │ │ │ + クへの対応が優れています。 │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +A.1. 共有ライブラリー │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +    共有ライブラリーをパッケージングする前に、以下の一次レファレンス │ │ │ │ │ + を詳細に読むべきです: │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ │ │ │ │ │     * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    以下はあなたが手を付け始めるための少々簡略化しすぎたヒントです: │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * 共有ライブラリーとはコンパイルされたコードを含む ELF オブジェ │ │ │ │ │ + クトファイルです。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * 共有ライブラリーは *.so ファイルとして頒布されます。(*.a ファ │ │ │ │ │ + イルでも *.la ファイルでもありません) │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * 主に、共有ライブラリーは ld メカニズムを用い複数の実行プログ │ │ │ │ │ + ラム間でコードを共有するのに使用されます。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * 時々、共有ライブラリーは dlopen メカニズムを用いある実行プロ │ │ │ │ │ + グラムに複数のプラグインを提供するのに使用されます。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries export symbols, which represent compiled │ │ │ │ │ - objects such as variables, functions, and classes; and enable │ │ │ │ │ - access to them from the linked executables. │ │ │ │ │ + * 共有ライブラリーは変数や関数やクラスのようなコンパイルされた │ │ │ │ │ + オブジェクトを表すシンボルをエキスポートし、リンクされた実行 │ │ │ │ │ + プログラムからそれらへのアクセスを可能とします。 │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ + * 共有ライブラリー libfoo.so.1 の SONAME: objdump -p libfoo.so. │ │ │ │ │ + 1 | grep SONAME ^[87] │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ + * 共有ライブラリーの SONAME は通常ライブラリーのファイル名と一 │ │ │ │ │ + 致します(例外もあります)。 │ │ │ │ │ │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ - objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ +    * /usr/bin/foo にリンクされた共有ライブラリーの SONAME: objdump │ │ │ │ │ + -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ + * libfoo1: 共有ライブラリー libfoo.so.1 で SONAME ABI バージョ │ │ │ │ │ + ンが 1 のライブラリーパッケージ。^[89] │ │ │ │ │ │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * ライブラリーパッケージのパッケージメンテナースクリプトは │ │ │ │ │ + SONAME に必要なシンボリックリンクを作成するために特定の環境下 │ │ │ │ │ + で ldconfig を呼ばなければいけません。^[90] │ │ │ │ │ │ │ │ │ │ - * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ - debugging symbols for the shared library package libfoo1. │ │ │ │ │ + * libfoo1-dbg: 共有ライブラリー libfoo1 のデバッグシンボルを含 │ │ │ │ │ + むデバッグシンボルパッケージ。 │ │ │ │ │ │ │ │ │ │ - * libfoo-dev: the development package that contains the header │ │ │ │ │ - files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ + * libfoo-dev: 共有ライブラリー libfoo.so.1 用のヘッダーファイル │ │ │ │ │ + 他を含む開発用パッケージ。^[91] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ - in general.^[92] │ │ │ │ │ + * Debian パッケージは一般的に *.la Libtool アーカイブファイルを │ │ │ │ │ + 含んではいけません。^[92] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ + * Debian パッケージは一般的に RPATH を使うべきではありません。^ │ │ │ │ │ + [93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * 少々内容が古くなった二次的なレファレンスですが、Debian │ │ │ │ │ + Library Packaging Guide はまだ有用かもしれません。 │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. debian/package.symbols の管理 │ │ │ │ │ │ │ │ │ │ - When you package a shared library, you should create a debian/ │ │ │ │ │ - package.symbols file to manage the minimal version associated │ │ │ │ │ -    with each symbol for backward-compatible ABI changes under the │ │ │ │ │ - same SONAME of the library for the same shared library package │ │ │ │ │ - name.^[94] You should read the following primary references in │ │ │ │ │ - detail: │ │ │ │ │ + 共有ライブラリーをパッケージする際には、同一共有ライブラリーパッ │ │ │ │ │ + ケージ名のライブラリーの同一 SONAME の下での後方互換性のある変更 │ │ │ │ │ +    に関して、各シンボルと関連付けられる最小のバージョンが記された │ │ │ │ │ + debian/package.symbols ファイルを作成すべきです。^[94] 以下の一次 │ │ │ │ │ + 的レファレンスを詳細に読むべきです: │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 8.6.3 "The symbols system"^[95] │ │ │ │ │ │ │ │ │ │ * dh_makeshlibs(1) │ │ │ │ │ │ │ │ │ │     * dpkg-gensymbols(1) │ │ │ │ │ │ │ │ │ │ * dpkg-shlibdeps(1) │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ - Here is a rough example of how to create the libfoo1 package from │ │ │ │ │ -    the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ - file: │ │ │ │ │ - │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ - │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ - debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ - all available binary packages of the same shared library │ │ │ │ │ - package name containing the same SONAME of the library, for │ │ │ │ │ - example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ + 過去バージョン 1.3 のアップストリームバージョンから適切な debian/ │ │ │ │ │ +    libfoo1.symbols ファイルを用いて libfoo1 パッケージを作成する概略 │ │ │ │ │ + 例は以下です: │ │ │ │ │ + │ │ │ │ │ + * アップストリームの libfoo-1.3.tar.gz ファイルを用いてDebian 化し │ │ │ │ │ + たソースツリーの骨子を準備します。 │ │ │ │ │ + │ │ │ │ │ + + もし libfoo1 パッケージの最初のパッケージングの場合は、内容が │ │ │ │ │ + 空の debian/libfoo1.symbols ファイルを作成します。 │ │ │ │ │ + │ │ │ │ │ + + もし以前のアップストリームバージョン 1.2 が libfoo1 パッケー │ │ │ │ │ + ジとして適切な debian/libfoo1.symbols を用いてパッケージされ │ │ │ │ │ + ていた場合には、それを再び使いましょう。 │ │ │ │ │ + │ │ │ │ │ + + もし過去のアップストリームバージョン 1.2 が debian/ │ │ │ │ │ + libfoo1.symbols を用いてパッケージされていない場合には、その │ │ │ │ │ + ライブラリーの同一 SONAME を含む同一共有ライブラリーパッケー │ │ │ │ │ + ジ名の全ての手に入るバイナリーパッケージ、例えば 1.1-1 と │ │ │ │ │ + 1.2-1 バージョンから、それを symbols として生成できます。^ │ │ │ │ │ + [96] │ │ │ │ │ │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ - * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ - and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ - were some backward-incompatible ABI changes that require you to │ │ │ │ │ - bump the shared library package name to something like libfoo1a │ │ │ │ │ - and you should start over again.) │ │ │ │ │ + * debuild や pdebuild 等のツールを使ってソースツリーのテストビルド │ │ │ │ │ + をします。 (もしシンボルの欠如等でビルドがうまく行かない場合には │ │ │ │ │ + 、共有ライブラリーパッケージ名を libfoo1a 等と繰り上げる必要のあ │ │ │ │ │ + る何らかの後方非互換な ABI 変更があったので、最初からやり直す必要 │ │ │ │ │ + があります。) │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │     $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ @@ -4248,264 +4247,266 @@ │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - * If you see the diff printed by the dpkg-gensymbols as above, │ │ │ │ │ - extract the proper updated symbols file from the generated binary │ │ │ │ │ - package of the shared library. ^[97] │ │ │ │ │ + * もし上記のように dpkg-gensymbols によって diff がプリントされるの │ │ │ │ │ + を発見した場合には、生成された共有ライブラリーのバイナリーパッケ │ │ │ │ │ + ージから適切な symbols ファイルを抽出しましょう。^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * debuild や pdebuild のようなツールでリリースパッケージをビルドし │ │ │ │ │ + ます。 │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ +    上記の例に加えて、更に ABI 互換性を確認し、必要に応じていくつかの │ │ │ │ │ + シンボルのバージョンを手作業で繰り上げる必要があります。^[98] │ │ │ │ │ │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ +    二次的なレファレンスではありますが、Debian wiki UsingSymbolsFiles │ │ │ │ │ + とそこからリンクされているウェブページは有用かもしれません。 │ │ │ │ │ │ │ │ │ │ -A.3. Multiarch │ │ │ │ │ +A.3. マルチアーチ │ │ │ │ │ │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ + Debian wheezy で導入されたマルチアーチ機能は dpkg と apt の中での │ │ │ │ │ +    バイナリーパッケージのアーキテクチャー間サポート (他の組み合わせ │ │ │ │ │ + もありますが、特にi386<->amd64) を統合します。以下のレファレンス │ │ │ │ │ + を詳細に読んで下さい: │ │ │ │ │ │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ + * Ubuntu wiki MultiarchSpec (アップストリーム) │ │ │ │ │     │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ + * Debian wiki Multiarch/Implementation (Debian の状況) │ │ │ │ │ │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ + マルチアーチは共有ライブラリーのインストールパスに i386-linux-gnu │ │ │ │ │ + や x86_64-linux-gnu 等のトリプレットを使います。実際のトリプレッ │ │ │ │ │ +    トパスは、ビルドごとに dpkg-architecture(1) によって動的に $ │ │ │ │ │ + (DEB_HOST_MULTIARCH) 値として設定されます。例えば、マルチアーチラ │ │ │ │ │ + イブラリーをインストールするパスは以下のように変更されます: ^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ + | 旧パス | i386 マルチアーチパス | amd64 マルチアーチパス | │ │ │ │ │     |---------+------------------------+--------------------------| │ │ │ │ │ |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ |---------+------------------------+--------------------------| │ │ │ │ │ |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ +-------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ -    Here are some typical multiarch package split scenario examples │ │ │ │ │ - for the following: │ │ │ │ │ +    以下の場合に関する典型的なパッケージ分割シナリオの例を示します。 │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * ライブラリーソース libfoo-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ +    * コンパイラー用の言語で書かれたツールのソース bar-1.tar.gz │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * インタープリター用言語で書かれたツールのソース baz-1.tar.gz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ + | パッケージ |Architecture:|Multi-Arch:| パッケージ内容 | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + |libfoo1 |any |same |共有ライブラリー、同時イ| │ │ │ │ │ + | | | |ンストール可能 | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ + | | | |共有ライブラリーデバッグ| │ │ │ │ │ + |libfoo1-dbg |any |same |シンボル、同時インストー| │ │ │ │ │ + | | | |ル可能 | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + | | | |共有ライブラリーヘッダー| │ │ │ │ │ + |libfoo-dev |any |same |ファイル他、同時インスト| │ │ │ │ │ + | | | |ール可能 | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ +    |libfoo-tools|any |foreign |実行時サポートプログラム| │ │ │ │ │ + | | | |、同時インストール不可 | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ + |libfoo-doc |all |foreign |共有ライブラリーのドキュ| │ │ │ │ │ + | | | |メンテーションファイル | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + | | | |コンパイルされ実行される| │ │ │ │ │ + |bar |any |foreign |プログラムファイル、同時| │ │ │ │ │ + | | | |インストール不可 | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ + |bar-doc |all |foreign |プログラムのドキュメンテ| │ │ │ │ │ + | | | |ーションファイル | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ + |baz |all |foreign |インタープリターで実行さ| │ │ │ │ │ + | | | |れるプログラムファイル | │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ + 開発パッケージは関連した共有ライブラリーへのバージョン番号無しの │ │ │ │ │ +    シンボリックリンクを含んでいるべきです。例えば: /usr/lib/ │ │ │ │ │ + x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. 共有ライブラリーパッケージのビルド │ │ │ │ │ │ │ │ │ │ -    You can build a Debian library package enabling multiarch support │ │ │ │ │ - using dh(1) as follows: │ │ │ │ │ +    dh(1) を以下のように使えばマルチアーチをサポートするようにして │ │ │ │ │ + Debian のライブラリーパッケージをビルドできます: │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ + * debian/control を更新します。 │ │ │ │ │ │ │ │ │ │ - + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ - section. │ │ │ │ │ + + ソースパッケージセクションに Build-Depends: debhelper (>=10) │ │ │ │ │ + を追加します。 │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + 共有ライブラリーのバイナリーパッケージごとに Pre-Depends: $ │ │ │ │ │ + {misc:Pre-Depends} を追加します。 │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + Multi-Arch: スタンザを各バイナリーパッケージセクション毎に追 │ │ │ │ │ + 加します。 │ │ │ │ │ │ │ │ │ │ - * Set debian/compat to "10". │ │ │ │ │ + * debian/compat を "10" と設定します。 │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ - │ │ │ │ │ - + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ - -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ - debian/rules. │ │ │ │ │ + * すべてのパッケージングスクリプトに関して、通常の /usr/lib/ から、 │ │ │ │ │ + マルチアーチの /usr/lib/$(DEB_HOST_MULTIARCH)/ へとパスを調整しま │ │ │ │ │ + す。 │ │ │ │ │ │ │ │ │ │ - + If ./configure is used in part of the │ │ │ │ │ - override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ - to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ - │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ - + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ - dynamically by adding a script to the │ │ │ │ │ - override_dh_auto_configure target in debian/rules. │ │ │ │ │ + + 最初に debian/rules 中で DEB_HOST_MULTIARCH ?= $(shell │ │ │ │ │ + dpkg-architecture -qDEB_HOST_MULTIARCH) を呼び │ │ │ │ │ +    DEB_HOST_MULTIARCH 変数を設定します。 │ │ │ │ │ + │ │ │ │ │ + + debian/rules 中の /usr/lib/ を /usr/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ + / で置き換えます。 │ │ │ │ │ + │ │ │ │ │ + + もし debian/rules 中の override_dh_auto_configure ターゲット │ │ │ │ │ + の一部分として ./configure が用いられている場合には、それを │ │ │ │ │ + dh_auto_configure -- と置き換えるようにしましょう。^[100] │ │ │ │ │ + │ │ │ │ │ + + debian/foo.install ファイル中にある全ての /usr/lib/ を /usr/ │ │ │ │ │ + lib/*/ で置き換えます。 │ │ │ │ │ + │ │ │ │ │ + + debian/rules 中の override_dh_auto_configure ターゲットにスク │ │ │ │ │ + リプトを追加し debian/foo.links.in から debian/foo.links を動 │ │ │ │ │ + 的に生成します。 │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ - │ │ │ │ │ - All files installed simultaneously as the multiarch package to │ │ │ │ │ -    the same file path should have exactly the same file content. You │ │ │ │ │ - must be careful of differences generated by the data byte order │ │ │ │ │ - and by the compression algorithm. │ │ │ │ │ - │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ - │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ - │ │ │ │ │ - You can make the upstream tarball by excluding the debian/* files │ │ │ │ │ -    and package it as a non-native Debian package as in 「Debian パッ │ │ │ │ │ - ケージビルドのワークフロー」. This is the normal way, which some │ │ │ │ │ - people encourage using. │ │ │ │ │ - │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ - │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ +    共有ライブラリーパッケージが期待されるファイルのみを含み、-dev パ │ │ │ │ │ + ッケージも依然として動作することを確認しましょう。 │ │ │ │ │ + │ │ │ │ │ + マルチアーチパッケージとして同時に同一パスにインストールされる全 │ │ │ │ │ +    てのファイルはファイルの内容が完全に同じあるべきです。データのバ │ │ │ │ │ + イトオーダーや圧縮アルゴリズムにより生成される相違に注意すべきで │ │ │ │ │ + す。 │ │ │ │ │ + │ │ │ │ │ +A.5. ネイティブ Debian パッケージ │ │ │ │ │ + │ │ │ │ │ + もしパッケージが Debian のためだけとか、またローカル使用のために │ │ │ │ │ +    保守されている場合、そのソースファイルは debian/* ファイルすべて │ │ │ │ │ + をその中に含まれます。それをパッケージするのには2つの方法がありま │ │ │ │ │ + す。 │ │ │ │ │ + │ │ │ │ │ + debian/* ファイルを除外したアップストリームターボールを作成し、「 │ │ │ │ │ +    Debian パッケージビルドのワークフロー」にあるようにしてノンネイテ │ │ │ │ │ + ィブ Debian パッケージできます。これが一部の人に推奨される通常の │ │ │ │ │ + 方法です。 │ │ │ │ │ + │ │ │ │ │ +    この代わりの方法は、ネイティブ Debian パッケージのワークフローで │ │ │ │ │ + す。 │ │ │ │ │ + │ │ │ │ │ + * 全てのファイルが含まれる単一の圧縮された tar ファイルを用いる │ │ │ │ │ + 3.0 (native) フォーマットでネイティブの Debian ソースパッケー │ │ │ │ │ + ジを作成します。 │ │ │ │ │ │ │ │ │ │     + package_version.tar.gz │ │ │ │ │ + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ + * ネイティブ Debian ソースパッケージから、Debian バイナリーパッ │ │ │ │ │ + ケージをビルドします。 │ │ │ │ │ │ │ │ │ │ + package_version_arch.deb │ │ │ │ │ │ │ │ │ │ - For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │ -    the debian/* files, you can create a native Debian package by │ │ │ │ │ - issuing the dh_make command as follows: │ │ │ │ │ + 例えば debian/* ファイルを含まない ~/mypackage-1.0 ソースファイル │ │ │ │ │ +    があれば、以下のように dh_make コマンドを用いてネイティブ Debian │ │ │ │ │ + パッケージが作れます: │ │ │ │ │ │ │ │ │ │     $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ - Then the debian directory and its contents are created just like │ │ │ │ │ - in 「最初のノンネイティブ Debian パッケージ」. This does not │ │ │ │ │ -    create a tarball, since this is a native Debian package. But that │ │ │ │ │ - is the only difference. The rest of the packaging activities are │ │ │ │ │ - practically the same. │ │ │ │ │ + すると、debian ディレクトリーとその内容は「最初のノンネイティブ │ │ │ │ │ + Debian パッケージ」とちょうど同じように作成されます。これはネイテ │ │ │ │ │ +    ィブ Debian パッケージなので tar アーカイブを作りません。しかし相 │ │ │ │ │ + 違点はこれだけです。他のパッケージング操作は実質的にまったく同じ │ │ │ │ │ + です。 │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    dpkg-buildpackage コマンドを実行した後、親ディレクトリーに以下の │ │ │ │ │ + ファイルが生成します: │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + これは、dpkg-source コマンドにより mypackage-1.0 ディレクトリ │ │ │ │ │ + ーから作られたソースコードのターボールです。(そのサフィックス │ │ │ │ │ + は orig.tar.gz ではありません。) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.dsc │ │ │ │ │ │ │ │ │ │ - This is a summary of the contents of the source code, as in │ │ │ │ │ - the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ + これは、ノンネイティブ Debian パッケージと同様でソースコード │ │ │ │ │ + 内容の要約です。(Debian リビジョンはありません。) │ │ │ │ │     │ │ │ │ │ * mypackage_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ - This is your completed binary package, as in the non-native │ │ │ │ │ - Debian package. (There is no Debian revision.) │ │ │ │ │ + これは、ノンネイティブ Debian パッケージと同様で完成したバイ │ │ │ │ │ + ナリーパッケージです。(Debian リビジョンはありません。) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + これは、ノンネイティブ Debian パッケージと同様で現パッケージ │ │ │ │ │ + バージョンでの全変更を記述します。(Debian リビジョンはありま │ │ │ │ │ + せん。) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] もしくは: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] もしくは: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] Debian Policy Manual, 8.1 "Run-time shared libraries" を参 │ │ │ │ │ + 照下さい。 │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] Debian Policy Manual, 8.1.1 "ldconfig" を参照下さい。 │ │ │ │ │ │ │ │ │ │     ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ + Policy Manual, 8.4 "Development files" を参照下さい。 │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] Debian wiki ReleaseGoals/LAFileRemoval を参照下さい。 │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] Debian wiki RpathIssue を参照下さい。 │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ + ^[94] 後方非互換な ABI 変更をした場合、通常、ライブラリーの │ │ │ │ │ +    SONAME と共有ライブラリーパッケージ名を新規なものにそれぞれアップ │ │ │ │ │ + デートしないといけません。 │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ + ^[95] C++ ライブラリーや個別シンボルを追跡するのが非常に困難な他 │ │ │ │ │ +    の場合には、これに代えて Debian Policy Manual, 8.6.4 "The shlibs │ │ │ │ │ + system" に従いましょう。 │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] Debian パッケージの過去全てのバージョンは http:// │ │ │ │ │ +    snapshot.debian.org/ から得られます。パッケージのバックポートが楽 │ │ │ │ │ + にできるように Debian リビジョンはバージョンから取り除きます。: │ │ │ │ │ + 1.1 << 1.1-1~bpo70+1 << 1.1-1 と 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +    ^[97] Debian リビジョンはパッケージのバックポートを容易にすべく外 │ │ │ │ │ + します: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ - changes". │ │ │ │ │ +    ^[98] Debian Policy Manual, 8.6.2 "Shared library ABI changes" を │ │ │ │ │ + 参照下さい。 │ │ │ │ │ │ │ │ │ │ -    ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ - lib64/ are not used anymore. │ │ │ │ │ +    ^[99] 旧来の /lib32/ や /lib64/ 等の特定目的のライブラリーパスは │ │ │ │ │ + 使われなくなっています。 │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] これに代えて、./configure に --libdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) と --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) 引数を追加することもできます。注意いただきた │ │ │ │ │ +    いのは、ユーザーではなく他のプログラムによりのみ実行される実行プ │ │ │ │ │ + ログラムをインストールするデフォルトパスを --libexecdir は設定し │ │ │ │ │ + ます。その Autotools のデフォルトは /usr/libexec/ ですが、Debian │ │ │ │ │ + デフォルトは /usr/lib/ です。 ├── maint-guide-ru_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1568 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 625312 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 630656 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: maint-guide-ru │ │ │ │ Source: maint-guide │ │ │ │ Version: 1.2.53 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Osamu Aoki │ │ │ │ -Installed-Size: 1054 │ │ │ │ +Installed-Size: 1066 │ │ │ │ Suggests: debian-policy, developers-reference, devscripts, dh-make, doc-base, dupload | dput, fakeroot, lintian, pbuilder, quilt │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://www.debian.org/doc/devel-manuals#maint-guide │ │ │ │ Description: Debian New Maintainers' Guide (Russian) │ │ │ │ This package contains the Debian New Maintainers' Guide. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1223 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39733 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/advanced.ru.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 45211 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/advanced.ru.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 43879 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/build.ru.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 22374 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/checkit.ru.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 75828 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/dother.ru.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 75858 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/dother.ru.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 94433 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/dreq.ru.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 65333 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/first.ru.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25592 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/index.ru.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25724 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/index.ru.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 28675 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/modify.ru.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 41680 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/start.ru.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 38452 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/update.ru.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 14002 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/upload.ru.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 470223 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/maint-guide.ru.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 70032 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/maint-guide.ru.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 14064 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/html/upload.ru.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 474123 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/maint-guide.ru.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 70873 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-ru/maint-guide.ru.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 617 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-ru.maint-guide-ru │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-ru │ │ │ ├── ./usr/share/doc/maint-guide-ru/html/advanced.ru.html │ │ │ │ ├── ./usr/share/doc/maint-guide-ru/html/advanced.ru.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Приложение A. Advanced packaging │ │ │ │ │ + Приложение A. Углублённое пакетирование │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + Заметим, что пакет для разработчика должен содержать символьную ссылку на │ │ │ │ │ +соответствующую общую библиотеку │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + без номера │ │ │ │ │ +версии │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + . Пример: │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ You can build a Debian library package enabling multiarch support using │ │ │ │ │ │ │ │ │ │ @@ -935,15 +943,15 @@ │ │ │ │ │ │ │ │ │ │ as follows: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ +

Проверьте, что пакет с общей библиотекой содержит только ожидаемые файлы и │ │ │ │ │ +что ваши пакеты -dev ещё работают.

│ │ │ │ │

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ path should have exactly the same file content. You must be careful of │ │ │ │ │ differences generated by the data byte order and by the compression │ │ │ │ │ algorithm.

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + Если пакет сопровождается только для Debian или, возможно, предназначен │ │ │ │ │ +только для локального использования, то файлы │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + можно хранить прямо его в исходном коде. Есть два способа его пакетирования. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ You can make the upstream tarball by excluding the │ │ │ │ │ debian/* │ │ │ │ │ files and package it as a non-native Debian │ │ │ │ │ package as in │ │ │ │ │ Раздел 2.1, «Порядок сборки пакета Debian» │ │ │ │ │ . This is the normal way, which │ │ │ │ │ some people encourage using. │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

Альтернативный способ сборки родного пакета Debian:

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ - 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + создание родного пакета Debian с исходным кодом в формате │ │ │ │ │ + 3.0 │ │ │ │ │ +(native) │ │ │ │ │ + , состоящем из одного сжатого файла tar, в который │ │ │ │ │ +включены все файлы │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + пакет │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + версия │ │ │ │ │ │ │ │ │ │ .tar.gz │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + пакет │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + версия │ │ │ │ │ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    сборка двоичных пакетов Debian из родного пакета Debian с исходным кодом

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - package │ │ │ │ │ + пакет │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - version │ │ │ │ │ + версия │ │ │ │ │ │ │ │ │ │ _ │ │ │ │ │ │ │ │ │ │ - arch │ │ │ │ │ + архитектура │ │ │ │ │ │ │ │ │ │ .deb │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │ @@ -1209,37 +1217,37 @@ │ │ │ │ │ just like in │ │ │ │ │ Раздел 2.8, «Начальный неродной пакет Debian» │ │ │ │ │ . This does not create a │ │ │ │ │ tarball, since this is a native Debian package. But that is the only │ │ │ │ │ difference. The rest of the packaging activities are practically the same. │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - After execution of the │ │ │ │ │ + После выполнения команды │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + , вы увидите │ │ │ │ │ +следующие файлы в родительском каталоге: │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ mypackage_1.0.tar.gz │ │ │ │ │

      │ │ │ │ │

      │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ + Это сжатый архив tar с исходным кодом, созданный из каталога │ │ │ │ │ mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + командой │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + (его суффикс не │ │ │ │ │ orig.tar.gz │ │ │ │ │ - .) │ │ │ │ │ + ). │ │ │ │ │

      │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ mypackage_1.0.dsc │ │ │ │ │

      │ │ │ │ │

      This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ @@ -1252,29 +1260,29 @@ │ │ │ │ │

      This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ (There is no Debian revision.)

      │ │ │ │ │
    • │ │ │ │ │
    • │ │ │ │ │

      │ │ │ │ │ mypackage_1.0_i386.changes │ │ │ │ │

      │ │ │ │ │ -

      This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

      │ │ │ │ │ +

      Содержит описание всех изменений, сделанных в текущей версии пакета, такой │ │ │ │ │ +же как для неродного пакета Debian (в имени нет редакции Debian).

      │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Либо: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1287,15 +1295,15 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Либо: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1308,130 +1316,132 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ -libraries" │ │ │ │ │ + Смотрите │ │ │ │ │ + руководство по политике Debian, │ │ │ │ │ +раздел 8.1 «Общие библиотеки времени выполнения» │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1.1 │ │ │ │ │ -"ldconfig" │ │ │ │ │ + Смотрите │ │ │ │ │ + руководство по политике Debian, │ │ │ │ │ +раздел 8.1.1 «ldconfig» │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.3 "Static │ │ │ │ │ -libraries" │ │ │ │ │ - and │ │ │ │ │ - Debian Policy Manual, 8.4 │ │ │ │ │ -"Development files" │ │ │ │ │ + Смотрите │ │ │ │ │ + руководство по политике Debian, раздел │ │ │ │ │ +8.3 «Статические библиотеки» │ │ │ │ │ + и │ │ │ │ │ + руководство │ │ │ │ │ +по политике Debian, раздел 8.4 «Файлы для разработки» │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ + Смотрите │ │ │ │ │ + Debian wiki │ │ │ │ │ +ReleaseGoals/LAFileRemoval │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian wiki RpathIssue │ │ │ │ │ + Смотрите │ │ │ │ │ + вики Debian RpathIssue │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + При обратно несовместимых изменениях ABI обычно требуется обновить SONAME │ │ │ │ │ +библиотеки и поменять имя пакета общей библиотеки на новое. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + Вместо указанного для библиотек C++ и в других случаях, где слежение за │ │ │ │ │ +отдельными символами слишком сложно, прочтите │ │ │ │ │ + руководство по политике Debian, раздел 8.6.4 │ │ │ │ │ +«Система shlibs» │ │ │ │ │ + . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + Все предыдущие версии пакетов Debian доступны по │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + . Для облегчения │ │ │ │ │ +переноса пакета в старые выпуски часть, отвечающая за версию Debian, │ │ │ │ │ +отбрасывается: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ - and │ │ │ │ │ + и │ │ │ │ │ 1.2 │ │ │ │ │ << │ │ │ │ │ 1.2-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.2-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + Для облегчения переноса пакета в старые выпуски часть, отвечающая за версию │ │ │ │ │ +Debian, отбрасывается: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ -library ABI changes" │ │ │ │ │ + Смотрите │ │ │ │ │ + руководство по политике Debian, │ │ │ │ │ +раздел 8.6.2 «Изменения ABI общей библиотеки» │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + Или же вы можете добавить параметры │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + и │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + в │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + . Заметим, что в │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + задаётся путь по умолчанию для установки │ │ │ │ │ +исполняемых программ, запускаемых другими программами, а не │ │ │ │ │ +пользователями. Значение Autotools по умолчанию равно │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + , но значение Debian по умолчанию равно │ │ │ │ │ /usr/lib/ │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-ru/html/upload.ru.html │ │ │ │ ├── ./usr/share/doc/maint-guide-ru/html/upload.ru.html │ │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ │ Глава 9. Отправка пакета │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-ru/maint-guide.ru.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -32,22 +32,22 @@ │ │ │ │ │ │ │ │ │ │ WRITTEN BY │ │ │ │ │ │ │ │ │ │ Джосип Родин, │ │ │ │ │ Осаму Аоки, │ │ │ │ │ L10N-russian │ │ │ │ │ │ │ │ │ │ -25 января 2025 г. │ │ │ │ │ +28 февраля 2026 г. │ │ │ │ │ │ │ │ │ │ Russian │ │ │ │ │ Translation │ │ │ │ │ │ │ │ │ │ SIGNATURE │ │ │ │ │ │ │ │ │ │ -25 января 2025 г. │ │ │ │ │ +28 февраля 2026 г. │ │ │ │ │ │ │ │ │ │ REVISION HISTORY │ │ │ │ │ NUMBER │ │ │ │ │ │ │ │ │ │ DATE │ │ │ │ │ │ │ │ │ │ DESCRIPTION │ │ │ │ │ @@ -357,27 +357,27 @@ │ │ │ │ │ │ │ │ │ │ Включение файла orig.tar.gz для отправки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ Пропущенные отправки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A Углублённое пакетирование │ │ │ │ │ │ │ │ │ │ 57 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ -A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ +A.1 Общие библиотеки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ +A.2 Управление debian/пакет.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 │ │ │ │ │ +A.3 Мультиархитектурность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ +A.4 Сборка пакета с общей библиотекой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 │ │ │ │ │ +A.5 Родной пакет Debian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -1 / 61 │ │ │ │ │ +1 / 62 │ │ │ │ │ │ │ │ │ │ Глава 1 │ │ │ │ │ │ │ │ │ │ Хорошее начало —половина дела │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -408,15 +408,15 @@ │ │ │ │ │ 1В документе предполагается, что вы используете jessie или более новую версию. Если у вас старая версия (включая старые выпуски Ubuntu и │ │ │ │ │ т.д.), установите современные версии пакетов dpkg и debhelper из специального репозитория (backports). │ │ │ │ │ 2О том, как работать с системой Debian, можно найти в справочнике Debian (http://www.debian.org/doc/manuals/debian-reference/) . В нём также │ │ │ │ │ содержатся ссылки на материалы по программированию в системах Unix. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -2 / 61 │ │ │ │ │ +2 / 62 │ │ │ │ │ │ │ │ │ │ – Вы не можете указывать другим что делать. │ │ │ │ │ – Вы сами должны быть заинтересованы что-то делать. │ │ │ │ │ • Движущая сила —дружественное сотрудничество. │ │ │ │ │ – Ваш вклад не должен перенапрягать остальных. │ │ │ │ │ – Ваш вклад полезен, если так посчитают остальные. │ │ │ │ │ • Debian —это не школа, где вы автоматически получите внимание учителей. │ │ │ │ │ @@ -449,15 +449,15 @@ │ │ │ │ │ • Сайт нового сопровождающего Debian (https://nm.debian.org/) (официальный) │ │ │ │ │ • Список ответов на часто задаваемые вопросы наставникам Debian (http://wiki.debian.org/DebianMentorsFaq) (дополнительно) │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 1.2 │ │ │ │ │ │ │ │ │ │ -3 / 61 │ │ │ │ │ +3 / 62 │ │ │ │ │ │ │ │ │ │ Программы, необходимые для разработки │ │ │ │ │ │ │ │ │ │ Перед тем как начать, нужно убедиться, что установлены все необходимые для разработки пакеты. Обратите внимание, что приведённый ниже список не содержит пакеты, помеченные как обязательные (essential) или требуемые │ │ │ │ │ (required) —считается, что эти пакеты уже установлены на вашей машине. │ │ │ │ │ The following packages come with the standard Debian installation, so you probably have them already (along with any additional │ │ │ │ │ packages they depend on). Still, you should check them with aptitude show package or with dpkg -s package. │ │ │ │ │ @@ -491,15 +491,15 @@ │ │ │ │ │ • pbuilder - this package contains programs which are used for creating and maintaining a chroot environment. Building │ │ │ │ │ a Debian package in this chroot environment verifies the proper build dependency and avoids FTBFS (Fails To Build From │ │ │ │ │ Source) bugs. (see pbuilder(8) and pdebuild(1)) │ │ │ │ │ 3Существуют также похожие, более специализированные пакеты, такие как dh-make-perl, dh-make-php и т.д. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -4 / 61 │ │ │ │ │ +4 / 62 │ │ │ │ │ │ │ │ │ │ • perl —один из наиболее используемых интерпретируемых языков в Unix-системах. Его часто называют «Unix’s Swiss │ │ │ │ │ Army Chainsaw» (швейцарской армейской пилой) (смотрите perl(1)). │ │ │ │ │ • python —ещё один из наиболее используемых интерпретируемых языков в Debian, который объединяет необычайную │ │ │ │ │ мощь с очень понятным синтаксисом (смотрите python(1)). │ │ │ │ │ • quilt —пакет помогает управлять большими наборами заплат, отслеживая каждое сделанное изменение. Заплаты │ │ │ │ │ логически организуются в стек, и вы можете накладывать их, откатывать изменения, обновлять их и т.д. (смотрите │ │ │ │ │ @@ -535,15 +535,15 @@ │ │ │ │ │ The following is an alternative tutorial document that you may read along with this document: │ │ │ │ │ • Учебник Debian по пакетированию (http://www.debian.org/doc/packaging-manuals/packaging-tutorial/packaging-tutorial) │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 1.4 │ │ │ │ │ │ │ │ │ │ -5 / 61 │ │ │ │ │ +5 / 62 │ │ │ │ │ │ │ │ │ │ Где искать помощь │ │ │ │ │ │ │ │ │ │ Before you decide to ask your question in some public place, please read this fine documentation: │ │ │ │ │ • файлы в /usr/share/doc/пакет для всех используемых пакетов │ │ │ │ │ • содержимое man команда для всех используемых команд │ │ │ │ │ • содержимое info команда для всех используемых команд │ │ │ │ │ @@ -569,15 +569,15 @@ │ │ │ │ │ will start to use your package, and if you made some critical error you’ll get mailbombed by numerous angry Debian users…Just │ │ │ │ │ kidding. :-) │ │ │ │ │ Отдохните и приготовьтесь получать сообщения об ошибках, так как много чего ещё нужно сделать для того, чтобы пакет │ │ │ │ │ полностью соответствовал политике Debian (ещё раз, прочитайте имеющуюся документацию). Успехов! │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -6 / 61 │ │ │ │ │ +6 / 62 │ │ │ │ │ │ │ │ │ │ Глава 2 │ │ │ │ │ │ │ │ │ │ Первые шаги │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -612,15 +612,15 @@ │ │ │ │ │ «Version» │ │ │ │ │ (http://www.debian.org/doc/debian-policy/chcontrolfields.html#s-f-Version) . Значение архитектуры пакета задаётся согласно политике Debian в разделе 5.6.8, «Architecture» (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture) и автоматически назначается в процессе сборки пакета. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 2.2 │ │ │ │ │ │ │ │ │ │ -7 / 61 │ │ │ │ │ +7 / 62 │ │ │ │ │ │ │ │ │ │ Выбор программы │ │ │ │ │ │ │ │ │ │ Вы, вероятно, уже выбрали пакет, который хотите создать. Первое, что вам необходимо сделать, это проверить, нет ли │ │ │ │ │ уже этого пакета в архиве дистрибутива, используя: │ │ │ │ │ • команду aptitude │ │ │ │ │ • веб-страницу пакетов Debian (http://www.debian.org/distrib/packages) │ │ │ │ │ @@ -655,15 +655,15 @@ │ │ │ │ │ nobody is maintaining. │ │ │ │ │ • У программы обязательно должна быть лицензия. │ │ │ │ │ 3See Debian Developer’s Reference 5.9.5 ”Adopting a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#adopting) . │ │ │ │ │ ⁴С другой стороны, всегда будут появляться новые программы, которые хотелось бы иметь в виде пакета. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -8 / 61 │ │ │ │ │ +8 / 62 │ │ │ │ │ │ │ │ │ │ – Для секции main политика Debian требует, чтобы программа удовлетворяла критериям Debian по определению │ │ │ │ │ Свободного ПО (DFSG (http://www.debian.org/social_contract#guidelines) ) и не зависела от пакетов вне main для │ │ │ │ │ компиляции или выполнения. Это предпочтительный вариант. │ │ │ │ │ – Для секции contrib она должна удовлетворять DFSG, но может зависеть от пакетов вне main для компиляции или │ │ │ │ │ выполнения. │ │ │ │ │ – Для секции non-free она может не удовлетворять DFSG, но должна быть распространяема. │ │ │ │ │ @@ -699,15 +699,15 @@ │ │ │ │ │ – любой пакет со сложными сценариями сопровождающего │ │ │ │ │ Пакетирование пакетов повышенной сложности не слишком трудно, но требует больше знаний. Вы должны найти нужное │ │ │ │ │ руководство для каждой сложной функции. Например, для некоторых языков есть своя документация с политикой: │ │ │ │ │ • Политика для Perl (http://www.debian.org/doc/packaging-manuals/perl-policy/) │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -9 / 61 │ │ │ │ │ +9 / 62 │ │ │ │ │ │ │ │ │ │ • Политика для Python (http://www.debian.org/doc/packaging-manuals/python-policy/) │ │ │ │ │ • Политика для Java (http://www.debian.org/doc/packaging-manuals/java-policy/) │ │ │ │ │ There is another old Latin saying: fabricando fit faber (practice makes perfect). It is highly recommended to practice and experiment │ │ │ │ │ with all the steps of Debian packaging with simple packages while reading this tutorial. A trivial upstream tarball, hello-sh-1. │ │ │ │ │ 0.tar.gz, created as follows may offer a good starting point:⁵ │ │ │ │ │ $ mkdir -p hello-sh/hello-sh-1.0; cd hello-sh/hello-sh-1.0 │ │ │ │ │ @@ -758,15 +758,15 @@ │ │ │ │ │ ⁷Для этой программы пакет уже создан. В текущей версии (http://packages.qa.debian.org/g/gentoo.html) в качестве структуры сборки используется │ │ │ │ │ Autotools и, следовательно, есть различия с приводимыми примерами, которые были написаны для версии 0.9.12. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 2.4 │ │ │ │ │ │ │ │ │ │ -10 / 61 │ │ │ │ │ +10 / 62 │ │ │ │ │ │ │ │ │ │ Простые системы сборки │ │ │ │ │ │ │ │ │ │ В простых программах обычно используется файл Makefile и для компиляции достаточно выполнить команду make⁸. │ │ │ │ │ Некоторые из них поддерживают команду make check, по которой выполняется самопроверка. Установка в каталог │ │ │ │ │ назначения обычно выполняется с помощью make install. │ │ │ │ │ Теперь скомпилируйте программу и попробуйте её запустить, чтобы убедиться, что она правильно работает и что при │ │ │ │ │ @@ -822,15 +822,15 @@ │ │ │ │ │ use it. │ │ │ │ │ 10Вы можете это автоматизировать с помощью пакета dh-autoreconf. Смотрите Раздел 4.4.3. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 2.6 │ │ │ │ │ │ │ │ │ │ -11 / 61 │ │ │ │ │ +11 / 62 │ │ │ │ │ │ │ │ │ │ Имя и версия пакета │ │ │ │ │ │ │ │ │ │ Если оригинальный исходный код программы содержится в файле gentoo-0.9.12.tar.gz, то в качестве (исходного) │ │ │ │ │ имени пакета можно взять gentoo, а в качестве версии исходной программы —0.9.12. Имя и версия используются │ │ │ │ │ в файле debian/changelog, который описан далее в Раздел 4.3. │ │ │ │ │ Although this simple approach works most of the time, you may need to adjust package name and upstream version by renaming │ │ │ │ │ @@ -871,15 +871,15 @@ │ │ │ │ │ 1⁵Строками версий могут быть версия исходной программы (версия), редакция Debian (редакция) или версия (версия-редакция). │ │ │ │ │ Смотрите в Раздел 8.1 как увеличивается значение редакции Debian. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 2.7 │ │ │ │ │ │ │ │ │ │ -12 / 61 │ │ │ │ │ +12 / 62 │ │ │ │ │ │ │ │ │ │ Настройка dh_make │ │ │ │ │ │ │ │ │ │ Для указания вашего адреса электронной почты и имени, которые будут использоваться в пакетах инструментами сопровождения Debian, настройте переменные окружения $DEBEMAIL и $DEBFULLNAME 1⁶: │ │ │ │ │ $ cat >>~/.bashrc < │ │ │ │ │ 4 Source: http://sourceforge.net/projects/gentoo/files/ │ │ │ │ │ @@ -1458,15 +1458,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -- Josip Rodin │ │ │ │ │ │ │ │ │ │ Mon, 22 Mar 2010 00:37:31 +0100 │ │ │ │ │ │ │ │ │ │ - 25 / 61 │ │ │ │ │ + 25 / 62 │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ (номера строк добавлены для наглядности) │ │ │ │ │ Line 1 is the package name, version, distribution, and urgency. The name must match the source package name; distribution │ │ │ │ │ should be unstable, and urgency should be set to medium unless there is any particular reason for other values. │ │ │ │ │ Lines 3-5 are a log entry, where you document changes made in this package revision (not the upstream changes —there is a │ │ │ │ │ @@ -1524,15 +1524,15 @@ │ │ │ │ │ 10Если для выполнения изменения вы используете команду dch -r, то убедитесь, что записали файл changelog именно редактором. │ │ │ │ │ 11You can start learning how to write a Makefile from Debian Reference, 12.2. ”Make” (http://www.debian.org/doc/manuals/debian-reference/ch12#_make) . The full documentation is available as http://www.gnu.org/software/make/manual/html_node/index.html or as the make-doc package in the │ │ │ │ │ non-free archive area. │ │ │ │ │ 12В руководстве по политике Debian, раздел 4.9 «Главный сценарий сборки: debian/rules» (http://www.debian.org/doc/debian-policy/ch-source.html#sdebianrules) этот файл описан подробно. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -26 / 61 │ │ │ │ │ +26 / 62 │ │ │ │ │ │ │ │ │ │ • Цель build служит для сборки исходного кода в скомпилированные программы и отформатированные документы в │ │ │ │ │ дереве сборки (требуемая). │ │ │ │ │ • Цель build-arch служит для сборки исходного кода в независящие от архитектуры скомпилированные программы │ │ │ │ │ в дереве сборки (требуемая). │ │ │ │ │ • Цель build-indep служит для сборки исходного кода в независящие от архитектуры отформатированные документы │ │ │ │ │ в дереве сборки (требуемая). │ │ │ │ │ @@ -1580,15 +1580,15 @@ │ │ │ │ │ Строку 4 можно раскомментировать, установив значение переменной DH_VERBOSE равным 1. При этом команда dh будет выводить команды dh_*, которые она выполняет. Также, здесь вы можете добавить строку export DH_OPTIONS=-v. │ │ │ │ │ 13Эта цель используется dpkg-buildpackage как описано в Раздел 6.1. │ │ │ │ │ 1⁴Эта цель используется dpkg-buildpackage -B, как описано в Раздел 6.2. │ │ │ │ │ 1⁵Эта цель используется dpkg-buildpackage -A. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -27 / 61 │ │ │ │ │ +27 / 62 │ │ │ │ │ │ │ │ │ │ В этом случае каждая команда dh_* будет выводить все команды, которые она выполняет. Это помогает понять что в действительности происходит в этом простом файле rules и при решении проблем. Новая команда dh является основной │ │ │ │ │ инструментов debhelper и не скрывает своих действий от вас. │ │ │ │ │ Lines 16 and 17 are where all the work is done with an implicit rule using the pattern rule. The percent sign means ”any targets”, │ │ │ │ │ which then call a single program, dh, with the target name. 1⁶ The dh command is a wrapper script that runs appropriate sequences │ │ │ │ │ of dh_* programs depending on its argument. 1⁷ │ │ │ │ │ • При запуске debian/rules clean выполняется команда dh clean, которая запускает другие: │ │ │ │ │ @@ -1639,15 +1639,15 @@ │ │ │ │ │ on the debhelper package and does not obfuscate the package building process as the cdbs package tends to do. │ │ │ │ │ 1⁷You can verify the actual sequences of dh_* programs invoked for a given target without really running them by invoking dh target --no-act │ │ │ │ │ or debian/rules -- ’target --no-act’. │ │ │ │ │ 1⁸В следующем примере предполагается, что ваш debian/compat содержит значение, равное 9 или более, что позволяет избежать автоматического вызова команд поддержки python. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -28 / 61 │ │ │ │ │ +28 / 62 │ │ │ │ │ │ │ │ │ │ dh_perl │ │ │ │ │ dh_usrlocal │ │ │ │ │ dh_link │ │ │ │ │ dh_compress │ │ │ │ │ dh_fixperms │ │ │ │ │ dh_strip │ │ │ │ │ @@ -1686,15 +1686,15 @@ │ │ │ │ │ 20These commands support other build environments, such as setup.py, which can be listed by executing dh_auto_build --list in a package source │ │ │ │ │ directory. │ │ │ │ │ 21В действительности, в Makefile ищется и выполняется первая из доступных целей: distclean, realclean или clean. │ │ │ │ │ 22В действительности, в Makefile ищется и выполняется первая из доступных целей: test или check. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -29 / 61 │ │ │ │ │ +29 / 62 │ │ │ │ │ │ │ │ │ │ Цели, которым требуется команда fakeroot, содержат dh_testroot. Если вы не притворитесь root с помощью этой команды, │ │ │ │ │ то выполнение завершится с ошибкой. │ │ │ │ │ Важно учесть, что файл rules, созданный dh_make, это только предложение. Он будет работать для большинства пакетов, но в более сложных случаях не бойтесь изменять его под ваши нужды. │ │ │ │ │ Хотя цель install не является обязательной, она всё равно поддерживается. Команда fakeroot dh install работает также как fakeroot dh binary, но останавливается после dh_fixperms. │ │ │ │ │ │ │ │ │ │ 4.4.3 │ │ │ │ │ @@ -1731,15 +1731,15 @@ │ │ │ │ │ – Вместо dh $@ используйте dh $@ --with dkms. │ │ │ │ │ 23Если с пакетом устанавливается файл /usr/share/perl5/Debian/Debhelper/Sequence/своё_имя.pm, то вам нужно активировать │ │ │ │ │ его функцию доработки командой dh $@ --with своё_имя. │ │ │ │ │ 2⁴Команда dh_python2 предпочтительнее, чем dh_pysupport или dh_pycentral. Не используйте команду dh_python. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -30 / 61 │ │ │ │ │ +30 / 62 │ │ │ │ │ │ │ │ │ │ – Это команда позволяет корректно использовать DKMS для пакетов с модулями ядра. │ │ │ │ │ • Добавление поддержки команд dh_autotools-dev_updateconfig и dh_autotools-dev_restoreconfig: │ │ │ │ │ – В Build-Depends укажите пакет autotools-dev. │ │ │ │ │ – Вместо dh $@ используйте dh $@ --with autotools-dev. │ │ │ │ │ – Эта команда обновляет и восстанавливает config.sub и config.guess. │ │ │ │ │ • Добавление поддержки команд dh_autoreconf и dh_autoreconf_clean: │ │ │ │ │ @@ -1776,15 +1776,15 @@ │ │ │ │ │ override_dh_auto_build: │ │ │ │ │ dh_auto_build -- build │ │ │ │ │ 2⁵В lenny, если вы хотите изменить поведение сценария dh_*, нужно найти соответствующую строку в файле rules правил и изменить её. │ │ │ │ │ 2⁶Программа dh_auto_build без аргументов выполняет правила первой цели в Makefile: │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -31 / 61 │ │ │ │ │ +31 / 62 │ │ │ │ │ │ │ │ │ │ Это гарантирует выполнение $(MAKE) со всеми аргументами по умолчанию, заданными в командах dh_auto_build и │ │ │ │ │ аргументе build. │ │ │ │ │ Если Makefile из исходного кода gentoo требует от вас указания цели packageclean для очистки пакета Debian, а │ │ │ │ │ не distclean или clean, то для этого можно создать цель override_dh_auto_clean. │ │ │ │ │ override_dh_auto_clean: │ │ │ │ │ $(MAKE) packageclean │ │ │ │ │ @@ -1803,15 +1803,15 @@ │ │ │ │ │ override_dh_* и полностью независимыми целями. │ │ │ │ │ │ │ │ │ │ 2⁷Файлы debian/changelog и debian/NEWS всегда устанавливаются автоматически. Файл журнала ищется сопоставлением имён файлов, │ │ │ │ │ приведённых к нижнему регистру и совпадением их с именами changelog, changes, changelog.txt и changes.txt. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -32 / 61 │ │ │ │ │ +32 / 62 │ │ │ │ │ │ │ │ │ │ Глава 5 │ │ │ │ │ │ │ │ │ │ Другие файлы в каталоге debian/ │ │ │ │ │ The dh_make command had major updates since this old document was written. So some parts of this document aren’t applicable │ │ │ │ │ any more. │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian │ │ │ │ │ @@ -1840,15 +1840,15 @@ │ │ │ │ │ │ │ │ │ │ В этот файл записывается любая дополнительная информация, а также различия между программой из пакета Debian и │ │ │ │ │ исходной программой. │ │ │ │ │ Программа dh_make создала файл, похожий на этот: │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -33 / 61 │ │ │ │ │ +33 / 62 │ │ │ │ │ │ │ │ │ │ gentoo for Debian │ │ │ │ │ ---------------- │ │ │ │ │ -- Josip Rodin , Wed, 11 Nov 1998 21:02:14 +0100 │ │ │ │ │ │ │ │ │ │ Если вам нечего сюда написать, удалите этот файл. Смотрите dh_installdocs(1). │ │ │ │ │ │ │ │ │ │ @@ -1890,15 +1890,15 @@ │ │ │ │ │ • пакет.cron.hourly —устанавливается как /etc/cron.hourly/пакет; выполняется один раз в час. │ │ │ │ │ • пакет.cron.daily —устанавливается как /etc/cron.daily/пакет; выполняется один раз в день. │ │ │ │ │ • пакет.cron.weekly —устанавливается как /etc/cron.weekly/пакет; выполняется один раз в неделю. │ │ │ │ │ 1Смотрите dpkg(1) и руководство по политике Debian, раздел «D.2.5 Conffiles» (http://www.debian.org/doc/debian-policy/ap-pkg-controlfields.html#spkg-f-Conffiles) . │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -34 / 61 │ │ │ │ │ +34 / 62 │ │ │ │ │ │ │ │ │ │ • пакет.cron.monthly —устанавливается как /etc/cron.monthly/пакет; выполняется один раз в месяц. │ │ │ │ │ • пакет.cron.d —устанавливается как /etc/cron.d/пакет; выполняется в любое другое время. │ │ │ │ │ Большинство этих файлов являются сценариями оболочки, за исключением пакет.cron.d, который должен иметь формат crontab(5). │ │ │ │ │ Для архивирования журнальных файлов никаких файлов cron.* задавать ненужно —для этого есть другие средства │ │ │ │ │ (смотрите dh_installlogrotate(1) и logrotate(8)). │ │ │ │ │ │ │ │ │ │ @@ -1949,15 +1949,15 @@ │ │ │ │ │ README.gtkrc │ │ │ │ │ TODO │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 5.8 │ │ │ │ │ │ │ │ │ │ -35 / 61 │ │ │ │ │ +35 / 62 │ │ │ │ │ │ │ │ │ │ Файлы emacsen-* │ │ │ │ │ │ │ │ │ │ В этом файле указываются файлы для Emacs, которые могут быть скомпилированы во время установки пакета. │ │ │ │ │ Они устанавливаются во временный каталог при помощи dh_installemacsen(1). │ │ │ │ │ Если они вам не нужны, удалите их. │ │ │ │ │ │ │ │ │ │ @@ -2003,15 +2003,15 @@ │ │ │ │ │ путь. Такой формат, обычно, используется для большого пакета, в котором результат сборки разбивается на несколько │ │ │ │ │ двоичных пакетов; список устанавливаемых файлов помещается в соответствующий файл пакет-1.install, пакет-2.insta │ │ │ │ │ и т.д. │ │ │ │ │ Если команда dh_install не находит файлы в текущем каталоге, то она ищет их в debian/tmp (или в любом другом │ │ │ │ │ месте, указанном в --sourcedir). │ │ │ │ │ 2Этот файл заменяет устаревшую команду dh_movefiles(1), которая настраивается с помощью файла files. │ │ │ │ │ │ │ │ │ │ - 36 / 61 │ │ │ │ │ + 36 / 62 │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 5.12 │ │ │ │ │ │ │ │ │ │ Файл пакет.info │ │ │ │ │ │ │ │ │ │ @@ -2091,15 +2091,15 @@ │ │ │ │ │ Например, макросы man │ │ │ │ │ Программы, обычно запускаемые только │ │ │ │ │ суперпользователем │ │ │ │ │ Нестандартные вызовы и внутреннее устройство │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -37 / 61 │ │ │ │ │ +37 / 62 │ │ │ │ │ │ │ │ │ │ Таким образом, справочная страница для gentoo должна называться gentoo.1. Если в исходном коде нет справочной │ │ │ │ │ страницы gentoo.1, то её нужно создать путём переименовывания шаблона manpage.1.ex в gentoo.1 и затем │ │ │ │ │ изменить его, используя информацию из примера и документации к исходной программе. │ │ │ │ │ Также, вы можете использовать команду help2man для генерации справочной страницы, которая для создания использует │ │ │ │ │ результат запуска команды с параметрами --help и --version 3. │ │ │ │ │ │ │ │ │ │ @@ -2149,15 +2149,15 @@ │ │ │ │ │ 3Заметим, что в шаблоне справочной страницы из help2man утверждается, что более подробная документация приведена в справочной системе │ │ │ │ │ info. Если для команды нет страницы info, то вам нужно изменить справочную страницу, созданную командой help2man. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 5.17 │ │ │ │ │ │ │ │ │ │ -38 / 61 │ │ │ │ │ +38 / 62 │ │ │ │ │ │ │ │ │ │ Файл NEWS │ │ │ │ │ │ │ │ │ │ Этот файл устанавливается командой dh_installchangelogs(1). │ │ │ │ │ │ │ │ │ │ 5.18 │ │ │ │ │ │ │ │ │ │ @@ -2204,15 +2204,15 @@ │ │ │ │ │ package) to watch the site where you originally got the source. This is also used by the Debian Package Tracker (https://tracker.debian.org/) service. │ │ │ │ │ Вот его содержимое: │ │ │ │ │ ⁴Несмотря на то, что здесь используется сокращённое выражение bash для обозначения этих файлов в виде {pre|post}{inst|rm}, в сценариях │ │ │ │ │ сопровождающего рекомендуется использовать только синтаксис POSIX для лучшей совместимости с системной оболочкой dash. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -39 / 61 │ │ │ │ │ +39 / 62 │ │ │ │ │ │ │ │ │ │ # b’’уb’’b’’пb’’b’’рb’’b’’аb’’b’’вb’’b’’лb’’b’’яb’’b’’юb’’b’’щb’’b’’иb’’b’’йb’’ b’’фb’’b’ ←’аb’’b’’йb’’b’’лb’’ watch b’’дb’’b’’лb’’b’’яb’’ uscan │ │ │ │ │ version=3 │ │ │ │ │ http://sf.net/gentoo/gentoo-(.+)\.tar\.gz debian uupdate │ │ │ │ │ │ │ │ │ │ Обычно, с указанного в файле watch URL http://sf.net/gentoo скачивается страница и в ней ищутся ссылки вида │ │ │ │ │ . Базовое имя (часть за последним /) каждой найденной ссылки сравнивается с шаблоном регулярного │ │ │ │ │ @@ -2256,15 +2256,15 @@ │ │ │ │ │ ⁵Обзор перехода на новые форматы пакетов 3.0 (quilt) и 3.0 (native) с исходным кодом смотрите в DebSrc3.0 (http://wiki.debian.org/Projects/DebSrc3.0) . │ │ │ │ │ ⁶Фактически, новый формат также позволяет использовать несколько tar-архивов исходной программы и дополнительные методы сжатия. Описание этого выходит за рамки данного документа. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 5.24 │ │ │ │ │ │ │ │ │ │ -40 / 61 │ │ │ │ │ +40 / 62 │ │ │ │ │ │ │ │ │ │ Файл source/options │ │ │ │ │ │ │ │ │ │ Автоматически генерируемые файлы в дереве исходного кода могут немного раздражать при пакетировании, так как изза них генерируются бесполезные большие файлы заплат. Для решения этой проблемы есть специальные модули, такие │ │ │ │ │ как dh_autoreconf, описанные в Раздел 4.4.3. │ │ │ │ │ При создании пакета с исходным кодом вы можете указать регулярное выражение Perl в параметре --extend-diff-ignore │ │ │ │ │ для dpkg-source(1), чтобы игнорировать изменения в автоматически генерируемых файлах. │ │ │ │ │ @@ -2303,15 +2303,15 @@ │ │ │ │ │ ⁷Для управления набором заплат в пакетировании Debian были предложены и применяется несколько методов. Система quilt —предпочтительная │ │ │ │ │ система сопровождения. Также есть dpatch, dbs, cdbs и другие. Многие из них хранят заплаты в файлах debian/patches/*. │ │ │ │ │ ⁸Если вы просите поручителя загрузить ваш пакет, такое чёткое разделение и документирование ваших изменений очень важно для ускорения │ │ │ │ │ проверки пакета поручителем. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -41 / 61 │ │ │ │ │ +41 / 62 │ │ │ │ │ │ │ │ │ │ Глава 6 │ │ │ │ │ │ │ │ │ │ Сборка пакета │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -2341,15 +2341,15 @@ │ │ │ │ │ каталоге (~/gentoo): │ │ │ │ │ 1Для подключения к доверенному веб (web of trust) этот ключ GPG должен быть подписан разработчиком Debian и должен быть зарегистрирован в │ │ │ │ │ связке ключей Debian (http://keyring.debian.org) . Это позволяет закачивать пакеты для приёма в архивы Debian. Смотрите Создание нового ключа GPG │ │ │ │ │ (http://keyring.debian.org/creating-key.html) и вики Debian по подписыванию ключами (http://wiki.debian.org/Keysigning ) . │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -42 / 61 │ │ │ │ │ +42 / 62 │ │ │ │ │ │ │ │ │ │ • gentoo_0.9.12.orig.tar.gz │ │ │ │ │ This is the original upstream source code tarball, merely renamed to the above so that it adheres to the Debian standard. Note │ │ │ │ │ that this was created initially by the command dh_make -f ../gentoo-0.9.12.tar.gz. │ │ │ │ │ • gentoo_0.9.12-1.dsc │ │ │ │ │ Этот файл содержит информацию о содержимом исходного кода. Он файл генерируется из вашего файла control и │ │ │ │ │ используется при распаковке пакета с исходным кодом с помощью dpkg-source(1). │ │ │ │ │ @@ -2386,15 +2386,15 @@ │ │ │ │ │ • пакет build-essential и │ │ │ │ │ 2Вы можете избежать наложения заплат quilt в формате исходного кода 3.0 (quilt) в конце извлечения, указав параметр --skip-patches. │ │ │ │ │ Или же вы можете выполнить quilt pop -a после обычной распаковки. │ │ │ │ │ 3На самом деле, работа системы autobuilder гораздо сложнее, однако её детальное описание не для этого документа. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -43 / 61 │ │ │ │ │ +43 / 62 │ │ │ │ │ │ │ │ │ │ • пакеты, перечисленные в поле Build-Depends (смотрите Раздел 4.1). │ │ │ │ │ Затем в каталоге с исходным кодом вызывается команда │ │ │ │ │ $ dpkg-buildpackage -B │ │ │ │ │ │ │ │ │ │ Она делает всё необходимое для сборки пакетов для данной архитектуры. А именно: │ │ │ │ │ • очистку дерева исходного кода (debian/rules clean) │ │ │ │ │ @@ -2434,15 +2434,15 @@ │ │ │ │ │ Давайте настроим пакет pbuilder следующим образом: │ │ │ │ │ ⁴В отличие от пакета pbuilder,окружение chroot из пакета sbuild, который используется системой autobuilder, не требует минимальной системы и допускает наличие установленных пакетов, не являющихся необходимыми. │ │ │ │ │ ⁵Так как пакет pbuilder всё ещё развивается, за подробностями настройки обратитесь к его официальной документации. │ │ │ │ │ ⁶Более полная информация по автоматической сборке пакетов Debian приведена в http://buildd.debian.org/. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -44 / 61 │ │ │ │ │ +44 / 62 │ │ │ │ │ │ │ │ │ │ • дадим пользователю право записи в каталог /var/cache/pbuilder/result │ │ │ │ │ • создадим каталог для размещения сценариев, например, /var/cache/pbuilder/hooks, доступный пользователю для │ │ │ │ │ записи. │ │ │ │ │ • добавим в файл ~/.pbuilderrc или в /etc/pbuilderrc следующие строки: │ │ │ │ │ AUTO_DEBSIGN=${AUTO_DEBSIGN:-no} │ │ │ │ │ HOOKDIR=/var/cache/pbuilder/hooks │ │ │ │ │ @@ -2494,15 +2494,15 @@ │ │ │ │ │ share/doc/pbuilder/examples. │ │ │ │ │ ⁸Есть некоторые ограничения для такого обновления пакета из stable. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 6.5 │ │ │ │ │ │ │ │ │ │ -45 / 61 │ │ │ │ │ +45 / 62 │ │ │ │ │ │ │ │ │ │ git-buildpackage command and similar │ │ │ │ │ │ │ │ │ │ Если автор программы применяет систему управления кодом ⁹, то и вы можете использовать её возможности. Это упрощает слияние и выборку заплат для исходного кода. Для каждой VCS существуют специализированные инструменты, │ │ │ │ │ позволяющие производить сборку пакетов Debian: │ │ │ │ │ • git-buildpackage: инструменты для пакетирования в репозиториях Git. │ │ │ │ │ • svn-buildpackage: вспомогательные программы для сопровождения пакетов Debian в Subversion. │ │ │ │ │ @@ -2545,15 +2545,15 @@ │ │ │ │ │ 13Environment variables that are normally configured to proper values are not set by this method. Never create real packages to be uploaded using this quick │ │ │ │ │ method. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 6.7 │ │ │ │ │ │ │ │ │ │ -46 / 61 │ │ │ │ │ +46 / 62 │ │ │ │ │ │ │ │ │ │ Иерархия команд │ │ │ │ │ │ │ │ │ │ Вот краткая сводка команд, которые объединяются в единую систему для сборки пакетов. Есть много способов сделать │ │ │ │ │ одно и тоже. │ │ │ │ │ • debian/rules = сценарий сопровождающего для сборки пакета │ │ │ │ │ • dpkg-buildpackage = ключевой инструмент сборки пакета │ │ │ │ │ @@ -2565,15 +2565,15 @@ │ │ │ │ │ • gbp = управление исходным кодом Debian в репозитории git │ │ │ │ │ • gbp buildpackge = pbuilder + dpkg-buildpackage + gbp │ │ │ │ │ Хотя высокоуровневые команды, такие как gbp buildpackge и pbuilder, предоставляют замечательную среду сборки │ │ │ │ │ пакета, необходимо понимать какие нижележащие команды, такие как debian/rules и dpkg-buildpackage, в них используются. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -47 / 61 │ │ │ │ │ +47 / 62 │ │ │ │ │ │ │ │ │ │ Глава 7 │ │ │ │ │ │ │ │ │ │ Проверка пакета на наличие ошибок │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -2612,15 +2612,15 @@ │ │ │ │ │ Проверка сценариев сопровождающего пакета │ │ │ │ │ │ │ │ │ │ Все сценарии сопровождающего (preinst, prerm, postinst и postrm) сложны в написании, если только для их автоматической генерации не применялись программы из пакета debhelper. Поэтому не пользуйтесь этими сценариями, │ │ │ │ │ если вы начинающий сопровождающий (смотрите Раздел 5.18). │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -48 / 61 │ │ │ │ │ +48 / 62 │ │ │ │ │ │ │ │ │ │ Если ваш пакет использует эти нетривиальные сценарии сопровождающего, убедитесь, что не только установка, но и │ │ │ │ │ удаление, вычистка и обновление пакета также проходят успешно. Многие ошибки в таких сценариях проявляются при │ │ │ │ │ удалении или вычистке. Для проверки используйте команду dpkg: │ │ │ │ │ $ sudo dpkg -r gentoo │ │ │ │ │ $ sudo dpkg -P gentoo │ │ │ │ │ $ sudo dpkg -i gentoo_b’’вb’’b’’еb’’b’’рb’’b’’сb’’b’’иb’’b’’яb’’-b’’рb’’b’’еb’’b’ ←’дb’’b’’аb’’b’’кb’’b’’цb’’b’’иb’’b’’яb’’_i386.deb │ │ │ │ │ @@ -2660,15 +2660,15 @@ │ │ │ │ │ 1Вам не потребуется указывать параметр lintian -i -I --show-overrides, если вы настроили файл настройки /etc/devscripts.conf │ │ │ │ │ или ~/.devscripts, как это было описано в Раздел 6.3. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 7.5 │ │ │ │ │ │ │ │ │ │ -49 / 61 │ │ │ │ │ +49 / 62 │ │ │ │ │ │ │ │ │ │ Команда debc │ │ │ │ │ │ │ │ │ │ Вы можете просмотреть список файлов в двоичном пакете Debian с помощью команды debc(1). │ │ │ │ │ $ debc b’’пb’’b’’аb’’b’’кb’’b’’еb’’b’’тb’’.changes │ │ │ │ │ │ │ │ │ │ 7.6 │ │ │ │ │ @@ -2701,15 +2701,15 @@ │ │ │ │ │ как *.udeb, *.debian.tar.gz, *.diff.gz и *.orig.tar.gz. │ │ │ │ │ Внимательно следите за лишними ненужными файлами или файлами нулевой длины как в двоичном пакете, так и в пакете │ │ │ │ │ с исходным кодом. Зачастую, мусор не вычищается должным образом; подправьте ваш файл rules, чтобы исправить │ │ │ │ │ это. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -50 / 61 │ │ │ │ │ +50 / 62 │ │ │ │ │ │ │ │ │ │ Глава 8 │ │ │ │ │ │ │ │ │ │ Обновление пакета │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -2739,15 +2739,15 @@ │ │ │ │ │ #654321. Это позволит автомагически закрыть сообщение об ошибке с помощью программного обеспечения обслуживания архива в тот момент, когда ваш пакет будет принят в архив Debian. │ │ │ │ │ • Повторите то, что делали выше, для исправления других ошибок, обновляя файл Debian changelog с помощью dch │ │ │ │ │ по мере надобности. │ │ │ │ │ 1Дату в нужном формате можно получить с помощью команды LANG=C date -R. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -51 / 61 │ │ │ │ │ +51 / 62 │ │ │ │ │ │ │ │ │ │ • Повторите всё из Раздел 6.1 и Глава 7. │ │ │ │ │ • После проверки правильности, измените в changelog имя выпуска с UNRELEASED на значение целевого дистрибутива unstable (или даже на experimental). 2 │ │ │ │ │ • Upload the package as in Глава 9. The difference is that this time, the original source archive won’t be included, as it hasn’t │ │ │ │ │ been changed and it already exists in the Debian archive. │ │ │ │ │ One tricky case can occur when you make a local package, to experiment with the packaging before uploading the normal version │ │ │ │ │ to the official archive, e.g., 1.0.1-1. For smoother upgrades, it is a good idea to create a changelog entry with a version string │ │ │ │ │ @@ -2784,15 +2784,15 @@ │ │ │ │ │ Если наложение/слияние произошло с ошибками, изучите ситуацию (сведения есть в файлах .rej). │ │ │ │ │ 2Если для выполнения изменения вы используете команду dch -r, то убедитесь, что записали файл changelog именно редактором. │ │ │ │ │ 3Если пакет foo собран в старом формате 1.0, то вместо этого можно запустить zcat /путь/к/foo_старая-версия.diff.gz|patch │ │ │ │ │ -p1 в каталоге с новым исходным кодом. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -52 / 61 │ │ │ │ │ +52 / 62 │ │ │ │ │ │ │ │ │ │ • Если применяемая заплата к исходному коду была интегрирована в авторский исходный код, то │ │ │ │ │ – выполните dquilt delete для её удаления. │ │ │ │ │ • Если применяемая заплата к исходному коду конфликтует с новыми изменениями в авторском исходном коде, то │ │ │ │ │ – выполните dquilt push -f для наложения старых заплат с отбрасыванием конфликтующих baz.rej. │ │ │ │ │ – Исправьте файл baz ручным копированием нужных строки из baz.rej. │ │ │ │ │ – запустите dquilt refresh для обновления заплаты. │ │ │ │ │ @@ -2829,15 +2829,15 @@ │ │ │ │ │ ⁴Если команда uscan скачает обновлённый исходный код, но не запустит команду uupdate, исправьте файл debian/watch таким образом, чтобы │ │ │ │ │ упоминание debian uupdate было в конце URL. │ │ │ │ │ ⁵Не стоит беспокоиться или спорить, если ваш поручитель или другие сопровождающие возражают против обновления существующего стиля │ │ │ │ │ пакетирования. Есть более важные вещи. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -53 / 61 │ │ │ │ │ +53 / 62 │ │ │ │ │ │ │ │ │ │ • Если по какой-то причине требуется пересоздать удалённые шаблоны файлов, вы можете ещё раз запустить dh_make │ │ │ │ │ с параметром --addmissing в том же дереве исходного кода пакета Debian, а затем отредактировать их должным │ │ │ │ │ образом. │ │ │ │ │ • Если в пакете файл debian/rules не переписан с использованием команды dh из пакета debhelper v7+, то сделайте это. Обновите файл debian/control соответствующим образом. │ │ │ │ │ • Если вы хотите переписать файл rules с использованием dh, в котором сейчас используется механизм включения │ │ │ │ │ Makefile из Common Debian Build System (cdbs), то для понимания его переменных настройки DEB_* смотрите │ │ │ │ │ @@ -2871,15 +2871,15 @@ │ │ │ │ │ < foo_in.html > foo_out.txt │ │ │ │ │ ⁶Вы можете разделить файл big.diff на много маленьких приращиваемых заплат с помощью команды splitdiff. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ 8.6 │ │ │ │ │ │ │ │ │ │ -54 / 61 │ │ │ │ │ +54 / 62 │ │ │ │ │ │ │ │ │ │ Замечания по обновлению пакетов │ │ │ │ │ │ │ │ │ │ Here are a few reminders for updating packages: │ │ │ │ │ • Не удаляйте старые записи из changelog (на первый взгляд это очевидно, но были случаи случайного набора dch │ │ │ │ │ вместо dch -i). │ │ │ │ │ • Существующие изменения Debian должны быть пересмотрены; выбросьте инструментарий, который включил автор │ │ │ │ │ @@ -2889,15 +2889,15 @@ │ │ │ │ │ • Проверьте систему отслеживания ошибок (BTS) (http://www.debian.org/Bugs/) на случай, если кто-нибудь предоставил │ │ │ │ │ заплаты для исправления незакрытых ошибок. │ │ │ │ │ • Проверьте содержимое файла .changes и убедитесь, что вы выполняете отправку в правильный дистрибутив, закрываемые ошибки перечислены в поле Closes, поля Maintainer и Changed-By совпадают, файл подписан GPG и т. │ │ │ │ │ д. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -55 / 61 │ │ │ │ │ +55 / 62 │ │ │ │ │ │ │ │ │ │ Глава 9 │ │ │ │ │ │ │ │ │ │ Отправка пакета │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -2931,15 +2931,15 @@ │ │ │ │ │ 3Сейчас, вероятно, пакет dput имеет больше возможностей и становится более популярным, чем dupload. Для его настройки используется │ │ │ │ │ системный файл /etc/dput и пользовательский ~/.dput.cf. Также он поддерживается службами Ubuntu без дополнительной настройки. │ │ │ │ │ ⁴See Debian Developer’s Reference 5.6, ”Uploading a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#upload) . │ │ │ │ │ ⁵Смотрите ftp://ftp.upload.debian.org/pub/UploadQueue/README. Или же вы можете использовать команду dcut из пакета dput. │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -56 / 61 │ │ │ │ │ +56 / 62 │ │ │ │ │ │ │ │ │ │ -----BEGIN PGP SIGNED MESSAGE----Hash: SHA1 │ │ │ │ │ Uploader: Foo Bar │ │ │ │ │ Commands: │ │ │ │ │ rm hello_1.0-1_i386.deb │ │ │ │ │ mv hello_1.0-1.dsx hello_1.0-1.dsc │ │ │ │ │ -----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.10 (GNU/Linux) │ │ │ │ │ @@ -2978,102 +2978,102 @@ │ │ │ │ │ $ debuild -v1.2 │ │ │ │ │ │ │ │ │ │ Для команды pdebuild: │ │ │ │ │ $ pdebuild --debbuildopts ”-v1.2” │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -57 / 61 │ │ │ │ │ +57 / 62 │ │ │ │ │ │ │ │ │ │ Приложение A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +Углублённое пакетирование │ │ │ │ │ The rewrite of this tutorial document with updated contents and more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers (https://www.debian.org/doc/devel-manuals#debmake-doc) . Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +Вам может потребоваться вручную отредактировать шаблонные файлы пакета, сгенерированные командой dh_make, │ │ │ │ │ +чтобы подогнать их под темы, затронутые в этой главе. Новая команда debmake больше подходит к этим темам. │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +Общие библиотеки │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ -• Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ -• Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ -• Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -• Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -• Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -• Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -• Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ +Перед пакетированием общих библиотек прочтите следующие основные документы: │ │ │ │ │ +• руководство по политике Debian, раздел 8 «Общие библиотеки» (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ +• руководство по политике Debian, раздел 9.1.1 «Структура файловой системы (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ +• руководство по политике Debian, раздел 10.2 «Библиотеки» (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ +Вот упрощённое представление, для начала: │ │ │ │ │ +• Общие библиотеки —это объектные файлы в формате ELF, в которых содержится скомпилированный код. │ │ │ │ │ +• Общие библиотеки распространяются в виде файлов *.so (не в файлах *.a или *.la). │ │ │ │ │ +• Главным образом, общие библиотеки нужны для совместного использования общего кода в исполняемых файлах посредством механизма ld. │ │ │ │ │ +• Иногда общие библиотеки используются в качестве подключаемых модулей исполняемых файлов посредством механизма dlopen. │ │ │ │ │ • Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ to them from the linked executables. │ │ │ │ │ -• The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -• The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -• The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +• SONAME общей библиотеки libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ +• SONAME общей библиотеки обычно совпадает с именем файла библиотеки (но не всегда). │ │ │ │ │ +1Либо: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ -58 / 61 │ │ │ │ │ +58 / 62 │ │ │ │ │ │ │ │ │ │ -• libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -• The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ +• SONAME общих библиотек, которые скомпонованы с /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED │ │ │ │ │ +2 │ │ │ │ │ +• libfoo1: библиотечный пакет общей библиотеки libfoo.so.1 с ABI-версией SONAME, равной 1.3 │ │ │ │ │ +• Пакетные сценарии сопровождающего для библиотеки должны вызывать ldconfig для создания необходимых символьных ссылок для SONAME при определённых условиях.⁴ │ │ │ │ │ • libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ • libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ • Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ • Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -• Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +• Несмотря на некоторое устаревание и статус вторичности, следующая ссылка тоже может быть полезна Debian Library │ │ │ │ │ +Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) . │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +Управление debian/пакет.symbols │ │ │ │ │ │ │ │ │ │ When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ -• Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ +• Смотрите руководство по политике Debian, раздел 8.6.3 «Система символов» (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-symbols) ⁹ │ │ │ │ │ • dh_makeshlibs(1) │ │ │ │ │ • dpkg-gensymbols(1) │ │ │ │ │ • dpkg-shlibdeps(1) │ │ │ │ │ • deb-symbols(5) │ │ │ │ │ Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ libfoo1.symbols file: │ │ │ │ │ -• Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -– If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -– If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1.symbols │ │ │ │ │ -in its source package, use it again. │ │ │ │ │ +• Подготовьте основу исходного дерева из авторского файла libfoo-1.3.tar.gz. │ │ │ │ │ +– Если пакетирование libfoo1 производится впервые, создайте пустой файл debian/libfoo1.symbols. │ │ │ │ │ +– Если была упакована предыдущая авторская версия 1.2 в пакет libfoo1 с соответствующим файлом debian/ │ │ │ │ │ +libfoo1.symbols в пакете с исходным кодом, то используйте его и сейчас. │ │ │ │ │ +2Либо: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +3Смотрите руководство по политике Debian, раздел 8.1 «Общие библиотеки времени выполнения» (http://www.debian.org/doc/debian-policy/chsharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +⁴Смотрите руководство по политике Debian, раздел 8.1.1 «ldconfig» (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ +⁵Смотрите руководство по политике Debian, раздел 8.3 «Статические библиотеки» (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#ssharedlibs-static) и руководство по политике Debian, раздел 8.4 «Файлы для разработки» (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#ssharedlibs-dev) . │ │ │ │ │ +⁶Смотрите Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +⁷Смотрите вики Debian RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +⁸При обратно несовместимых изменениях ABI обычно требуется обновить SONAME библиотеки и поменять имя пакета общей библиотеки на │ │ │ │ │ +новое. │ │ │ │ │ +⁹Вместо указанного для библиотек C++ и в других случаях, где слежение за отдельными символами слишком сложно, прочтите руководство по │ │ │ │ │ +политике Debian, раздел 8.6.4 «Система shlibs» (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) . │ │ │ │ │ + │ │ │ │ │ + Руководство начинающего разработчика Debian │ │ │ │ │ + │ │ │ │ │ +59 / 62 │ │ │ │ │ + │ │ │ │ │ – If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy │ │ │ │ │ -Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ - │ │ │ │ │ - Руководство начинающего разработчика Debian │ │ │ │ │ - │ │ │ │ │ -59 / 61 │ │ │ │ │ │ │ │ │ │ • Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ libfoo1a and you should start over again.) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ @@ -3095,171 +3095,195 @@ │ │ │ │ │ • If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ binary package of the shared library. 11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -• Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +• Соберите выпускаемые пакеты с помощью таких инструментов как debuild и pdebuild. │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ +В дополнение к вышеупомянутым примерам мы должны проверить дальнейшую совместимость ABI и, если понадобится, увеличить версии некоторых символов вручную. 12 │ │ │ │ │ +Несмотря на статус вторичности, вики Debian UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) и содержащиеся на ней ссылки могут быть полезными. │ │ │ │ │ +10Все предыдущие версии пакетов Debian доступны по http://snapshot.debian.org/ (http://snapshot.debian.org/) . Для облегчения переноса пакета в │ │ │ │ │ +старые выпуски часть, отвечающая за версию Debian, отбрасывается: 1.1 << 1.1-1~bpo70+1 << 1.1-1 и 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ +11Для облегчения переноса пакета в старые выпуски часть, отвечающая за версию Debian, отбрасывается: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12Смотрите руководство по политике Debian, раздел 8.6.2 «Изменения ABI общей библиотеки» (http://www.debian.org/doc/debian-policy/chsharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ │ │ │ │ │ -A.3 │ │ │ │ │ + 60 / 62 │ │ │ │ │ │ │ │ │ │ -Multiarch │ │ │ │ │ - │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages │ │ │ │ │ -(particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in │ │ │ │ │ -detail: │ │ │ │ │ -• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +Руководство начинающего разработчика Debian │ │ │ │ │ │ │ │ │ │ - 60 / 61 │ │ │ │ │ +A.3 │ │ │ │ │ │ │ │ │ │ -Руководство начинающего разработчика Debian │ │ │ │ │ +Мультиархитектурность │ │ │ │ │ │ │ │ │ │ -Old path │ │ │ │ │ +Свойство мультиархитектурности, появившееся в Debian wheezy, встраивает поддержку кросс-платформенной установки │ │ │ │ │ +двоичных пакетов (а именно i386<->amd64, но есть и другие комбинации) в dpkg и apt. Подробная информация │ │ │ │ │ +приведена в следующих документах: │ │ │ │ │ +• вики Ubuntu MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (авторский документ) │ │ │ │ │ +• вики Debian Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (ситуация в Debian) │ │ │ │ │ +При установке общих библиотек в путях используются триплеты, например i386-linux-gnu и x86_64-linux-gnu. │ │ │ │ │ +Актуальный триплет динамически задаётся в переменной $(DEB_HOST_MULTIARCH) с помощью dpkg-architecture(1) │ │ │ │ │ +при каждой сборке. Например, путь установки мультиархитектурных библиотек изменяется следующим образом:13 │ │ │ │ │ +Старый путь │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +мультиархитектурный путь для i386 │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +мультиархитектурный путь для amd64 │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -• a library source libfoo-1.tar.gz │ │ │ │ │ -• a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -• a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ -Package │ │ │ │ │ +• библиотека с исходным кодом libfoo-1.tar.gz │ │ │ │ │ +• инструмент с исходным кодом bar-1.tar.gz, написанный на компилируемом языке │ │ │ │ │ +• инструмент с исходным кодом baz-1.tar.gz, написанный на интерпретируемом языке │ │ │ │ │ +Пакет │ │ │ │ │ libfoo1 │ │ │ │ │ + │ │ │ │ │ +Архитектура: │ │ │ │ │ +любая │ │ │ │ │ + │ │ │ │ │ libfoo1-dbg │ │ │ │ │ + │ │ │ │ │ +любая │ │ │ │ │ + │ │ │ │ │ libfoo-dev │ │ │ │ │ + │ │ │ │ │ +любая │ │ │ │ │ + │ │ │ │ │ libfoo-tools │ │ │ │ │ + │ │ │ │ │ +любая │ │ │ │ │ + │ │ │ │ │ libfoo-doc │ │ │ │ │ + │ │ │ │ │ +все │ │ │ │ │ + │ │ │ │ │ bar │ │ │ │ │ + │ │ │ │ │ +любая │ │ │ │ │ + │ │ │ │ │ bar-doc │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -Architecture: │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -all │ │ │ │ │ - │ │ │ │ │ -Multi-Arch: │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ - │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ +все │ │ │ │ │ +все │ │ │ │ │ │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +Мультиархитектурность: │ │ │ │ │ +Содержимое пакета │ │ │ │ │ +такая же │ │ │ │ │ +общая библиотека, одновременная установка │ │ │ │ │ +отладочные символы общей библиотеки, │ │ │ │ │ +такая же │ │ │ │ │ +одновременная установка │ │ │ │ │ +заголовочные файлы общей библиотеки, │ │ │ │ │ +такая же │ │ │ │ │ +одновременная установка │ │ │ │ │ +программы поддержки времени выполнения, не │ │ │ │ │ +сторонняя │ │ │ │ │ +одновременная установка │ │ │ │ │ +сторонняя │ │ │ │ │ +файлы документации общей библиотеки │ │ │ │ │ +скомпилированные файлы программы, одновременная │ │ │ │ │ +сторонняя │ │ │ │ │ +установка │ │ │ │ │ +сторонняя │ │ │ │ │ +файлы документации программы │ │ │ │ │ +сторонняя │ │ │ │ │ +интерпретируемые файлы программы │ │ │ │ │ + │ │ │ │ │ +Заметим, что пакет для разработчика должен содержать символьную ссылку на соответствующую общую библиотеку │ │ │ │ │ +без номера версии. Пример: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +Сборка пакета с общей библиотекой │ │ │ │ │ │ │ │ │ │ You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -• Update debian/control. │ │ │ │ │ +• Обновите debian/control. │ │ │ │ │ – Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -– Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -– Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ +– Добавьте Pre-Depends: ${misc:Pre-Depends} для каждого двоичного пакета с общей библиотекой. │ │ │ │ │ +13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ + │ │ │ │ │ + Руководство начинающего разработчика Debian │ │ │ │ │ + │ │ │ │ │ +61 / 62 │ │ │ │ │ + │ │ │ │ │ +– Добавьте строку Multi-Arch: в раздел каждого двоичного пакета. │ │ │ │ │ • Set debian/compat to ”10”. │ │ │ │ │ -• Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ +• Измените путь с обычного /usr/lib/ на мультиархитектурный /usr/lib/$(DEB_HOST_MULTIARCH)/ во всех │ │ │ │ │ +сценариях пакета. │ │ │ │ │ – Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -– Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ +– Замените /usr/lib/ на /usr/lib/$(DEB_HOST_MULTIARCH)/ в debian/rules. │ │ │ │ │ – If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -– Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ +– Замените все появления /usr/lib/ на /usr/lib/*/ в файлах debian/foo.install. │ │ │ │ │ │ │ │ │ │ – Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ - │ │ │ │ │ - Руководство начинающего разработчика Debian │ │ │ │ │ - │ │ │ │ │ -61 / 61 │ │ │ │ │ - │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ +Проверьте, что пакет с общей библиотекой содержит только ожидаемые файлы и что ваши пакеты -dev ещё работают. │ │ │ │ │ All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ │ │ │ │ │ A.5 │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ +Родной пакет Debian │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ +Если пакет сопровождается только для Debian или, возможно, предназначен только для локального использования, то │ │ │ │ │ +файлы debian/* можно хранить прямо его в исходном коде. Есть два способа его пакетирования. │ │ │ │ │ You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in │ │ │ │ │ Раздел 2.1. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -• Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ -– package_version.tar.gz │ │ │ │ │ -– package_version.dsc │ │ │ │ │ -• Build Debian binary packages from the native Debian source package. │ │ │ │ │ -– package_version_arch.deb │ │ │ │ │ +Альтернативный способ сборки родного пакета Debian: │ │ │ │ │ +• создание родного пакета Debian с исходным кодом в формате 3.0 (native), состоящем из одного сжатого файла tar, │ │ │ │ │ +в который включены все файлы │ │ │ │ │ +– пакет_версия.tar.gz │ │ │ │ │ +– пакет_версия.dsc │ │ │ │ │ +• сборка двоичных пакетов Debian из родного пакета Debian с исходным кодом │ │ │ │ │ +– пакет_версия_архитектура.deb │ │ │ │ │ For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ package by issuing the dh_make command as follows: │ │ │ │ │ $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ +1⁴Или │ │ │ │ │ +же │ │ │ │ │ +вы │ │ │ │ │ +можете │ │ │ │ │ +добавить │ │ │ │ │ +параметры │ │ │ │ │ +--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ +и │ │ │ │ │ +--libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) в ./configure. Заметим, что в --libexecdir задаётся путь по умолчанию для установки исполняемых программ, запускаемых другими программами, а не пользователями. Значение Autotools по умолчанию равно │ │ │ │ │ +/usr/libexec/, но значение Debian по умолчанию равно /usr/lib/. │ │ │ │ │ + │ │ │ │ │ + Руководство начинающего разработчика Debian │ │ │ │ │ + │ │ │ │ │ +62 / 62 │ │ │ │ │ │ │ │ │ │ Then the debian directory and its contents are created just like in Раздел 2.8. This does not create a tarball, since this is a native │ │ │ │ │ Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ +После выполнения команды dpkg-buildpackage, вы увидите следующие файлы в родительском каталоге: │ │ │ │ │ • mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ +Это сжатый архив tar с исходным кодом, созданный из каталога mypackage-1.0 командой dpkg-source (его суффикс │ │ │ │ │ +не orig.tar.gz). │ │ │ │ │ • mypackage_1.0.dsc │ │ │ │ │ This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ • mypackage_1.0_i386.deb │ │ │ │ │ This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ • mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no Debian │ │ │ │ │ -revision.) │ │ │ │ │ +Содержит описание всех изменений, сделанных в текущей версии пакета, такой же как для неродного пакета Debian (в │ │ │ │ │ +имени нет редакции Debian). │ │ │ ├── ./usr/share/doc/maint-guide-ru/maint-guide.ru.txt.gz │ │ │ │ ├── maint-guide.ru.txt │ │ │ │ │ @@ -130,20 +130,20 @@ │ │ │ │ │ 8.4. Обновление стиля пакетирования │ │ │ │ │ 8.5. Преобразование в UTF-8 │ │ │ │ │ 8.6. Замечания по обновлению пакетов │ │ │ │ │ 9. Отправка пакета │ │ │ │ │ 9.1. Отправка в архив Debian │ │ │ │ │ 9.2. Включение файла orig.tar.gz для отправки │ │ │ │ │ 9.3. Пропущенные отправки │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ - A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ +A. Углублённое пакетирование │ │ │ │ │ + A.1. Общие библиотеки │ │ │ │ │ + A.2. Управление debian/пакет.symbols │ │ │ │ │ + A.3. Мультиархитектурность │ │ │ │ │ + A.4. Сборка пакета с общей библиотекой │ │ │ │ │ + A.5. Родной пакет Debian │ │ │ │ │ │ │ │ │ │ Глава 1. Хорошее начало — половина дела │ │ │ │ │ │ │ │ │ │ The rewrite of this tutorial document with updated contents and │ │ │ │ │     more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers. Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ @@ -2912,15 +2912,15 @@ │ │ │ │ │ не превратить их в источник раздражения. │ │ │ │ │ │ │ │ │ │ 5.19. Файл пакет.symbols │ │ │ │ │ │ │ │ │ │ Packaging of a library is not easy for a novice maintainer and │ │ │ │ │     should be avoided. Having said it, if your package has libraries, │ │ │ │ │ you should have debian/package.symbols files. See Раздел A.2, │ │ │ │ │ - «Managing debian/package.symbols». │ │ │ │ │ + «Управление debian/пакет.symbols». │ │ │ │ │ │ │ │ │ │ 5.20. Файл TODO │ │ │ │ │ │ │ │ │ │     Этот файл устанавливается командой dh_installdocs(1). │ │ │ │ │ │ │ │ │ │ 5.21. Файл watch │ │ │ │ │ │ │ │ │ │ @@ -4162,122 +4162,125 @@ │ │ │ │ │     ^[85] See Debian Developer's Reference 5.6, "Uploading a │ │ │ │ │ package". │ │ │ │ │ │ │ │ │ │ ^[86] Смотрите ftp://ftp.upload.debian.org/pub/UploadQueue/ │ │ │ │ │     README. Или же вы можете использовать команду dcut из пакета │ │ │ │ │ dput. │ │ │ │ │ │ │ │ │ │ -Приложение A. Advanced packaging │ │ │ │ │ +Приложение A. Углублённое пакетирование │ │ │ │ │ │ │ │ │ │ The rewrite of this tutorial document with updated contents and │ │ │ │ │     more practical examples is available as Guide for Debian │ │ │ │ │ Maintainers. Please use this new tutorial as the primary tutorial │ │ │ │ │ document. │ │ │ │ │ │ │ │ │ │ Here are some hints and pointers for advanced packaging topics │ │ │ │ │     that you are most likely to deal with. You are strongly advised │ │ │ │ │ to read all the references suggested here. │ │ │ │ │ │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ + Вам может потребоваться вручную отредактировать шаблонные файлы │ │ │ │ │ +    пакета, сгенерированные командой dh_make, чтобы подогнать их под │ │ │ │ │ + темы, затронутые в этой главе. Новая команда debmake больше │ │ │ │ │ + подходит к этим темам. │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +A.1. Общие библиотеки │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +    Перед пакетированием общих библиотек прочтите следующие основные │ │ │ │ │ + документы: │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ + * руководство по политике Debian, раздел 8 «Общие библиотеки» │ │ │ │ │ │ │ │ │ │ -    * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ +    * руководство по политике Debian, раздел 9.1.1 «Структура │ │ │ │ │ + файловой системы │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ + * руководство по политике Debian, раздел 10.2 «Библиотеки» │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    Вот упрощённое представление, для начала: │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * Общие библиотеки — это объектные файлы в формате ELF, в │ │ │ │ │ + которых содержится скомпилированный код. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * Общие библиотеки распространяются в виде файлов *.so (не в │ │ │ │ │ + файлах *.a или *.la). │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * Главным образом, общие библиотеки нужны для совместного │ │ │ │ │ + использования общего кода в исполняемых файлах посредством │ │ │ │ │ + механизма ld. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * Иногда общие библиотеки используются в качестве подключаемых │ │ │ │ │ + модулей исполняемых файлов посредством механизма dlopen. │ │ │ │ │ │ │ │ │ │ * Shared libraries export symbols, which represent compiled │ │ │ │ │ objects such as variables, functions, and classes; and enable │ │ │ │ │ access to them from the linked executables. │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ + * SONAME общей библиотеки libfoo.so.1: objdump -p libfoo.so.1 | │ │ │ │ │ + grep SONAME ^[87] │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ + * SONAME общей библиотеки обычно совпадает с именем файла │ │ │ │ │ + библиотеки (но не всегда). │ │ │ │ │ │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ +    * SONAME общих библиотек, которые скомпонованы с /usr/bin/foo: │ │ │ │ │ objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ + * libfoo1: библиотечный пакет общей библиотеки libfoo.so.1 с │ │ │ │ │ + ABI-версией SONAME, равной 1.^[89] │ │ │ │ │ │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * Пакетные сценарии сопровождающего для библиотеки должны │ │ │ │ │ + вызывать ldconfig для создания необходимых символьных ссылок │ │ │ │ │ + для SONAME при определённых условиях.^[90] │ │ │ │ │ │ │ │ │ │ * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ debugging symbols for the shared library package libfoo1. │ │ │ │ │ │ │ │ │ │ * libfoo-dev: the development package that contains the header │ │ │ │ │ files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ │ │ │ │ │ * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ in general.^[92] │ │ │ │ │ │ │ │ │ │ * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * Несмотря на некоторое устаревание и статус вторичности, │ │ │ │ │ + следующая ссылка тоже может быть полезна Debian Library │ │ │ │ │ + Packaging Guide. │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. Управление debian/пакет.symbols │ │ │ │ │ │ │ │ │ │ When you package a shared library, you should create a debian/ │ │ │ │ │ package.symbols file to manage the minimal version associated │ │ │ │ │     with each symbol for backward-compatible ABI changes under the │ │ │ │ │ same SONAME of the library for the same shared library package │ │ │ │ │ name.^[94] You should read the following primary references in │ │ │ │ │ detail: │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8.6.3 "The symbols system"^[95] │ │ │ │ │ + * Смотрите руководство по политике Debian, раздел 8.6.3 │ │ │ │ │ + «Система символов»^[95] │ │ │ │ │ │ │ │ │ │ * dh_makeshlibs(1) │ │ │ │ │ - │ │ │ │ │ -    * dpkg-gensymbols(1) │ │ │ │ │ +    │ │ │ │ │ + * dpkg-gensymbols(1) │ │ │ │ │ │ │ │ │ │ * dpkg-shlibdeps(1) │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ Here is a rough example of how to create the libfoo1 package from │ │ │ │ │     the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ file: │ │ │ │ │ │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ + * Подготовьте основу исходного дерева из авторского файла │ │ │ │ │ + libfoo-1.3.tar.gz. │ │ │ │ │ │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ + + Если пакетирование libfoo1 производится впервые, создайте │ │ │ │ │ + пустой файл debian/libfoo1.symbols. │ │ │ │ │ │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ + + Если была упакована предыдущая авторская версия 1.2 в пакет │ │ │ │ │ + libfoo1 с соответствующим файлом debian/libfoo1.symbols в │ │ │ │ │ + пакете с исходным кодом, то используйте его и сейчас. │ │ │ │ │ │ │ │ │ │ + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ all available binary packages of the same shared library │ │ │ │ │ package name containing the same SONAME of the library, for │ │ │ │ │ example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ │ │ │ │ │ @@ -4290,16 +4293,16 @@ │ │ │ │ │ * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ were some backward-incompatible ABI changes that require you to │ │ │ │ │ bump the shared library package name to something like libfoo1a │ │ │ │ │ and you should start over again.) │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ -    $ debuild │ │ │ │ │ - ... │ │ │ │ │ + $ debuild │ │ │ │ │ +    ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ foo_get_name@Base 1.1 │ │ │ │ │ foo_get_longname@Base 1.2 │ │ │ │ │ @@ -4315,255 +4318,278 @@ │ │ │ │ │ package of the shared library. ^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * Соберите выпускаемые пакеты с помощью таких инструментов как │ │ │ │ │ + debuild и pdebuild. │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ + В дополнение к вышеупомянутым примерам мы должны проверить │ │ │ │ │ +    дальнейшую совместимость ABI и, если понадобится, увеличить │ │ │ │ │ + версии некоторых символов вручную. ^[98] │ │ │ │ │ + │ │ │ │ │ +    Несмотря на статус вторичности, вики Debian UsingSymbolsFiles и │ │ │ │ │ + содержащиеся на ней ссылки могут быть полезными. │ │ │ │ │ + │ │ │ │ │ +A.3. Мультиархитектурность │ │ │ │ │ + │ │ │ │ │ + Свойство мультиархитектурности, появившееся в Debian wheezy, │ │ │ │ │ + встраивает поддержку кросс-платформенной установки двоичных │ │ │ │ │ +    пакетов (а именно i386<->amd64, но есть и другие комбинации) в │ │ │ │ │ + dpkg и apt. Подробная информация приведена в следующих │ │ │ │ │ + документах: │ │ │ │ │ │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ - │ │ │ │ │ -A.3. Multiarch │ │ │ │ │ - │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ - │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ + * вики Ubuntu MultiarchSpec (авторский документ) │ │ │ │ │     │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ + * вики Debian Multiarch/Implementation (ситуация в Debian) │ │ │ │ │ │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ + При установке общих библиотек в путях используются триплеты, │ │ │ │ │ + например i386-linux-gnu и x86_64-linux-gnu. Актуальный триплет │ │ │ │ │ +    динамически задаётся в переменной $(DEB_HOST_MULTIARCH) с помощью │ │ │ │ │ + dpkg-architecture(1) при каждой сборке. Например, путь установки │ │ │ │ │ + мультиархитектурных библиотек изменяется следующим образом:^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ -    |---------+------------------------+--------------------------| │ │ │ │ │ - |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ - |---------+------------------------+--------------------------| │ │ │ │ │ - |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ + | Старый | мультиархитектурный путь | мультиархитектурный путь | │ │ │ │ │ + | путь | для i386 | для amd64 | │ │ │ │ │ +    |---------+--------------------------+--------------------------| │ │ │ │ │ + |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ + |---------+--------------------------+--------------------------| │ │ │ │ │ + |/usr/lib/|/usr/lib/i386-linux-gnu/ |/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │     Here are some typical multiarch package split scenario examples │ │ │ │ │ for the following: │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * библиотека с исходным кодом libfoo-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ + * инструмент с исходным кодом bar-1.tar.gz, написанный на │ │ │ │ │ +    компилируемом языке │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * инструмент с исходным кодом baz-1.tar.gz, написанный на │ │ │ │ │ + интерпретируемом языке │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ - +---------------------------------------------------------------+ │ │ │ │ │ - │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ + +-----------------------------------------------------------------+ │ │ │ │ │ + | Пакет |Архитектура:|Мультиархитектурность:| Содержимое | │ │ │ │ │ + | | | | пакета | │ │ │ │ │ + |------------+------------+----------------------+----------------| │ │ │ │ │ + | | | |общая | │ │ │ │ │ + |libfoo1 |любая |такая же |библиотека, | │ │ │ │ │ + | | | |одновременная | │ │ │ │ │ + | | | |установка | │ │ │ │ │ + |------------+------------+----------------------+----------------| │ │ │ │ │ + | | | |отладочные | │ │ │ │ │ + | | | |символы общей | │ │ │ │ │ + |libfoo1-dbg |любая |такая же |библиотеки, | │ │ │ │ │ + | | | |одновременная | │ │ │ │ │ + | | | |установка | │ │ │ │ │ + |------------+------------+----------------------+----------------| │ │ │ │ │ + | | | |заголовочные | │ │ │ │ │ + | | | |файлы общей | │ │ │ │ │ + |libfoo-dev |любая |такая же |библиотеки, | │ │ │ │ │ + | | | |одновременная | │ │ │ │ │ + | | | |установка | │ │ │ │ │ + |------------+------------+----------------------+----------------| │ │ │ │ │ +    | | | |программы | │ │ │ │ │ + | | | |поддержки | │ │ │ │ │ + |libfoo-tools|любая |сторонняя |времени | │ │ │ │ │ + | | | |выполнения, не | │ │ │ │ │ + | | | |одновременная | │ │ │ │ │ + | | | |установка | │ │ │ │ │ + |------------+------------+----------------------+----------------| │ │ │ │ │ + | | | |файлы | │ │ │ │ │ + |libfoo-doc |все |сторонняя |документации | │ │ │ │ │ + | | | |общей библиотеки| │ │ │ │ │ + |------------+------------+----------------------+----------------| │ │ │ │ │ + | | | |скомпилированные| │ │ │ │ │ + |bar |любая |сторонняя |файлы программы,| │ │ │ │ │ + | | | |одновременная | │ │ │ │ │ + | | | |установка | │ │ │ │ │ + |------------+------------+----------------------+----------------| │ │ │ │ │ + | | | |файлы | │ │ │ │ │ + |bar-doc |все |сторонняя |документации | │ │ │ │ │ + | | | |программы | │ │ │ │ │ + |------------+------------+----------------------+----------------| │ │ │ │ │ + |baz |все |сторонняя |интерпретируемые| │ │ │ │ │ + | | | |файлы программы | │ │ │ │ │ + +-----------------------------------------------------------------+ │ │ │ │ │ + │ │ │ │ │ + Заметим, что пакет для разработчика должен содержать символьную │ │ │ │ │ +    ссылку на соответствующую общую библиотеку без номера версии. │ │ │ │ │ + Пример: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. Сборка пакета с общей библиотекой │ │ │ │ │ │ │ │ │ │     You can build a Debian library package enabling multiarch support │ │ │ │ │ using dh(1) as follows: │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ + * Обновите debian/control. │ │ │ │ │ │ │ │ │ │ + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ section. │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + Добавьте Pre-Depends: ${misc:Pre-Depends} для каждого │ │ │ │ │ + двоичного пакета с общей библиотекой. │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + Добавьте строку Multi-Arch: в раздел каждого двоичного │ │ │ │ │ + пакета. │ │ │ │ │ │ │ │ │ │ * Set debian/compat to "10". │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ + * Измените путь с обычного /usr/lib/ на мультиархитектурный /usr/ │ │ │ │ │ + lib/$(DEB_HOST_MULTIARCH)/ во всех сценариях пакета. │ │ │ │ │ │ │ │ │ │ + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ +    DEB_HOST_MULTIARCH variable first. │ │ │ │ │ + │ │ │ │ │ + + Замените /usr/lib/ на /usr/lib/$(DEB_HOST_MULTIARCH)/ в │ │ │ │ │ debian/rules. │ │ │ │ │ │ │ │ │ │ + If ./configure is used in part of the │ │ │ │ │ override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ + + Замените все появления /usr/lib/ на /usr/lib/*/ в файлах │ │ │ │ │ + debian/foo.install. │ │ │ │ │ │ │ │ │ │ + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ dynamically by adding a script to the │ │ │ │ │ override_dh_auto_configure target in debian/rules. │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ +    Проверьте, что пакет с общей библиотекой содержит только │ │ │ │ │ + ожидаемые файлы и что ваши пакеты -dev ещё работают. │ │ │ │ │ │ │ │ │ │ All files installed simultaneously as the multiarch package to │ │ │ │ │     the same file path should have exactly the same file content. You │ │ │ │ │ must be careful of differences generated by the data byte order │ │ │ │ │ and by the compression algorithm. │ │ │ │ │ │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ +A.5. Родной пакет Debian │ │ │ │ │ │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ + Если пакет сопровождается только для Debian или, возможно, │ │ │ │ │ +    предназначен только для локального использования, то файлы debian │ │ │ │ │ + /* можно хранить прямо его в исходном коде. Есть два способа его │ │ │ │ │ + пакетирования. │ │ │ │ │ │ │ │ │ │ You can make the upstream tarball by excluding the debian/* files │ │ │ │ │     and package it as a non-native Debian package as in Раздел 2.1, │ │ │ │ │ «Порядок сборки пакета Debian». This is the normal way, which │ │ │ │ │ some people encourage using. │ │ │ │ │ │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ +    Альтернативный способ сборки родного пакета Debian: │ │ │ │ │ │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ - │ │ │ │ │ -    + package_version.tar.gz │ │ │ │ │ - + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ + * создание родного пакета Debian с исходным кодом в формате 3.0 │ │ │ │ │ + (native), состоящем из одного сжатого файла tar, в который │ │ │ │ │ + включены все файлы │ │ │ │ │ + │ │ │ │ │ +    + пакет_версия.tar.gz │ │ │ │ │ + + пакет_версия.dsc │ │ │ │ │ + * сборка двоичных пакетов Debian из родного пакета Debian с │ │ │ │ │ + исходным кодом │ │ │ │ │ │ │ │ │ │ - + package_version_arch.deb │ │ │ │ │ + + пакет_версия_архитектура.deb │ │ │ │ │ │ │ │ │ │ For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │     the debian/* files, you can create a native Debian package by │ │ │ │ │ issuing the dh_make command as follows: │ │ │ │ │ │ │ │ │ │     $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ Then the debian directory and its contents are created just like │ │ │ │ │ in Раздел 2.8, «Начальный неродной пакет Debian». This does not │ │ │ │ │     create a tarball, since this is a native Debian package. But that │ │ │ │ │ is the only difference. The rest of the packaging activities are │ │ │ │ │ practically the same. │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    После выполнения команды dpkg-buildpackage, вы увидите следующие │ │ │ │ │ + файлы в родительском каталоге: │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + Это сжатый архив tar с исходным кодом, созданный из каталога │ │ │ │ │ + mypackage-1.0 командой dpkg-source (его суффикс не │ │ │ │ │ + orig.tar.gz). │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.dsc │ │ │ │ │ │ │ │ │ │ This is a summary of the contents of the source code, as in │ │ │ │ │ the non-native Debian package. (There is no Debian revision.) │ │ │ │ │     │ │ │ │ │ * mypackage_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ This is your completed binary package, as in the non-native │ │ │ │ │ Debian package. (There is no Debian revision.) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + Содержит описание всех изменений, сделанных в текущей версии │ │ │ │ │ + пакета, такой же как для неродного пакета Debian (в имени нет │ │ │ │ │ + редакции Debian). │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] Либо: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] Либо: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] Смотрите руководство по политике Debian, раздел 8.1 «Общие │ │ │ │ │ + библиотеки времени выполнения». │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] Смотрите руководство по политике Debian, раздел 8.1.1 │ │ │ │ │ + «ldconfig». │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ + ^[91] Смотрите руководство по политике Debian, раздел 8.3 │ │ │ │ │ +    «Статические библиотеки» и руководство по политике Debian, раздел │ │ │ │ │ + 8.4 «Файлы для разработки». │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] Смотрите Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] Смотрите вики Debian RpathIssue. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ + ^[94] При обратно несовместимых изменениях ABI обычно требуется │ │ │ │ │ +    обновить SONAME библиотеки и поменять имя пакета общей библиотеки │ │ │ │ │ + на новое. │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ + ^[95] Вместо указанного для библиотек C++ и в других случаях, где │ │ │ │ │ +    слежение за отдельными символами слишком сложно, прочтите │ │ │ │ │ + руководство по политике Debian, раздел 8.6.4 «Система shlibs». │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] Все предыдущие версии пакетов Debian доступны по http:// │ │ │ │ │ +    snapshot.debian.org/. Для облегчения переноса пакета в старые │ │ │ │ │ + выпуски часть, отвечающая за версию Debian, отбрасывается: 1.1 << │ │ │ │ │ + 1.1-1~bpo70+1 << 1.1-1 и 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ + ^[97] Для облегчения переноса пакета в старые выпуски часть, │ │ │ │ │ +    отвечающая за версию Debian, отбрасывается: 1.3 << 1.3-1~bpo70+1 │ │ │ │ │ + << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ - changes". │ │ │ │ │ +    ^[98] Смотрите руководство по политике Debian, раздел 8.6.2 │ │ │ │ │ + «Изменения ABI общей библиотеки». │ │ │ │ │ │ │ │ │ │     ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ lib64/ are not used anymore. │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] Или же вы можете добавить параметры --libdir=\$${prefix}/ │ │ │ │ │ + lib/$(DEB_HOST_MULTIARCH) и --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) в ./configure. Заметим, что в --libexecdir │ │ │ │ │ +    задаётся путь по умолчанию для установки исполняемых программ, │ │ │ │ │ + запускаемых другими программами, а не пользователями. Значение │ │ │ │ │ + Autotools по умолчанию равно /usr/libexec/, но значение Debian по │ │ │ │ │ + умолчанию равно /usr/lib/. ├── maint-guide-vi_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1572 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 564400 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 567020 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: maint-guide-vi │ │ │ │ Source: maint-guide │ │ │ │ Version: 1.2.53 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Osamu Aoki │ │ │ │ -Installed-Size: 952 │ │ │ │ +Installed-Size: 959 │ │ │ │ Suggests: debian-policy, developers-reference, devscripts, dh-make, doc-base, dupload | dput, fakeroot, lintian, pbuilder, quilt │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://www.debian.org/doc/devel-manuals#maint-guide │ │ │ │ Description: Debian New Maintainers' Guide (Vietnamese) │ │ │ │ This package contains the Debian New Maintainers' Guide. │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1224 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39592 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/advanced.vi.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 43961 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/advanced.vi.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 41387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/build.vi.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20136 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/checkit.vi.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 66210 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/dother.vi.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 66214 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/dother.vi.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 82933 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/dreq.vi.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 58269 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/first.vi.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24500 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/index.vi.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24547 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/index.vi.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24835 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/modify.vi.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 36746 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/start.vi.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 35433 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/update.vi.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 13008 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/upload.vi.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 423370 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/maint-guide.vi.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61176 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/maint-guide.vi.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 13014 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/html/upload.vi.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 426079 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/maint-guide.vi.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61135 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-vi/maint-guide.vi.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 623 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-vi.maint-guide-vi │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-vi │ │ │ ├── ./usr/share/doc/maint-guide-vi/html/advanced.vi.html │ │ │ │ ├── ./usr/share/doc/maint-guide-vi/html/advanced.vi.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - Phụ lục A. Advanced packaging │ │ │ │ │ + Phụ lục A. Đóng gói nâng cao │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

Here are some typical multiarch package split scenario examples for the │ │ │ │ │ -following:

│ │ │ │ │ +

Sau đây là một vài ví dụ về tình huống băm gói phần mềm multiarch tiêu biểu │ │ │ │ │ +cho các gói:

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a library source │ │ │ │ │ + một gói phần mềm nguồn cho │ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + một gói phần mềm nguồn công cụ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in a compiled language │ │ │ │ │ + viết bằng một │ │ │ │ │ +ngôn ngữ biên dịch. │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + một gói phần mềm nguồn công cụ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in an interpreted language │ │ │ │ │ + viết bằng một │ │ │ │ │ +ngôn ngữ thông dịch │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -780,15 +784,15 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
PackageArchitecture:Multi-Arch:Package contentNội dung gói phần mềm
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ @@ -796,282 +800,285 @@ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anysamethe shared library, co-installablebất kỳkhông đổithư viện được chia sẻ, có thể cài cùng lúc
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ -dbg │ │ │ │ │ │ │ │ │ │ anysamethe shared library debug symbols, co-installablebất kỳkhông đổicác ký hiệu dò lỗi của thư viện chia sẻ, có thể cài cùng lúc
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -dev │ │ │ │ │ │ │ │ │ │ anysamethe shared library header files etc., co-installablebất kỳkhông đổicác tập tin tiêu đề của thư viện chia sẻ v.v., có thể cài cùng lúc
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -tools │ │ │ │ │ │ │ │ │ │ anyforeignthe run-time support programs, not co-installablebất kỳXa lạCác chương trình hỗ trợ khi chạy, không thể cài đặt cùng lúc
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe shared library documentation filestất cảXa lạnhững tập tin tài liệu hướng dẫn của thư viện chia sẻ
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anyforeignthe compiled program files, not co-installablebất kỳXa lạcác tập tin chương trình đã biên dịch, không thể cài đặt cùng lúc
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe documentation files for the programtất cảXa lạnhững tập tin tài liệu hướng dẫn cho chương trình
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ allforeignthe interpreted program filestất cảXa lạcác tập tin chương trình được thông dịch
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + Xin chú ý rằng gói phần mềm phát triển nên chứa một kết nối tượng trưng cho │ │ │ │ │ +thư viện chia sẻ tương ứng │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + không có số phiên │ │ │ │ │ +bản │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + . Ví dụ: │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - You can build a Debian library package enabling multiarch support using │ │ │ │ │ + Bạn có thể biên dịch một gói phần mềm thư viện Debian cho phép hỗ trợ │ │ │ │ │ +multiarch │ │ │ │ │ │ │ │ │ │ dh │ │ │ │ │ (1) │ │ │ │ │ │ │ │ │ │ - as follows: │ │ │ │ │ + như sau: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ -

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ -path should have exactly the same file content. You must be careful of │ │ │ │ │ -differences generated by the data byte order and by the compression │ │ │ │ │ -algorithm.

│ │ │ │ │ +

Hãy chắc chắn rằng gói phần mềm thư viện chia sẻ chỉ chứa duy nhất các tập │ │ │ │ │ +tin được trông đợi, và gói phần mềm -dev của bạn vẫn hoạt động tốt.

│ │ │ │ │ +

Tất cả các tập tin được cài đặt cùng lúc với gói phần mềm multiarch vào cùng │ │ │ │ │ +một đường dẫn nên có cùng một nội dung chính xác như nhau. Bạn phải cẩn │ │ │ │ │ +thận với những sự khác biệt tạo ra bởi thứ tự byte dữ liệu và thuật toán │ │ │ │ │ +nén.

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + Nếu một gói phần mề được bảo trì chỉ cho Debian hoặc có thể chỉ cho việc │ │ │ │ │ +dùng nội bộ, mã nguồn của nó có thể chứa tất các tập tin │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + bên trong nó. Có 2 cách để đóng gói nó. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - You can make the upstream tarball by excluding the │ │ │ │ │ + Bạn có thể tạo một tập tin lưu trữ thượng nguồn bằng việc loại trừ tất cả │ │ │ │ │ +các tập tin │ │ │ │ │ debian/* │ │ │ │ │ - files and package it as a non-native Debian │ │ │ │ │ -package as in │ │ │ │ │ + và đóng gói nó như là một gói phần │ │ │ │ │ +mềm nhị phân Debian không native như ở │ │ │ │ │ Phần 2.1, “Luồng làm việc tạo ra gói Debian” │ │ │ │ │ - . This is the normal way, which │ │ │ │ │ -some people encourage using. │ │ │ │ │ + . Đây là │ │ │ │ │ +cách thông thường mọi người khuyến khích sử dụng. │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

Một cách khác là cách làm của một gói phần mềm Debian native.

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ - 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + Tạo một gói phần mềm nguồn Debian native dưới định dạng │ │ │ │ │ + 3.0 │ │ │ │ │ +(native) │ │ │ │ │ + bằng việc sử dụng một tập tin nén tar đơn độc chứa tất cả │ │ │ │ │ +các tập tin bên trong. │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ package │ │ │ │ │ @@ -1160,15 +1169,16 @@ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    Biên dịch các gói phần mềm nhị phân Debian từ gói phần mềm nguồn Debian │ │ │ │ │ +native.

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ package │ │ │ │ │ │ │ │ │ │ @@ -1185,96 +1195,99 @@ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - For example, if you have source files in │ │ │ │ │ + Ví dụ, nếu bạn có các tập tin nguồn trong thư mục │ │ │ │ │ ~/mypackage-1.0 │ │ │ │ │ - without the │ │ │ │ │ + mà không có các tập tin │ │ │ │ │ debian/* │ │ │ │ │ - files, you can create a native Debian package │ │ │ │ │ -by issuing the │ │ │ │ │ + , bạn có thể tạo một gói phần mềm Debian native │ │ │ │ │ +cho nó bằng việc chạy lệnh │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ - command as follows: │ │ │ │ │ + như sau: │ │ │ │ │

│ │ │ │ │
$ cd ~/mypackage-1.0
│ │ │ │ │  $ dh_make --native
│ │ │ │ │

│ │ │ │ │ - Then the │ │ │ │ │ + Sau đó thư mục │ │ │ │ │ debian │ │ │ │ │ - directory and its contents are created │ │ │ │ │ -just like in │ │ │ │ │ + và nội dụng của nó được tạo như │ │ │ │ │ +là ở │ │ │ │ │ Phần 2.8, “Khởi tạo gói Debian mới” │ │ │ │ │ - . This does not create a │ │ │ │ │ -tarball, since this is a native Debian package. But that is the only │ │ │ │ │ -difference. The rest of the packaging activities are practically the same. │ │ │ │ │ + . Hành động này không tạo một tập │ │ │ │ │ +tin lưu trữ vì đây là một gói phần mềm Debian native. Nhưng đó là điểm khác │ │ │ │ │ +biệt duy nhất. Phần còn lại của quá trình đóng gói thực tế là không khác │ │ │ │ │ +gì. │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - After execution of the │ │ │ │ │ + Sau khi chạy lệnh │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + , bạn sẽ thấy các tập │ │ │ │ │ +tin sau trong thư mục cha: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.tar.gz │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ + Đây là tập tin mã nguồn tạo ra từ thư mục │ │ │ │ │ mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + bởi lệnh │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + command. (Phần hậu tố của nó không │ │ │ │ │ +phải là │ │ │ │ │ orig.tar.gz │ │ │ │ │ .) │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.dsc │ │ │ │ │

    │ │ │ │ │ -

    This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ -Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    Đây là bản tóm tắt của những nội dung của mã nguồn như ở trong gói phần mềm │ │ │ │ │ +Debian không native. (There có mã tu chỉnh Debian.)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.deb │ │ │ │ │

    │ │ │ │ │ -

    This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ -(There is no Debian revision.)

    │ │ │ │ │ +

    Đây là gói phần mềm nhị phân hoàn chỉnh của bạn như là gói phần mềm Debian │ │ │ │ │ +không native. (Không có mã tu chỉnh Debian.)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.changes │ │ │ │ │

    │ │ │ │ │ -

    This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    Tập tin này mô tả những thay đổi được tạo ra trong phiên bản gói phần mềm │ │ │ │ │ +hiện tại như ở trong gói phần mềm Debian không native. (Không có bản tu │ │ │ │ │ +chỉnh Debian.)

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Ngoài ra: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1287,15 +1300,15 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + Ngoài ra: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1308,164 +1321,163 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ -libraries" │ │ │ │ │ + Xem │ │ │ │ │ + Hướng dẫn về Chính sách Debian, 8.1 "Các │ │ │ │ │ +Thư viện chia sẻ khi chạy" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.1.1 │ │ │ │ │ + Xem │ │ │ │ │ + Hướng dẫn về Chính sách Debian, 8.1.1 │ │ │ │ │ "ldconfig" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.3 "Static │ │ │ │ │ -libraries" │ │ │ │ │ - and │ │ │ │ │ - Debian Policy Manual, 8.4 │ │ │ │ │ -"Development files" │ │ │ │ │ - . │ │ │ │ │ + Xem │ │ │ │ │ + Hướng dẫn Chính sách Debian, 10.2 "Các Thư │ │ │ │ │ +viện tĩnh" │ │ │ │ │ + và │ │ │ │ │ + Hướng dẫn về Chính sách │ │ │ │ │ +Debian, 8.4 "Các Tập tin phát triển" │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Xem │ │ │ │ │ Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + Xem │ │ │ │ │ Debian wiki RpathIssue │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + Các thay đổi ABI không tương thích ngược thông thường cần bạn phải cập nhật │ │ │ │ │ +SONAME của thư viện và tên gói phần mềm thư viện chia sẻ sang những tên mới. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + Với các thư viện C++ và các tình huống khác mà theo dõi từng ký hiệu là vô │ │ │ │ │ +cùng khó khăn, thay vì như trên hãy làm theo │ │ │ │ │ + Hướng dẫn Chính sách về Debian, 8.6.4 "Hệ │ │ │ │ │ +thống shlibs" │ │ │ │ │ + , │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + Tất cả các phiên bản trước đó của các gói phần mềm Debian có sẵn tại │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + . Phiên bản tu chỉnh │ │ │ │ │ +Debian được cắt bỏ khỏi phiên bản để giúp việc backport gói phần mềm (tạo │ │ │ │ │ +gói phần mềm chứa các cập nhật mới cho các bản phân phối Debian cũ) dễ hơn: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ - and │ │ │ │ │ + và │ │ │ │ │ 1.2 │ │ │ │ │ << │ │ │ │ │ 1.2-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.2-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + Phiên bản tu chỉnh Debian được cắt bỏ khỏi phiên bản để giúp việc backport │ │ │ │ │ +gói phần mềm (tạo gói phần mềm chứa các cập nhật mới cho các bản phân phối │ │ │ │ │ +Debian cũ) dễ hơn: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ - Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ -library ABI changes" │ │ │ │ │ - . │ │ │ │ │ + Xem │ │ │ │ │ + Hướng dẫn về Chính sách Debian, 8.6.2 │ │ │ │ │ +"Các Thay đổi ABI của Thư viện chia sẻ" │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [99] │ │ │ │ │ │ │ │ │ │ - Old special purpose library paths such as │ │ │ │ │ + Các đường dẫn thư viện chuyên dụng cũ như │ │ │ │ │ /lib32/ │ │ │ │ │ - and │ │ │ │ │ + và │ │ │ │ │ /lib64/ │ │ │ │ │ - are not used anymore. │ │ │ │ │ + không được sử dụng nữa. │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + Ngoài ra, bạn có thể thêm các đối số │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + và │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + cho │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + . Xin hãy chú ý rằng tham số │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + thông báo đường dẫn ngầm định để cài đặt các │ │ │ │ │ +chương trình thực thi được chạy bởi các chương trình khác thay vì bởi người │ │ │ │ │ +dùng. Giá trị ngầm định Autotools của nó là │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + nhưng ngầm định của Debian là │ │ │ │ │ /usr/lib/ │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-vi/html/upload.vi.html │ │ │ │ ├── ./usr/share/doc/maint-guide-vi/html/upload.vi.html │ │ │ │ │ @@ -7,15 +7,15 @@ │ │ │ │ │ Chương 9. Tải gói phần mềm lên │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-vi/maint-guide.vi.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -34,21 +34,21 @@ │ │ │ │ │ WRITTEN BY │ │ │ │ │ │ │ │ │ │ Josip Rodin, │ │ │ │ │ Osamu Aoki, và │ │ │ │ │ Vietnamese │ │ │ │ │ Localization Team │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ dịch bởi │ │ │ │ │ │ │ │ │ │ SIGNATURE │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ REVISION HISTORY │ │ │ │ │ NUMBER │ │ │ │ │ │ │ │ │ │ DATE │ │ │ │ │ │ │ │ │ │ DESCRIPTION │ │ │ │ │ @@ -366,27 +366,27 @@ │ │ │ │ │ │ │ │ │ │ Đính kèm orig.tar.gz cho việc tải lên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ Những lần tải lên bị bỏ qua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A Đóng gói nâng cao │ │ │ │ │ │ │ │ │ │ 53 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 │ │ │ │ │ +A.1 Các thư viện được chia sẻ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 │ │ │ │ │ +A.2 Quản lý debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 │ │ │ │ │ A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ +A.4 Biên dịch một gói phần mềm chia sẻ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ +A.5 Gói phần mềm Debian native . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -1 / 57 │ │ │ │ │ +1 / 58 │ │ │ │ │ │ │ │ │ │ Chapter 1 │ │ │ │ │ │ │ │ │ │ Bắt đầu Đúng cách │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers │ │ │ │ │ (https://www.debian.org/doc/devel-manuals#debmake-doc) . Vui lòng sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ Tài liệu này mô tả việc xây dựng một gói Debian cho người dùng Debian bình thường và các nhà phát triển tiềm năng. Nó sử │ │ │ │ │ @@ -420,15 +420,15 @@ │ │ │ │ │ 1Tài liệu giả định bạn đang sử dụng jessie hoặc hệ thống mới hơn. Nếu bạn cần phải làm theo các văn bản này trong một hệ thống cũ hơn (bao gồm cả │ │ │ │ │ một hệ thống Ubuntu cũ hơn vv), bạn phải cài đặt ít nhất các gói dpkg và debhelper. │ │ │ │ │ 2Bạn có thể tìm hiểu về cách xử lý cơ bản của một hệ thống Debian từ Debian Reference (http://www.debian.org/doc/manuals/debian-reference/) . Nó cũng │ │ │ │ │ chứa một số gợi ý để tìm hiểu về lập trình Unix. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -2 / 57 │ │ │ │ │ +2 / 58 │ │ │ │ │ │ │ │ │ │ – Đóng góp của bạn không nên quá căng thẳng người khác. │ │ │ │ │ – Đóng góp của bạn chỉ có giá trị khi những người khác đánh giá cao nó. │ │ │ │ │ • Debian không phải là trường học của bạn mà bạn nhận được sự chú ý tự động của giáo viên. │ │ │ │ │ – Bạn sẽ có thể tự học hỏi nhiều điều. │ │ │ │ │ – Sự chú ý của các tình nguyện viên khác là một nguồn lực khan hiếm. │ │ │ │ │ • Debian đang không ngừng cải tiến. │ │ │ │ │ @@ -458,15 +458,15 @@ │ │ │ │ │ • Trang web thành viên của Debian (https://nm.debian.org/) (chính thức) │ │ │ │ │ • Câu hỏi thường gặp của trợ giảng của Debian (http://wiki.debian.org/DebianMentorsFaq) (bổ sung) │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 1.2 │ │ │ │ │ │ │ │ │ │ -3 / 57 │ │ │ │ │ +3 / 58 │ │ │ │ │ │ │ │ │ │ Các chương trình cần thiết cho sự phát triển │ │ │ │ │ │ │ │ │ │ Trước khi bạn bắt đầu bất cứ điều gì, bạn nên chắc chắn rằng bạn đã cài đặt đúng một số gói bổ sung cần thiết cho sự phát triển. │ │ │ │ │ Lưu ý rằng danh sách không chứa bất kỳ gói nào được đánh dấu essential hoặc required - chúng tôi mong rằng bạn đã │ │ │ │ │ cài đặt xong. │ │ │ │ │ Các gói sau đi kèm với cài đặt Debian tiêu chuẩn, do đó có lẽ bạn đã có chúng rồi (cùng với bất kỳ gói bổ sung nào mà chúng │ │ │ │ │ @@ -516,15 +516,15 @@ │ │ │ │ │ • pbuilder - gói này chứa các chương trình được sử dụng để tạo và duy trì môi trường chroot. Xây dựng gói Debian trong │ │ │ │ │ môi trường chroot này sẽ kiểm tra sự phụ thuộc thư viện phù hợp và tránh lỗi FTBFS (Fails To Build From Source). (Xem │ │ │ │ │ pbuilder ( 8) và pdebuild ( 1 )) │ │ │ │ │ 3Ngoài ra còn có một số gói chuyên dụng hơn nhưng tương tự như dh-make-perl, dh-make-php, v.v. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -4 / 57 │ │ │ │ │ +4 / 58 │ │ │ │ │ │ │ │ │ │ • perl - Perl là một trong những ngôn ngữ lập trình được sử dụng phổ biến nhất trên các hệ thống Unix ngày nay, thường được │ │ │ │ │ gọi là Unix’s Swiss Army Chainsaw. (Xem perl(1).) │ │ │ │ │ • python - Python là một trong những ngôn ngữ kịch bản thông dịch được sử dụng nhiều nhất trên hệ thống Debian, kết hợp │ │ │ │ │ sức mạnh vượt trội với cú pháp rất rõ ràng. (Xem python( 1 ).) │ │ │ │ │ • │ │ │ │ │ │ │ │ │ │ @@ -563,15 +563,15 @@ │ │ │ │ │ Sau đây là một tài liệu hướng dẫn thay thế mà bạn có thể đọc cùng với tài liệu này: │ │ │ │ │ • Debian Packaging Tutorial (http://www.debian.org/doc/packaging-manuals/packaging-tutorial/packaging-tutorial) │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 1.4 │ │ │ │ │ │ │ │ │ │ -5 / 57 │ │ │ │ │ +5 / 58 │ │ │ │ │ │ │ │ │ │ Nơi để yêu cầu trợ giúp │ │ │ │ │ │ │ │ │ │ Trước khi bạn quyết định đặt câu hỏi của mình ở nơi công cộng, vui lòng đọc tài liệu tốt │ │ │ │ │ • Các tệp trong gói /usr/share/doc/package cho tất cả các gói phù hợp │ │ │ │ │ • Nội dung của lệnh man command cho tất cả các lệnh thích hợp │ │ │ │ │ • Nội dung của lệnh info command cho tất cả các lệnh thích hợp │ │ │ │ │ @@ -600,15 +600,15 @@ │ │ │ │ │ người dùng từ khắp nơi trên thế giới sẽ bắt đầu sử dụng gói của bạn và nếu bạn mắc một số lỗi nghiêm trọng, bạn sẽ nhận được │ │ │ │ │ mailbombed bởi nhiều người dùng Debian tức giận …... Đùa thôi :-) │ │ │ │ │ Hãy thư giãn và sẵn sàng cho các báo cáo lỗi, vì còn rất nhiều việc phải làm trước khi gói của bạn hoàn toàn phù hợp với các │ │ │ │ │ chính sách của Debian và các hướng dẫn thực hành tốt nhất của nó (một lần nữa đọc tài liệu thật chi tiết). Chúc may mắn! │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -6 / 57 │ │ │ │ │ +6 / 58 │ │ │ │ │ │ │ │ │ │ Chapter 2 │ │ │ │ │ │ │ │ │ │ Những bước đầu tiên │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers │ │ │ │ │ (https://www.debian.org/doc/devel-manuals#debmake-doc) . Vui lòng sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ Hãy bắt đầu bằng cách tạo một gói riêng của bạn (hoặc, thậm chí tốt hơn, chấp nhận một cái hiện tại). │ │ │ │ │ @@ -639,15 +639,15 @@ │ │ │ │ │ Debian Policy Manual, 5.6.8 ”Architecture” (http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Architecture) và đuợc tự động ký bởi tiến trình │ │ │ │ │ xây dựng gói. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 2.2 │ │ │ │ │ │ │ │ │ │ -7 / 57 │ │ │ │ │ +7 / 58 │ │ │ │ │ │ │ │ │ │ Chọn chương trình của bạn │ │ │ │ │ │ │ │ │ │ Có thể bạn đã chọn gói bạn muốn tạo. Điều đầu tiên bạn cần làm là kiểm tra xem gói có trong kho lưu trữ đã được phân phối │ │ │ │ │ bằng cách sử dụng như sau: │ │ │ │ │ • lệnh aptitude │ │ │ │ │ • trang web Debian packages (http://www.debian.org/distrib/packages) │ │ │ │ │ @@ -680,15 +680,15 @@ │ │ │ │ │ một chương trình thú vị mà chưa ai đang duy trì. │ │ │ │ │ • Phần mềm phải có một giấy phép. │ │ │ │ │ 3Xem phần Debian Developer’s Reference 5.9.5. ”Adopting a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#adopting) . │ │ │ │ │ ⁴Có thể nói rằng, sẽ luôn có những chương trình mới sẽ thật sự cần đóng gói mới │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -8 / 57 │ │ │ │ │ +8 / 58 │ │ │ │ │ │ │ │ │ │ – Đối với mục main, Chính sách Debian yêu cầu các gói phải tuân thủ hoàn toàn Nguyên tắc về Phần mềm Tự do Debian │ │ │ │ │ (DFSG (http://www.debian.org/social_contract#guidelines) và không yêu cầu một gói nào bên ngoài mục main để biên │ │ │ │ │ dịch hay thực thi. Đây là trường hợp bắt buộc. │ │ │ │ │ – Đối với mục contrib, nó phải tuân thủ DFSG nhưng nó có thể yêu cầu một gói bên ngoài mục main để biên dịch hoặc │ │ │ │ │ thực thi. │ │ │ │ │ – Còn mục non-free, nó có thể không tương thích với DFSG nhưng cần được phân phối . │ │ │ │ │ @@ -724,15 +724,15 @@ │ │ │ │ │ Đóng gói gói phức tạp cao không phải là quá khó, nhưng nó đòi hỏi một chút kiến thức. Bạn nên tìm kiếm hướng dẫn cụ thể cho │ │ │ │ │ từng tính năng phức tạp. Ví dụ, một số ngôn ngữ có tài liệu chính sách phụ của riêng mình: │ │ │ │ │ • Perl policy (http://www.debian.org/doc/packaging-manuals/perl-policy/) │ │ │ │ │ • Python policy (http://www.debian.org/doc/packaging-manuals/python-policy/) │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -9 / 57 │ │ │ │ │ +9 / 58 │ │ │ │ │ │ │ │ │ │ • Java policy (http://www.debian.org/doc/packaging-manuals/java-policy/) │ │ │ │ │ Có một câu trong tiếng Latinh nói rằng: fabricando fit faber (thực hành làm cho hoàn hảo). Đó là tính cao nhất được đề nghị │ │ │ │ │ để thực hành và thử nghiệm với tất cả các bước của gói Debian với các gói đơn giản trong khi đọc hướng dẫn này. Một tarball │ │ │ │ │ thượng nguồn đơn giản hello-sh-1.0.tar.gz được tạo như sau có thể cung cấp một điểm khởi đầu tốt: ⁵ │ │ │ │ │ $ mkdir -p hello-sh/hello-sh-1.0; cd hello-sh/hello-sh-1.0 │ │ │ │ │ $ cat > hello <>~/.bashrc < │ │ │ │ │ 5 Build-Depends: debhelper (>=10), xlibs-dev, libgtk1.2-dev, libglib1.2-dev │ │ │ │ │ 6 Standards-Version: 4.0.0 │ │ │ │ │ @@ -1423,15 +1423,15 @@ │ │ │ │ │ 6 Files: * │ │ │ │ │ 7 Copyright: 1998-2010 Emil Brink │ │ │ │ │ 8 License: GPL-2+ │ │ │ │ │ 9 │ │ │ │ │ 10 Files: icons/* │ │ │ │ │ 11 Copyright: 1998 Johan Hanson │ │ │ │ │ │ │ │ │ │ - 22 / 57 │ │ │ │ │ + 22 / 58 │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 12 License: GPL-2+ │ │ │ │ │ 13 │ │ │ │ │ 14 Files: debian/* │ │ │ │ │ 15 Copyright: 1998-2010 Josip Rodin │ │ │ │ │ @@ -1491,15 +1491,15 @@ │ │ │ │ │ Dòng 3-5 là một mục thông tin, nơi bạn ghi lại những thay đổi được thực hiện trong bản sửa đổi gói này (không phải là những │ │ │ │ │ thay đổi ở thượng nguồn —có một tệp tin đặc biệt cho mục đích đó được tạo ra bởi các tác giả thượng nguồn, mà sau này bạn sẽ │ │ │ │ │ cài đặt dưới dạng /usr/share/doc/gentoo/changelog.gz). Hãy giả sử báo lỗi ITP (Intent To Package) của bạn có số │ │ │ │ │ là 12345. Các dòng mới chèn trên dòng trên cùng nhất của mục nội dung này và bắt đầu với * (dấu sao). Bạn có thể thực hiện │ │ │ │ │ điều này với dch(1), bạn có thể chỉnh sửa bằng tay với một trình soạn thảo văn bản theo quy ước định dạng được sử dụng bởi │ │ │ │ │ dch(1). │ │ │ │ │ │ │ │ │ │ - 23 / 57 │ │ │ │ │ + 23 / 58 │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ Để ngăn chặn một gói bị vô tình tải lên trước khi hoàn thành gói, bạn nên thay đổi giá trị phân phối thành chưa phát hành │ │ │ │ │ UNRELEASED. │ │ │ │ │ Bạn sẽ kết thúc với một cái gì đó như thế này: │ │ │ │ │ 1 │ │ │ │ │ @@ -1556,15 +1556,15 @@ │ │ │ │ │ liệu khả dụng như http://www.gnu.org/software/make/manual/html_node/index.html hoặc như gói make-doc trong non-free. │ │ │ │ │ 12Debian Policy Manual, 4.9 ”Main building script: debian/rules” (http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules) giải thích chi tiết. │ │ │ │ │ 13Target này được sử dụng bởi dpkg-buildpackage như trong Phần 6.1. │ │ │ │ │ 1⁴Target này được sử dụng bởi dpkg-buildpackage -B như trọng Phần 6.2. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -24 / 57 │ │ │ │ │ +24 / 58 │ │ │ │ │ │ │ │ │ │ • binary-indep: để tạo ra các gói nhị phân không phụ thuộc (arch-independent)(Architecture: all) trong thu mục │ │ │ │ │ cha. (Bắt buộc)1⁵ │ │ │ │ │ • get-orig-source: để lấy phiên bản gần nhất của gói nguồn gốc từ một bản lưu trữ thượng nguồn. (Tuỳ chọn) │ │ │ │ │ Bạn bây giờ có thể bị choáng ngợp, nhưng mọi thứ đơn giản hơn nhiều khi kiểm tra tệp rules mà dh_make sử dụng làm mặc │ │ │ │ │ định. │ │ │ │ │ │ │ │ │ │ @@ -1616,15 +1616,15 @@ │ │ │ │ │ gói). Lệnh dh mới đơn giản và giải phóng chúng ta khỏi các công việc thường xuyên làm ”thủ công”. Bạn vẫn có đủ sức mạnh để tùy biến quá trình với các target │ │ │ │ │ là override_dh_*. Xem Phần 4.4.3. Nó chỉ dựa trên gói debhelper và không làm xáo trộn tiến trình xây dựng gói như cách mà gói cdbs có xu hướng. │ │ │ │ │ 1⁷You can verify the actual sequences of dh_* programs invoked for a given target without really running them by invoking dh target --no-act │ │ │ │ │ or debian/rules -- ’target --no-act’. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -25 / 57 │ │ │ │ │ +25 / 58 │ │ │ │ │ │ │ │ │ │ dh_testdir │ │ │ │ │ dh_auto_configure │ │ │ │ │ dh_auto_build │ │ │ │ │ dh_auto_test │ │ │ │ │ │ │ │ │ │ • fakeroot debian/rules binary chạy fakeroot dh binary; chúng bao gồm chạy các lệnh sau1⁸: │ │ │ │ │ @@ -1676,15 +1676,15 @@ │ │ │ │ │ • fakeroot debian/rules binary-indep chạy fakeroot dh binary-indep; chúng bao gồm hầu hết các lệnh │ │ │ │ │ tương tự như fakeroot dh binary nhưng trừ các lệnh dh_strip, dh_makeshlibs, và dh_shlibdeps và với tuỳ chọn -i │ │ │ │ │ cho mỗi lệnh còn lại. │ │ │ │ │ 1⁸Ví dụ sau đây giả định tệp debian/compat của bạn có một giá trị bằng hoặc lớn hơn 9 để tránh gọi bất kỳ câu lệnh hỗ trợ từ python tự động. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -26 / 57 │ │ │ │ │ +26 / 58 │ │ │ │ │ │ │ │ │ │ Các chức năng của lệnh dh_* phần lớn chính là tên của chúng 1⁹ Có một vài điểm nổi bật có thể giải thích một cách đơn giản ở │ │ │ │ │ đây là giả sử một môi trường xây dựng điển hình dựa trên một Makefile: 20 │ │ │ │ │ • dh_auto_clean thường thực hiện như sau nếu một tệp Makefile tồn tại với target là distclean. 21 │ │ │ │ │ make distclean │ │ │ │ │ │ │ │ │ │ • dh_auto_configure thường thực hiện như sau nếu ./configure tồn tại (các đối số được viết tắt cho dễ đọc). │ │ │ │ │ @@ -1728,15 +1728,15 @@ │ │ │ │ │ 22Nó thực sự tìm kiếm target đầu tiên có sẵn trong tệp Makefile trong số test hoặc check, và thực hiện nó. │ │ │ │ │ 23Nếu một gói cài đặt tệp với đường dẫn /usr/share/perl5/Debian/Debhelper/Sequence/custom_name.pm, bạn nên kích hoạt chức năng │ │ │ │ │ tuỳ chỉnh của nó bằng dh $@ --with custom-name. │ │ │ │ │ 2⁴Việc sử dụng dh_python2 được yêu thích hơn là sử dụng dh_pysupport và dh_pycentral. Đừng sử dụng dh_python │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -27 / 57 │ │ │ │ │ +27 / 58 │ │ │ │ │ │ │ │ │ │ – Việc này xử lý các mô-đun Python sử dụng framework python-support │ │ │ │ │ • Thêm lệnh hỗ trợ dh_pycentral. (không dùng nữa) │ │ │ │ │ – Bao gồm gói python-central trong trường Build-Depends. │ │ │ │ │ – Sử dụng dh $@ --with python-central │ │ │ │ │ – Nó cũng bỏ kích hoạt lệnh dh_pysupport │ │ │ │ │ – Việc này xử lý các mô-đun Python sử dụng framework python-central │ │ │ │ │ @@ -1770,15 +1770,15 @@ │ │ │ │ │ • Thêm hỗ trợ cho tính năng gõ nhanh trong bash │ │ │ │ │ – Bao gồm gói bash-completion trong trường Build-Depends. │ │ │ │ │ – Sử dụng dh $@ --with bash-completion │ │ │ │ │ – Cài đặt bash completions sử dụng một tệp cấu hình tại debian/package.bash-completion. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -28 / 57 │ │ │ │ │ +28 / 58 │ │ │ │ │ │ │ │ │ │ Nhiều lệnh dh_* được gọi từ dh mới có thể tuỳ chỉnh các tệp cấu hình tương ứng trong thư mục debian. Xem Chương 5 và │ │ │ │ │ sách hướng dẫn của mỗi lệnh cho việc tùy chỉnh tính năng như vậy. │ │ │ │ │ Bạn có thể cần phải chạy lệnh dh_* được gọi qua dh mới với các đối số được thêm vào, hoặc để chạy các lệnh bổ sung với chúng, │ │ │ │ │ hoặc bỏ qua chúng. Đối với các trường hợp như vậy, bạn tạo một target mới là override_dh_foo bằng quy tắc của nó trong │ │ │ │ │ tệp rules địng nghĩa một target override_dh_foo cho lệnh dh_foo bạn muốn thay đổi. Về cơ bản có nghĩa là chạy tôi thay │ │ │ │ │ vì mặc định. 2⁵ │ │ │ │ │ @@ -1824,15 +1824,15 @@ │ │ │ │ │ 2⁵Trong phiên bản lenny, nếu bạn muốn thay đổi hành vi của một tập lệnh dh_*, bạn sẽ phải tìm thấy dòng liên quan trong rules và tự điều chỉnh nó. │ │ │ │ │ 2⁶dh_auto_build với không có đối số sẽ thực hiện target đầu tiên trong tệp Makefile. │ │ │ │ │ 2⁷Các tệp tin debian/changelog và debian/NEWS luôn luôn được cài đặt tự động. Lịch sử sửa đổi của thượng nguồn được tìm thấy được chuyển thành │ │ │ │ │ tệp chữ thường changelog, changes, changelog.txt, và changes.txt. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -29 / 57 │ │ │ │ │ +29 / 58 │ │ │ │ │ │ │ │ │ │ Chapter 5 │ │ │ │ │ │ │ │ │ │ Các tệp khác trong thư mục debian │ │ │ │ │ The dh_make command had major updates since this old document was written. So some parts of this document aren’t applicable │ │ │ │ │ any more. │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers │ │ │ │ │ @@ -1860,15 +1860,15 @@ │ │ │ │ │ README.Debian │ │ │ │ │ │ │ │ │ │ Bất kỳ chi tiết bổ sung hoặc sự khác biệt giữa gói gốc ban đầu và phiên bản Debian của bạn nên được ghi lại ở đây │ │ │ │ │ dh_make đã tạo ra một tệp mặc định, giống như thế này: │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -30 / 57 │ │ │ │ │ +30 / 58 │ │ │ │ │ │ │ │ │ │ gentoo for Debian │ │ │ │ │ ---------------- │ │ │ │ │ -- Josip Rodin , Wed, 11 Nov 1998 21:02:14 +0100 │ │ │ │ │ │ │ │ │ │ Nếu bạn không có gì để ghi chú, hãy xoá tệp này. Xem dh_installdocs(1). │ │ │ │ │ │ │ │ │ │ @@ -1912,15 +1912,15 @@ │ │ │ │ │ • package.cron.daily - Được cài đặt tại /etc/cron.daily/package; chạy mỗi ngày một lần. │ │ │ │ │ • package.cron.weekly - Được cài đặt tại /etc/cron.weekly/package; chạy mỗi tuần một lần. │ │ │ │ │ • package.cron.monthly - Được cài đặt tại /etc/cron.monthly/package: chạy mỗi tháng một lần. │ │ │ │ │ 1Xem dpkg(1) và Debian Policy Manual, ”D.2.5 Conffiles” (http://www.debian.org/doc/debian-policy/ap-pkg-controlfields.html#s-pkg-f-Conffiles) . │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -31 / 57 │ │ │ │ │ +31 / 58 │ │ │ │ │ │ │ │ │ │ • package.cron.d - Được cài đặt tại /etc/cron.d/package: cho bất kỳ thời gian khác. │ │ │ │ │ Hầu hết các tệp này là kịch bản shell, ngoại trừ tệp trong package.cron.d tuân thủ theo định dạng của crontab(5). │ │ │ │ │ Không cần chỉ định tệp cron.* cho cài đặt ghi chép nhật ký (log rotation); để làm điều này, xem dh_installlogrotate(1) and │ │ │ │ │ logrotate(8). │ │ │ │ │ │ │ │ │ │ 5.5 │ │ │ │ │ @@ -1970,15 +1970,15 @@ │ │ │ │ │ README.gtkrc │ │ │ │ │ TODO │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 5.8 │ │ │ │ │ │ │ │ │ │ -32 / 57 │ │ │ │ │ +32 / 58 │ │ │ │ │ │ │ │ │ │ emacsen-* │ │ │ │ │ │ │ │ │ │ Nếu gói của bạn cung cấp các tệp Emacs có thể được cài tại thời điểm cài đặt gói, bạn có thể sử dụng những tệp này để thiết lập │ │ │ │ │ nó. │ │ │ │ │ Chúng được cài đặt vào thư mục tạm thời bởi dh_installemacsen(1). │ │ │ │ │ Nếu bạn không cần, hãy xoá chúng đi │ │ │ │ │ @@ -2024,15 +2024,15 @@ │ │ │ │ │ Ngoài ra, tệp install có thể chứa tên của tệp tin mà không có thư mục đích để cài đặt khi thư mục tương đối không thay đổi. │ │ │ │ │ Định dạng này thường được sử dụng cho một gói lớn phân chia đầu ra của gói của nó thành nhiều gói nhị phân bằng cách sử dụng │ │ │ │ │ package-1.install, package-2.install, vân vân. │ │ │ │ │ Lệnh dh_install sẽ tìm laị trong thư mục debian/tmp, nếu nó không tìm thấy chúng trong thư mục hiện tại, (hoặc bạn đã nói │ │ │ │ │ với nó qua tuỳ chọn --sourcedir). │ │ │ │ │ 2Tệp này sẽ thay thế lệnh dh_movefiles(1) không được dùng nữa, được cấu hình bởi tệp files . │ │ │ │ │ │ │ │ │ │ - 33 / 57 │ │ │ │ │ + 33 / 58 │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 5.12 │ │ │ │ │ │ │ │ │ │ package.info │ │ │ │ │ │ │ │ │ │ @@ -2111,15 +2111,15 @@ │ │ │ │ │ │ │ │ │ │ Vì vậy trang man của gentoo nên được gọi là gentoo.1. Nếu không có tệp gentoo.1 trong thượng nguồn, bạn nên tạo nó │ │ │ │ │ bằng cách đổi tên template manpage.1.ex thành gentoo.1 và chỉnh sửa nó bằng cách sử dụng thông tin từ các ví dụ và tài │ │ │ │ │ liệu thượng nguồn. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -34 / 57 │ │ │ │ │ +34 / 58 │ │ │ │ │ │ │ │ │ │ Bạn có thể sử dụng lệnh help2man để tạo một manpage mới, help2man sử dụng các dữ liệu từ tuỳ chọn --help và --version │ │ │ │ │ của chương trình để tạo ra manpage. 3 │ │ │ │ │ │ │ │ │ │ 5.15.2 │ │ │ │ │ │ │ │ │ │ manpage.sgml.ex │ │ │ │ │ @@ -2169,15 +2169,15 @@ │ │ │ │ │ 3Lưu ý rằng lệnh help2mansẽ yêu cầu nhiều tài liệu chi tiết hơn có sẵn trong hệ thống info. Nếu thiếu lệnh này trong trang info, bạn nên tạo nó bằng cách │ │ │ │ │ sử dụng lệnh help2man. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 5.18 │ │ │ │ │ │ │ │ │ │ -35 / 57 │ │ │ │ │ +35 / 58 │ │ │ │ │ │ │ │ │ │ {pre,post}{inst,rm} │ │ │ │ │ │ │ │ │ │ Các tệp postinst, preinst, postrm và prerm ⁴ được gọi là maintainer scripts. Chúng là các kịch bản được đặt trong │ │ │ │ │ vùng điều khiển của gói và sẽ được chạy bởi dpkg khi gói của bạn được cài đặt, nâng cấp hoặc xóa. │ │ │ │ │ Là một chuyên gia bảo trì, bạn nên tránh bất kỳ chỉnh sửa thủ công các tập lệnh bảo trì vì chúng dễ xảy ra vấn đề. Để biết thêm thông │ │ │ │ │ tin, hãy tham khảo Debian Policy Manual, 6 ”Package maintainer scripts and installation procedure” (http://www.debian.org/doc/debian-policy/ch-maintainerscripts.html) , và xem các tệp ví dụ được cung cấp bởi dh_make. │ │ │ │ │ @@ -2225,15 +2225,15 @@ │ │ │ │ │ Mặc dù điều này là đúng cho vài trang web, dịch vụ tải của SourceForge tại http://sf.net là một ngoại lệ. Khi tệp watch │ │ │ │ │ chứa một đường dẫn URL khớp với biểu thức chính quy Perl ^http://sf\.net/, chương trình uscan thay thế nó với │ │ │ │ │ ⁴Mặc dù việc sử dụng biểu thức viết tắt bash {pre,post}{inst,rm} để chỉ ra các tệp này, bạn nên sử dụng cú pháp POSIX cho các maintainer scripts │ │ │ │ │ tương thích với dash như trình shell của hệ thống │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -36 / 57 │ │ │ │ │ +36 / 58 │ │ │ │ │ │ │ │ │ │ http://qa.debian.org/watch/sf.php/ và sau đó áp dụng quy tắc này. Dịch vụ chuyển hướng URL tại http://qa.debian.org/được thiết kế để cung cấp dịch vụ ổn định đến tệp mong muốn với bất kỳ watch mẫu biểu thức http://sf.net/project/tar-name │ │ │ │ │ Điều này giải quyết các vấn đề liên quan đế thay đổi định kỳ các đường dẫn SourceForge. │ │ │ │ │ Nếu thượng nguồn cung cấp chữ ký mật mã của tarball, bạn nên xác minh tính xác thực của nó bằng cách sử dụng tùy chọn │ │ │ │ │ pgpsigurlmangle như mô tả trong uscan(1). │ │ │ │ │ │ │ │ │ │ 5.22 │ │ │ │ │ @@ -2283,15 +2283,15 @@ │ │ │ │ │ ⁶Trên thực tế, định dạng mới này cũng hỗ trợ nhiều tarballs thượng nguồn và các phương pháp nén khác. Những điều này nằm ngoài phạm vi của tài liệu │ │ │ │ │ này. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 5.25 │ │ │ │ │ │ │ │ │ │ -37 / 57 │ │ │ │ │ +37 / 58 │ │ │ │ │ │ │ │ │ │ patches/* │ │ │ │ │ │ │ │ │ │ Định dạng nguồn cũ 1.0 tạo một tệp diff.gz duy nhất có chứa tệp bảo trì gói trong debian và các tệp vá cho nguồn. Một │ │ │ │ │ gói như vậy hơi rườm rà để kiểm tra và hiểu cho mỗi thay đổi cây nguồn sau đó. Vì thế đây không phải định dạng tốt. │ │ │ │ │ Định dạng mới 3.0 (quilt) sẽ lưu các bản vá lỗi vào các tệp debian/patches/* bằng cách sử dụng công cụ quilt. Các │ │ │ │ │ bản vá này và các dữ liệu gói khác nằm trong thư mục debian được đóng gói dưới dạng tệp debian.tar.gz. Do lệnh │ │ │ │ │ @@ -2319,15 +2319,15 @@ │ │ │ │ │ ⁷Một số phương pháp bảo trì bộ vá đã được đề xuất và đang được sử dụng cho các gói Debian. Hệ thống quilt là hệ thống bảo trì được ưa thích sử dụng. │ │ │ │ │ Các hệ thống khác bao gồm dpatch, dbs, và cdbs. Nhiều trong số này giữ các bản vá như các tệp tin debian/patches/*. │ │ │ │ │ ⁸Nếu bạn đang yêu cầu một nhà tài trợ để tải lên gói của bạn, cầm làm rõ ràng và viết tài liệu của những thay đổi của bạn là rất quan trọng để tiến hành xem │ │ │ │ │ xét gói bởi nhà tài trợ. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -38 / 57 │ │ │ │ │ +38 / 58 │ │ │ │ │ │ │ │ │ │ Chapter 6 │ │ │ │ │ │ │ │ │ │ Biên dịch gói │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers │ │ │ │ │ (https://www.debian.org/doc/devel-manuals#debmake-doc) . Vui lòng sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ Bây giờ chúng ta xem như đã sẵn sàng để biên dịch gói. │ │ │ │ │ @@ -2356,15 +2356,15 @@ │ │ │ │ │ sau khi biên dịch các gói xong: │ │ │ │ │ 1Mã GPG này phải được ký tên bởi một nhà phát triển Debian để có thể được kết nối tới mạng lưới tín nhiệm và phải được đăng ký vào tập hợp mã │ │ │ │ │ tin cậy của Debian (http://keyring.debian.org) . Điều này cho phép các gói bạn tải lên được chấp nhận vào kho của Debian. Xem Tạo một mã GPG mới │ │ │ │ │ (http://keyring.debian.org/creating-key.html) và Debian Wiki về Ký tên lên mã (http://wiki.debian.org/Keysigning ) . │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -39 / 57 │ │ │ │ │ +39 / 58 │ │ │ │ │ │ │ │ │ │ • gentoo_0.9.12.orig.tar.gz │ │ │ │ │ Đây là tập tin nén chứa mã nguồn nguyên gốc từ các nhà phát triển, chỉ được đổi tên về tên như trên để tuân thủ theo quy định │ │ │ │ │ của Debian. Chú ý rằng tập tin trên được tạo trước tiên bởi lệnh dh_make -f ../gentoo-0.9.12.tar.gz. │ │ │ │ │ • gentoo_0.9.12-1.dsc │ │ │ │ │ Đây là tóm tắt nội dung của mã nguồn. Tập tin này được tạo ra từ tập tin control, và nó được sử dụng khi giải nén mã nguồn │ │ │ │ │ bằng lệnh dpkg-source(1). │ │ │ │ │ @@ -2407,15 +2407,15 @@ │ │ │ │ │ Sau đó nó chạy lệnh sau trong thư mục nguồn: │ │ │ │ │ 2Bạn có thể tránh việc áp dụng các bản vá quilt dưới định dạng nguồn 3.0 (quilt) khi kết thúc việc giải nén với tham số --skip-patches. Một lựa │ │ │ │ │ chọn khác là bạn có thể chạy lệnh dquilt pop -a sau khi làm xong các thao tác thông thường. │ │ │ │ │ 3Hệ thống tự động biên dịch thực tế cần các kế hoạch phức tạp hơn nhiều kế hoạch được giải thích ở đây. Những chi tiết như thế là quá tầm của tài liệu này. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -40 / 57 │ │ │ │ │ +40 / 58 │ │ │ │ │ │ │ │ │ │ $ dpkg-buildpackage -B │ │ │ │ │ │ │ │ │ │ Lệnh này sẽ làm tất cả mọi thứ để tạo ra các gói phần mềm nhị phân phụ thuộc vào nền tảng trên một nền tảng khác. Nó sẽ: │ │ │ │ │ • xóa sạch cây thư mục nguồn (debian/rules clean) │ │ │ │ │ • biên dịch chương trình (debian/rules build) │ │ │ │ │ • biên dịch các gói phần mềm nhị phân phụ thuộc vào nền tảng (fakeroot debian/rules binary-arch) │ │ │ │ │ @@ -2457,15 +2457,15 @@ │ │ │ │ │ ⁴Khác với khi dưới gói phần mềm pbuilder, môi trường chroot dưới gói sbuild vốn được sử dụng bởi hệ thống tự động biên dịch không buộc sử dụng │ │ │ │ │ một hệ thống nhỏ gọn và có thể có nhiều gói phần mềm thừa đã được cài đặt. │ │ │ │ │ ⁵Bởi vì gói phần mềm pbuilder vẫn đang tiếp tục tiến hóa, bạn nên kiểm tra môi trường cấu hình thực sự bằng việc đọc tài liệu hướng dẫn mới nhất. │ │ │ │ │ ⁶Xem http://buildd.debian.org/ để biết thêm về việc tự động biên dịch các gói phần mềm Debian. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -41 / 57 │ │ │ │ │ +41 / 58 │ │ │ │ │ │ │ │ │ │ • cấu hình ~/.pbuilderrc hoặc /etc/pbuilderrc để bao gồm những thứ sau: │ │ │ │ │ AUTO_DEBSIGN=${AUTO_DEBSIGN:-no} │ │ │ │ │ HOOKDIR=/var/cache/pbuilder/hooks │ │ │ │ │ │ │ │ │ │ Trước tiên hãy khởi động hệ thống pbuilder chroot nội bộ như sau: │ │ │ │ │ $ sudo pbuilder create │ │ │ │ │ @@ -2515,15 +2515,15 @@ │ │ │ │ │ doc/pbuilder/examples. │ │ │ │ │ ⁸Có một vài giới hạn cho những cập nhật như vậy đối với gói phần mềm stable của bạn. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 6.5 │ │ │ │ │ │ │ │ │ │ -42 / 57 │ │ │ │ │ +42 / 58 │ │ │ │ │ │ │ │ │ │ Lệnh git-buildpackage và những lệnh tương tự │ │ │ │ │ │ │ │ │ │ Nếu thượng nguồn của bạn dùng một hệ thống quản lý mã nguồn (VCS) ⁹ để bảo trì mã nguồn của họ, bạn cũng nên xem xét việc │ │ │ │ │ sử dụng nó. Nó có thể giúp bạn gộp và chọn các bản vá từ thượng nguồn dễ hơn. Có nhiều gói phần mềm chứa mã kịch bản dùng │ │ │ │ │ cho việc đóng gói các gói phần mềm Debian cho từng VCS. │ │ │ │ │ • git-buildpackage: a giải pháp để giúp việc đóng gói phần mềm Debian với các kho mã nguồn Git. │ │ │ │ │ @@ -2569,15 +2569,15 @@ │ │ │ │ │ 13Các biến môi trường vốn được cấu hình bình thường với các giá trị phù hợp không được gán giá trị với phương pháp này. Đừng bao giờ tạo các gói phần │ │ │ │ │ mềm thực sự để được tải lên với phương pháp nhanh này. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 6.7 │ │ │ │ │ │ │ │ │ │ -43 / 57 │ │ │ │ │ +43 / 58 │ │ │ │ │ │ │ │ │ │ Sơ đồ lệnh │ │ │ │ │ │ │ │ │ │ Đây là một bản tóm tắt cho thấy các lệnh biên dịch gói phần mềm phối hợp như thế nào trong sơ đồ lệnh. Có nhiều cách để làm │ │ │ │ │ một thứ. │ │ │ │ │ • debian/rules = kịch bản của người bảo trì cho biên dịch gói phần mềm │ │ │ │ │ • dpkg-buildpackage = lõi của công cụ biên dịch gói phần mềm │ │ │ │ │ @@ -2590,15 +2590,15 @@ │ │ │ │ │ • gbp buildpackage = pbuilder + dpkg-buildpackage + gbp │ │ │ │ │ Mặc dù việc sử dụng các lệnh cấp cao hơn như gbp buildpackage và pbuilder đảm bảo một môi trường biên dịch phần mềm │ │ │ │ │ hoàn hảo, hãy đặt sự quan trọng vào việc hiểu các lệnh cấp thấp như debian/rules và dpkg-buildpackage được thực thi như │ │ │ │ │ thế nào dưới các lệnh cấp cao. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -44 / 57 │ │ │ │ │ +44 / 58 │ │ │ │ │ │ │ │ │ │ Chapter 7 │ │ │ │ │ │ │ │ │ │ Kiểm tra gói để tìm lỗi │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers │ │ │ │ │ (https://www.debian.org/doc/devel-manuals#debmake-doc) . Vui lòng sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ Có vài phương pháp bạn nên biết để dò tìm lỗi trong một gói phần mềm trước khi tải nó lên kho phần mềm công cộng. │ │ │ │ │ @@ -2636,15 +2636,15 @@ │ │ │ │ │ │ │ │ │ │ Tất cả các kịch bản bảo trì (đó là, các tập tin preinst, prerm, postinst, and postrm) rất khó để viết đúng cách trừ khi │ │ │ │ │ chúng được tạo ra tự động bởi các chương trình debhelper. Vì thể đừng sử dụng chúng nếu bạn là một người bảo trì mới vào │ │ │ │ │ nghề (xem Phần 5.18). │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -45 / 57 │ │ │ │ │ +45 / 58 │ │ │ │ │ │ │ │ │ │ Nếu gói phần mềm tận dụng các kịch bản bảo trì phức tạp này, hãy chắc chắn rằng bạn kiểm tra không chỉ quá trình cài đặt mà │ │ │ │ │ cả công đoạn tháo gỡ phần mềm, xóa hoàn toàn phần mềm, và nâng cấp. Nhiều lỗi kịch bản bảo trì hiện ra khi các phần đã được │ │ │ │ │ tháo gỡ hoặc xóa bỏ. Sử dụng lệnh dpkg như sau để kiểm tra: │ │ │ │ │ $ sudo dpkg -r gentoo │ │ │ │ │ $ sudo dpkg -P gentoo │ │ │ │ │ $ sudo dpkg -i gentoo_version-revision_i386.deb │ │ │ │ │ @@ -2686,15 +2686,15 @@ │ │ │ │ │ 1Bạn không cần phải cung cấp lintian tham số -i -I --show-overrides nếu bạn tùy chỉnh /etc/devscripts.conf hoặc ~/.devscripts │ │ │ │ │ như mô tả trong Phần 6.3. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ 7.5 │ │ │ │ │ │ │ │ │ │ -46 / 57 │ │ │ │ │ +46 / 58 │ │ │ │ │ │ │ │ │ │ Lệnh debc │ │ │ │ │ │ │ │ │ │ Bạn có thể liệt kê các tập tin trong gói phần mềm Debian nhị phân với lệnh debc(1). │ │ │ │ │ $ debc package.changes │ │ │ │ │ │ │ │ │ │ 7.6 │ │ │ │ │ @@ -2729,15 +2729,15 @@ │ │ │ │ │ mc(1) với khả năng cho phép bạn duyệt không chỉ nội dung của các tập tin gói phần mềm *.deb mà cả các tập tin *.udeb, │ │ │ │ │ *.debian.tar.gz, *.diff.gz, và *.orig.tar.gz. │ │ │ │ │ Hãy quan sát cả những tập tin bổ sung không cần thiết và những tập tin không có nội dung, trong cả gói phần mềm nhị phân và │ │ │ │ │ nguồn. Thông thường những phần thừa không được dọn dẹp sạch sẽ; thay đổi tập tin rules của bạn để bù lại điều này. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -47 / 57 │ │ │ │ │ +47 / 58 │ │ │ │ │ │ │ │ │ │ Chapter 8 │ │ │ │ │ │ │ │ │ │ Cập nhật gói phần mềm │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers │ │ │ │ │ (https://www.debian.org/doc/devel-manuals#debmake-doc) . Vui lòng sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ Sau khi bạn tung ra một gói phần mềm, bạn sẽ sớm cần phải cập nhật nó. │ │ │ │ │ @@ -2767,15 +2767,15 @@ │ │ │ │ │ của Debian. │ │ │ │ │ • Lặp lại những gì bạn đã làm phía trên để sửa nhiều lỗi trong quá trình cập nhật tập tin Debian changelog với lệnh dch nếu │ │ │ │ │ cần thiết. │ │ │ │ │ 1Để lấy thông tin ngày dưới định dạng bị bắt buộc, dùng LANG=C date -R. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -48 / 57 │ │ │ │ │ +48 / 58 │ │ │ │ │ │ │ │ │ │ • Lặp lại những gì bạn đã làm ở Phần 6.1 và Chương 7. │ │ │ │ │ • Khi bạn đã hài lòng, bạn nên thay đổi giá trị bản phân phối trong tập tin changelog từ UNRELEASED sang giá trị bản phân │ │ │ │ │ phối đích unstable (hoặc thậm chí experimental).2 │ │ │ │ │ • Tải lên gói phần như ở Chương 9. Sự khác biệt là lần này, tập tin nén chứa mã nguồn nguyên vẹn ban đầu sẽ không được đính │ │ │ │ │ kèm, bởi vì nó không có thay đổi gì và nó đã tồn tại trong kho lưu trữ của Debian. │ │ │ │ │ Một tình huống khó có thể xảy ra khi bạn tạo một gói phần mềm tại chỗ để thí nghiệm với quá trình đóng gói trước khi tải phiên │ │ │ │ │ @@ -2819,15 +2819,15 @@ │ │ │ │ │ Nếu bản vá/ghép không áp dụng được sạch sẽ, thẩm định tình hình (gợi ý được để trong các tập tin .rej). │ │ │ │ │ 2Nếu bạn sử dụng lệnh dch -r để tạo thay đổi cuối này, vui lòng đảm bảo bạn đã lưu tệp changelog một cách rõ ràng bởi trình soạn thảo │ │ │ │ │ 3Nếu một gói phần mềm foo được đóng gói theo định dạng cũ 1.0, công việc này có thể được hoàn thành bằng việc chạy lệnh zcat │ │ │ │ │ /path/to/foo_oldversion.diff.gz|patch -p1 │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -49 / 57 │ │ │ │ │ +49 / 58 │ │ │ │ │ │ │ │ │ │ • Nếu một bản vá bạn đã áp dụng với mã nguồn được ghép vào mã nguồn từ thượng nguồn, │ │ │ │ │ – chạy lệnh dquilt delete để tháo bỏ nó ra. │ │ │ │ │ • Nếu một bản vá bạn đã áp dụng vào mã nguồn xung đột với những thay đổi mới đến từ mã nguồn mới của thượng nguồn, │ │ │ │ │ – dquilt push -f để áp dụng những bản vá cũ trong khi ép buộc các từ chối vá từ tập tin baz.rej. │ │ │ │ │ – Sửa tập tin baz bằng tay để có được hiệu quả mong muốn của tập tin baz.rej. │ │ │ │ │ – dquilt refresh để cập nhật bản vá │ │ │ │ │ @@ -2872,15 +2872,15 @@ │ │ │ │ │ ⁴Nếu lệnh uscan tải về mã nguồn mới nhưng nó không chạy lệnh uupdate, bạn nên sửa tập tin debian/watch để có dòng debian uupdate tại cuối │ │ │ │ │ của đường dẫn URL. │ │ │ │ │ ⁵Nếu nhà tài trợ của bạn hoặc các nhà bảo trì khác phản đối việc cập nhật cách đóng gói hiện tại, đừng phí thời gian tranh cãi. Có nhiều việc quan trọng hơn │ │ │ │ │ cần phải làm. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -50 / 57 │ │ │ │ │ +50 / 58 │ │ │ │ │ │ │ │ │ │ – The Common Debian Build System (CDBS), FOSDEM 2009 (http://meetings-archive.debian.net/pub/debian-meetings/2009/fosdem/slides/The_Common_Debian_Build_System_CDBS/) │ │ │ │ │ • Nếu bạn có một gói phần mềm nguồn với định dạng 1.0 mà không có tập tin foo.diff.gz, bạn có thể cập nhật nó lên định │ │ │ │ │ dạng nguồn 3.0 (native) mới hơn bằng việc tạo tập tin debian/source/format chứa dòng 3.0 (native). Các │ │ │ │ │ tập tin debian/* còn lại có thể được sao chép sang. │ │ │ │ │ • Nếu bạn có một gói phần mềm nguồn với định dạng 1.0 mà không có tập tin foo.diff.gz, bạn có thể cập nhật nó lên định │ │ │ │ │ dạng nguồn 3.0 (native) mới hơn bằng việc tạo tập tin debian/source/format chứa dòng 3.0 (native). Các │ │ │ │ │ @@ -2924,15 +2924,15 @@ │ │ │ │ │ • Kiểm tra những nội dung của tập tin .changes để chắc chắn rằng bạn đang tải lên đúng bản phân phối, các lỗi được đóng │ │ │ │ │ đúng cách được liệt kê trong trường Closes, trường Maintainer và Changed-By phải khớp, tập tin phải được ký bằng │ │ │ │ │ GPG, v.v. │ │ │ │ │ ⁶Bạn có thể chặt tập tin big.diff ra nhiều bản vá nhỏ liên tiếp dùng lệnh splitdiff. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -51 / 57 │ │ │ │ │ +51 / 58 │ │ │ │ │ │ │ │ │ │ Chapter 9 │ │ │ │ │ │ │ │ │ │ Tải gói phần mềm lên │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers │ │ │ │ │ (https://www.debian.org/doc/devel-manuals#debmake-doc) . Vui lòng sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ Debian now requires source-only uploads for normal upload. So this page is outdated. │ │ │ │ │ @@ -2967,15 +2967,15 @@ │ │ │ │ │ 3Gói phần mềm dput có vẻ đến với nhiều tính năng và có vẻ đang trở nên thông dụng hơn gói phần mềm dupload. Nó sử dụng tập tin /etc/dput cho │ │ │ │ │ việc cấu hình mọi nơi của nó và tập tin ~/.dput.cf cho việc cấu hình từng người dùng. Nó cũng hỗ trợ đầy đủ các dịch vụ liên quan đến Ubuntu. │ │ │ │ │ ⁴Xem Debian Developer’s Reference 5.6, ”Uploading a package” (http://www.debian.org/doc/manuals/developers-reference/pkgs.html#upload) . │ │ │ │ │ ⁵Xem ftp://ftp.upload.debian.org/pub/UploadQueue/README. Ngoài ra, bạn có thể dùng lệnh dcut từ gói phần mềm dput. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -52 / 57 │ │ │ │ │ +52 / 58 │ │ │ │ │ │ │ │ │ │ mv hello_1.0-1.dsx hello_1.0-1.dsc │ │ │ │ │ -----BEGIN PGP SIGNATURE----Version: GnuPG v1.4.10 (GNU/Linux) │ │ │ │ │ [...] │ │ │ │ │ -----END PGP SIGNATURE----- │ │ │ │ │ │ │ │ │ │ 9.2 │ │ │ │ │ @@ -3009,104 +3009,111 @@ │ │ │ │ │ $ debuild -v1.2 │ │ │ │ │ │ │ │ │ │ For the pdebuild command: │ │ │ │ │ $ pdebuild --debbuildopts ”-v1.2” │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -53 / 57 │ │ │ │ │ +53 / 58 │ │ │ │ │ │ │ │ │ │ Appendix A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +Đóng gói nâng cao │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các ví dụ thực tế hơn đã có ở Guide for Debian Maintainers │ │ │ │ │ (https://www.debian.org/doc/devel-manuals#debmake-doc) . Vui lòng sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ -Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ -to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +Sau đây là một vài gợi ý và chỉ dẫn cho các đề tài đóng gói nâng cáo mà bạn rất có thể phải đối mặt. Bạn rất được khuyến khích │ │ │ │ │ +đọc tất cả những tài liệu liên quan được đề nghị ở đây. │ │ │ │ │ +Bạn có thể cần phải thay đổi các tập tin khuôn mẫu đóng gói tạo ra bởi lệnh dh_make để biết được các đề tài được nói tới trong │ │ │ │ │ +chương này. Lệnh debmake mới hơn có thể sẽ nói về các đề tài này tốt hơn. │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +Các thư viện được chia sẻ │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ -• Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ -• Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ -• Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -• Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -• Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -• Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -• Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ -• Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ -to them from the linked executables. │ │ │ │ │ -• The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -• The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -• The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -• libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +Trước khi đóng gói các thư viện được chia sẻ, bạn nên đọc những tài liệu liên quan sau một cách chi tiết: │ │ │ │ │ +• Hướng dẫn về Chính sách Debian, 8 ”Các Thư viện Chia sẻ” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ +• Hướng dẫn về Chính sách Debian, 9.1.1 ”Cấu trúc Hệ thống tập tin” (http://www.debian.org/doc/debian-policy/ch-opersys.html#sfhs) │ │ │ │ │ +• Hướng dẫn về Chính sách Debian, 10.2 ”Các Thư viện” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ +Sau đây là một số gợi ý được đơn giản hóa quá mức để giúp bạn bắt đầu: │ │ │ │ │ +• Các thư viện chia sẻ là các tập tin đối tượng ELF chứa mã biên dịch. │ │ │ │ │ +• Các thư viện chia sẻ được phân phối bởi các tập tin *.so. (Không phải các tập tin *.a hay các tập tin *.la) │ │ │ │ │ +• Các thư viện chia sẻ được sử dụng phần lớn để chia sẻ những mã thông dụng giữa nhiều tập tin thực thi với cơ chế ld. │ │ │ │ │ +• Các thư viện chia sẻ thỉnh thoảng được sử dụng để cung cấp nhiều phần mở rộng có thể cắm vào một tập tin thực thi với cơ chế │ │ │ │ │ +dlopen. │ │ │ │ │ +• Các thư viện chia sẻ xuất các ký hiệu đại diện cho các đối tượng được biên dịch như là các tham biến, các hàm, và các class; │ │ │ │ │ +và cho phép truy cập tới chúng từ các tập tin thực thi được kết nối tới chúng. │ │ │ │ │ +• SONAME của một thư viện chia sẻ libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ +• SONAME của một thư viện chia sẻ thường khớp với tên tập tin thư viện (nhưng không phải luôn luôn như vậy). │ │ │ │ │ +• SONAME của các thư viện chia sẻ được kết nối tới /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ +1Ngoài ra: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +2Ngoài ra: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -54 / 57 │ │ │ │ │ - │ │ │ │ │ -• The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ -• libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ -• libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ -• Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ -• Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -• Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +54 / 58 │ │ │ │ │ + │ │ │ │ │ +• libfoo1: gói phần mềm thư viện cho thư viện chia sẻ libfoo.so.1 với phiên bản SONAME ABI 1.3 │ │ │ │ │ +• Các kịch bản bảo trì gói phần mềm của gói phần mềm thư viện phải gọi lệnh ldconfig dưới các tình huống cụ thể để tạo các kết │ │ │ │ │ +nối tượng trưng cho SONAME.⁴ │ │ │ │ │ +• libfoo1-dbg: gói phần mềm ký hiệu dò lỗ chứa các ký hiệu dò lỗi cho gói phần mềm thư viện chia sẻ libfoo1. │ │ │ │ │ +• libfoo-dev: gói phần mềm phát triển chứa những tập tin tiêu đề v.v. cho thư viện chia sẻ libfoo.so.1.⁵ │ │ │ │ │ +• Các gói Debian không nên chứa các tập tin lưu trữ *.la nói chung.⁶ │ │ │ │ │ +• Gói phần mềm Debian nói chung không nên sử dụng RPATH.⁷ │ │ │ │ │ + │ │ │ │ │ +• Mặc dù nó có thể đã lạc hậu và chỉ tồn tại như là tài liêu tham khảo thứ cấp, Hướng dẫn Đóng gói thư viện Debian (http://www.netfort.gr.jp │ │ │ │ │ +~dancer/column/libpkg-guide/libpkg-guide.html) có thể vẫn hữu dụng. │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +Quản lý debian/package.symbols │ │ │ │ │ │ │ │ │ │ -When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ -associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ -library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ -• Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ +Khi bạn đóng gói một thư viện chia sẻ, bạn nên tạo một tập tin debian/package.symbols để quản lý phiên bản thấp nhất │ │ │ │ │ +liên quan tới từng ký hiệu cho các thay đổi ABI tương thích ngược dưới cùng một SONAME của thư viện cho cùng một tên gói │ │ │ │ │ +phần mềm thư viện.⁸ Bạn nên đọc những tài liệu liên quan chính thống sau đây một cách chi tiết: │ │ │ │ │ +• Hướng dẫn Chính sách Debian, 8.6.3 ”Hệ thống ký hiệu” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#ssharedlibs-symbols) ⁹ │ │ │ │ │ • dh_makeshlibs(1) │ │ │ │ │ • dpkg-gensymbols(1) │ │ │ │ │ • dpkg-shlibdeps(1) │ │ │ │ │ • deb-symbols(5) │ │ │ │ │ -Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ -libfoo1.symbols file: │ │ │ │ │ -• Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -– If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -– If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1.symbols │ │ │ │ │ -in its source package, use it again. │ │ │ │ │ -– If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ -from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ -for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ +Sau đây là một ví dụ sơ khảo để tạo một gói phần mềm libfoo1 tương ứng với phiên bản thượng nguồn 1.3 với tập tin │ │ │ │ │ +debian/libfoo1.symbols phù hợp: │ │ │ │ │ +• Chuẩn bị một sườn cho cây mã nguồn Debian hóa sử dụng tập tin thượng nguồn libfoo-1.3.tar.gz. │ │ │ │ │ +– Nếu đây là lần đóng gói đầu tiên của gói phần mềm libfoo1, tạo một tập tin debian/libfoo1.symbols rỗng. │ │ │ │ │ +– Nếu phiên bản thượng nguồn trước đó 1.2 được đóng gói thành gói phần mềm libfoo1 với một tập tin debian/ │ │ │ │ │ +libfoo1.symbols phù hợp trong gói phần mềm nguồn của nó, hãy sử dụng lại tập tin đó. │ │ │ │ │ +– Nếu bản thượng nguồn trước đó 1.2 không được đóng gói với tập tin debian/libfoo1.symbols, tạo một tập tin như │ │ │ │ │ +là tập tin symbols từ tất cả các gói phần mềm nhị phân có sẵn của một tên gói phần mềm thư viện chứa cùng SONAME │ │ │ │ │ +của một thư viện, ví dụ, các phiên bản 1.1-1 và 1.2-1. 10 │ │ │ │ │ +3Xem Hướng dẫn về Chính sách Debian, 8.1 ”Các Thư viện chia sẻ khi chạy” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibsruntime) . │ │ │ │ │ +⁴Xem Hướng dẫn về Chính sách Debian, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ +⁵Xem Hướng dẫn Chính sách Debian, 10.2 ”Các Thư viện tĩnh” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) và Hướng │ │ │ │ │ +dẫn về Chính sách Debian, 8.4 ”Các Tập tin phát triển” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) │ │ │ │ │ +⁶Xem Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +⁷Xem Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +⁸Các thay đổi ABI không tương thích ngược thông thường cần bạn phải cập nhật SONAME của thư viện và tên gói phần mềm thư viện chia sẻ sang những │ │ │ │ │ +tên mới. │ │ │ │ │ +⁹Với các thư viện C++ và các tình huống khác mà theo dõi từng ký hiệu là vô cùng khó khăn, thay vì như trên hãy làm theo Hướng dẫn Chính sách về Debian, │ │ │ │ │ +8.6.4 ”Hệ thống shlibs” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , │ │ │ │ │ +10Tất cả các phiên bản trước đó của các gói phần mềm Debian có sẵn tại http://snapshot.debian.org/ (http://snapshot.debian.org/) . Phiên bản tu chỉnh Debian │ │ │ │ │ +được cắt bỏ khỏi phiên bản để giúp việc backport gói phần mềm (tạo gói phần mềm chứa các cập nhật mới cho các bản phân phối Debian cũ) dễ hơn: 1.1 << │ │ │ │ │ +1.1-1~bpo70+1 << 1.1-1 và 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + │ │ │ │ │ + Debian New Maintainers’ Guide │ │ │ │ │ + │ │ │ │ │ +55 / 58 │ │ │ │ │ + │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ - │ │ │ │ │ - Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -55 / 57 │ │ │ │ │ - │ │ │ │ │ -• Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ -were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ -libfoo1a and you should start over again.) │ │ │ │ │ +• Tạo các bản biên dịch thử của cây mã nguồn với các công cụ như là debuild và pdebuild. (Nếu điều này thất bại do thiếu ký │ │ │ │ │ +hiệu v.v., đã có một số thay đổi ABI không tương thích ngược buộc bạn phải tăng tên gói phần mềm thư viện chia sẻ lên một │ │ │ │ │ +tên như là libfoo1a và bạn nên bắt đầu lại từ đầu.) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx │ │ │ │ │ @@ -3117,176 +3124,214 @@ │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -• If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ -binary package of the shared library. 11 │ │ │ │ │ +• Nếu bạn thấy sự khác biệt in ra bởi lệnh dpkg-gensymbols như trên, giải nén tập tin symbols phù hợp cập nhật mới nhất từ │ │ │ │ │ +gói phần mềm nhị phân được tạo ra của thư viện chia sẻ. 11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -• Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +• Biên dịch các gói phần mềm phát hành với các công cụ như debuild và pdebuild. │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ +Bên cạnh các ví dụ ở trên, chúng ta cần phải kiểm tra tương thích ABI hơn nữa và tăng các phiên bản cho một vài ký hiệu bằng │ │ │ │ │ +tay nếu cần. 12 │ │ │ │ │ +Mặc dù đây chỉ là một tài liệu tham khảo thứ cấp, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) │ │ │ │ │ +và những trang điện tử kết nối tới nó có thể rất hữu dụng. │ │ │ │ │ │ │ │ │ │ A.3 │ │ │ │ │ │ │ │ │ │ Multiarch │ │ │ │ │ │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages (particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in detail: │ │ │ │ │ -• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +Tính năng multiarch được giới thiệu ở Debian wheezy tích hợp hỗ trợ cho cài đặt xuyên nền tảng của các gói phần mềm nhị phân │ │ │ │ │ +(đặc biệt i386<->amd64, nhưng cũng một vài kết hợp khác) trong dpkg và apt. Bạn nên đọc các tài liệu tham khảo sau một │ │ │ │ │ +cách chi tiết: │ │ │ │ │ +11Phiên bản tu chỉnh Debian được cắt bỏ khỏi phiên bản để giúp việc backport gói phần mềm (tạo gói phần mềm chứa các cập nhật mới cho các bản phân │ │ │ │ │ +phối Debian cũ) dễ hơn: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12Xem Hướng dẫn về Chính sách Debian, 8.6.2 ”Các Thay đổi ABI của Thư viện chia sẻ” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#ssharedlibs-updates) │ │ │ │ │ │ │ │ │ │ - 56 / 57 │ │ │ │ │ + 56 / 58 │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -Old path │ │ │ │ │ +• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (thượng nguồn) │ │ │ │ │ +• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (tình huống Debian) │ │ │ │ │ +Nó sử dụng bộ ba như là i386-linux-gnu và x86_64-linux-gnu cho đường dẫn cài đặt của các thư viện chia sẻ. Đường │ │ │ │ │ +dẫn bộ ba thực sự được đặt giá trị linh động theo tham biến $(DEB_HOST_MULTIARCH) dùng lệnh dpkg-architecture(1) cho │ │ │ │ │ +từng lần biên dịch gói phần mềm nhị phân. Ví dụ, đường dẫn để cài đặt các thư viện multiarch được thay đổi như sau:13 │ │ │ │ │ +Đường dẫn cũ │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +Đường dẫn i386 multiarch │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +Đường dẫn amd64 multiarch │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -• a library source libfoo-1.tar.gz │ │ │ │ │ -• a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -• a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ +Sau đây là một vài ví dụ về tình huống băm gói phần mềm multiarch tiêu biểu cho các gói: │ │ │ │ │ +• một gói phần mềm nguồn cho libfoo-1.tar.gz │ │ │ │ │ +• một gói phần mềm nguồn công cụ bar-1.tar.gz viết bằng một ngôn ngữ biên dịch. │ │ │ │ │ +• một gói phần mềm nguồn công cụ baz-1.tar.gz viết bằng một ngôn ngữ thông dịch │ │ │ │ │ Package │ │ │ │ │ libfoo1 │ │ │ │ │ libfoo1-dbg │ │ │ │ │ + │ │ │ │ │ +Architecture: │ │ │ │ │ +bất kỳ │ │ │ │ │ +bất kỳ │ │ │ │ │ + │ │ │ │ │ +Multi-Arch: │ │ │ │ │ +không đổi │ │ │ │ │ +không đổi │ │ │ │ │ + │ │ │ │ │ libfoo-dev │ │ │ │ │ + │ │ │ │ │ +bất kỳ │ │ │ │ │ + │ │ │ │ │ +không đổi │ │ │ │ │ + │ │ │ │ │ libfoo-tools │ │ │ │ │ + │ │ │ │ │ +bất kỳ │ │ │ │ │ + │ │ │ │ │ +Xa lạ │ │ │ │ │ + │ │ │ │ │ libfoo-doc │ │ │ │ │ + │ │ │ │ │ +tất cả │ │ │ │ │ + │ │ │ │ │ +Xa lạ │ │ │ │ │ + │ │ │ │ │ bar │ │ │ │ │ + │ │ │ │ │ +bất kỳ │ │ │ │ │ + │ │ │ │ │ +Xa lạ │ │ │ │ │ + │ │ │ │ │ bar-doc │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -Architecture: │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -all │ │ │ │ │ +tất cả │ │ │ │ │ +tất cả │ │ │ │ │ │ │ │ │ │ -Multi-Arch: │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ - │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ +Xa lạ │ │ │ │ │ +Xa lạ │ │ │ │ │ │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +Nội dung gói phần mềm │ │ │ │ │ +thư viện được chia sẻ, có thể cài cùng lúc │ │ │ │ │ +các ký hiệu dò lỗi của thư viện chia sẻ, có thể cài cùng lúc │ │ │ │ │ +các tập tin tiêu đề của thư viện chia sẻ v.v., có thể cài cùng │ │ │ │ │ +lúc │ │ │ │ │ +Các chương trình hỗ trợ khi chạy, không thể cài đặt cùng │ │ │ │ │ +lúc │ │ │ │ │ +những tập tin tài liệu hướng dẫn của thư viện chia sẻ │ │ │ │ │ +các tập tin chương trình đã biên dịch, không thể cài đặt │ │ │ │ │ +cùng lúc │ │ │ │ │ +những tập tin tài liệu hướng dẫn cho chương trình │ │ │ │ │ +các tập tin chương trình được thông dịch │ │ │ │ │ + │ │ │ │ │ +Xin chú ý rằng gói phần mềm phát triển nên chứa một kết nối tượng trưng cho thư viện chia sẻ tương ứng không có số phiên │ │ │ │ │ +bản. Ví dụ: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +Biên dịch một gói phần mềm chia sẻ │ │ │ │ │ │ │ │ │ │ -You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -• Update debian/control. │ │ │ │ │ -– Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -– Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -– Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ -• Set debian/compat to ”10”. │ │ │ │ │ -• Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ -– Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ -to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -– Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ -– If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ -replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -– Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ -– Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ -target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ +Bạn có thể biên dịch một gói phần mềm thư viện Debian cho phép hỗ trợ multiarch dh(1) như sau: │ │ │ │ │ +• Cập nhật debian/control. │ │ │ │ │ +– Thêm Build-Depends: debhelper (>=10) cho phần gói phần mềm nguồn. │ │ │ │ │ +– Thêm Pre-Depends: ${misc:Pre-Depends} cho mỗi gói phần mềm nhị phân thư viện chia sẻ. │ │ │ │ │ +– Thêm Multi-Arch: cho mỗi phần tương ứng với mỗi gói phần mềm nhị phân. │ │ │ │ │ +• Đặt giá trị 10 cho debian/compat. │ │ │ │ │ +• Điều chỉnh đường dẫn từ /usr/lib/ bình thường sang multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ cho tất cả │ │ │ │ │ +kịch bản đóng gói. │ │ │ │ │ +– Gọi DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) trong debian/ │ │ │ │ │ +rules để đặt giá trị cho tham biến DEB_HOST_MULTIARCH trước tiên. │ │ │ │ │ +13Các đường dẫn thư viện chuyên dụng cũ như /lib32/ và /lib64/ không được sử dụng nữa. │ │ │ │ │ │ │ │ │ │ Debian New Maintainers’ Guide │ │ │ │ │ │ │ │ │ │ -57 / 57 │ │ │ │ │ - │ │ │ │ │ +57 / 58 │ │ │ │ │ + │ │ │ │ │ +– Thay thế /usr/lib/ với /usr/lib/$(DEB_HOST_MULTIARCH)/ trong debian/rules. │ │ │ │ │ +– Nếu ./configure được sử dụng trong một phần của mục tiêu override_dh_auto_configure trong debian/ │ │ │ │ │ +rules, chắc chắn rằng bạn thay thế nó với dh_auto_configure -- . 1⁴ │ │ │ │ │ +– Thay thế hết tất cả các sự xuất hiện của /usr/lib/ với /usr/lib/*/ trong các tập tin debian/foo.install. │ │ │ │ │ +– Tạo ra các tập tin như debian/foo.links từ debian/foo.links.in một cách tự động bắng thêm một kịch bản vào │ │ │ │ │ +mục tiêu override_dh_auto_configure trong debian/rules. │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ -All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ -must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ +Hãy chắc chắn rằng gói phần mềm thư viện chia sẻ chỉ chứa duy nhất các tập tin được trông đợi, và gói phần mềm -dev của bạn │ │ │ │ │ +vẫn hoạt động tốt. │ │ │ │ │ +Tất cả các tập tin được cài đặt cùng lúc với gói phần mềm multiarch vào cùng một đường dẫn nên có cùng một nội dung chính │ │ │ │ │ +xác như nhau. Bạn phải cẩn thận với những sự khác biệt tạo ra bởi thứ tự byte dữ liệu và thuật toán nén. │ │ │ │ │ │ │ │ │ │ A.5 │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ +Gói phần mềm Debian native │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ -You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in │ │ │ │ │ -Phần 2.1. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -• Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ +Nếu một gói phần mề được bảo trì chỉ cho Debian hoặc có thể chỉ cho việc dùng nội bộ, mã nguồn của nó có thể chứa tất các tập │ │ │ │ │ +tin debian/* bên trong nó. Có 2 cách để đóng gói nó. │ │ │ │ │ +Bạn có thể tạo một tập tin lưu trữ thượng nguồn bằng việc loại trừ tất cả các tập tin debian/* và đóng gói nó như là một gói │ │ │ │ │ +phần mềm nhị phân Debian không native như ở Phần 2.1. Đây là cách thông thường mọi người khuyến khích sử dụng. │ │ │ │ │ +Một cách khác là cách làm của một gói phần mềm Debian native. │ │ │ │ │ +• Tạo một gói phần mềm nguồn Debian native dưới định dạng 3.0 (native) bằng việc sử dụng một tập tin nén tar đơn độc │ │ │ │ │ +chứa tất cả các tập tin bên trong. │ │ │ │ │ – package_version.tar.gz │ │ │ │ │ – package_version.dsc │ │ │ │ │ -• Build Debian binary packages from the native Debian source package. │ │ │ │ │ +• Biên dịch các gói phần mềm nhị phân Debian từ gói phần mềm nguồn Debian native. │ │ │ │ │ – package_version_arch.deb │ │ │ │ │ -For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ -package by issuing the dh_make command as follows: │ │ │ │ │ +Ví dụ, nếu bạn có các tập tin nguồn trong thư mục ~/mypackage-1.0 mà không có các tập tin debian/*, bạn có thể tạo │ │ │ │ │ +một gói phần mềm Debian native cho nó bằng việc chạy lệnh dh_make như sau: │ │ │ │ │ $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ -Then the debian directory and its contents are created just like in Phần 2.8. This does not create a tarball, since this is a native │ │ │ │ │ -Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ +Sau đó thư mục debian và nội dụng của nó được tạo như là ở Phần 2.8. Hành động này không tạo một tập tin lưu trữ vì đây là │ │ │ │ │ +một gói phần mềm Debian native. Nhưng đó là điểm khác biệt duy nhất. Phần còn lại của quá trình đóng gói thực tế là không │ │ │ │ │ +khác gì. │ │ │ │ │ +Sau khi chạy lệnh dpkg-buildpackage, bạn sẽ thấy các tập tin sau trong thư mục cha: │ │ │ │ │ • mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ +Đây là tập tin mã nguồn tạo ra từ thư mục mypackage-1.0 bởi lệnh dpkg-source command. (Phần hậu tố của nó không │ │ │ │ │ +phải là orig.tar.gz.) │ │ │ │ │ +1⁴Ngoài │ │ │ │ │ +ra, │ │ │ │ │ +bạn │ │ │ │ │ +có │ │ │ │ │ +thể │ │ │ │ │ +thêm │ │ │ │ │ +các │ │ │ │ │ +đối │ │ │ │ │ +số │ │ │ │ │ +--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ +và │ │ │ │ │ +--libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) cho ./configure. Xin hãy chú ý rằng tham số --libexecdir thông │ │ │ │ │ +báo đường dẫn ngầm định để cài đặt các chương trình thực thi được chạy bởi các chương trình khác thay vì bởi người dùng. Giá trị ngầm định Autotools của nó │ │ │ │ │ +là /usr/libexec/ nhưng ngầm định của Debian là /usr/lib/. │ │ │ │ │ + │ │ │ │ │ + Debian New Maintainers’ Guide │ │ │ │ │ + │ │ │ │ │ +58 / 58 │ │ │ │ │ + │ │ │ │ │ • mypackage_1.0.dsc │ │ │ │ │ -This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +Đây là bản tóm tắt của những nội dung của mã nguồn như ở trong gói phần mềm Debian không native. (There có mã tu chỉnh │ │ │ │ │ +Debian.) │ │ │ │ │ • mypackage_1.0_i386.deb │ │ │ │ │ -This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +Đây là gói phần mềm nhị phân hoàn chỉnh của bạn như là gói phần mềm Debian không native. (Không có mã tu chỉnh Debian.) │ │ │ │ │ • mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no Debian │ │ │ │ │ -revision.) │ │ │ │ │ +Tập tin này mô tả những thay đổi được tạo ra trong phiên bản gói phần mềm hiện tại như ở trong gói phần mềm Debian không │ │ │ │ │ +native. (Không có bản tu chỉnh Debian.) │ │ │ ├── ./usr/share/doc/maint-guide-vi/maint-guide.vi.txt.gz │ │ │ │ ├── maint-guide.vi.txt │ │ │ │ │ @@ -131,20 +131,20 @@ │ │ │ │ │ 8.4. Cập nhật kiểu đóng gói │ │ │ │ │ 8.5. Chuyển đổi sang UTF-8 │ │ │ │ │ 8.6. Các nhắc nhở cho việc cập nhật các gói phần mềm │ │ │ │ │ 9. Tải gói phần mềm lên │ │ │ │ │ 9.1. Tải nó lên kho lưu trữ Debian │ │ │ │ │ 9.2. Đính kèm orig.tar.gz cho việc tải lên │ │ │ │ │ 9.3. Những lần tải lên bị bỏ qua │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ +A. Đóng gói nâng cao │ │ │ │ │ + A.1. Các thư viện được chia sẻ │ │ │ │ │ + A.2. Quản lý debian/package.symbols │ │ │ │ │ A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ + A.4. Biên dịch một gói phần mềm chia sẻ │ │ │ │ │ + A.5. Gói phần mềm Debian native │ │ │ │ │ │ │ │ │ │ Chương 1. Bắt đầu Đúng cách │ │ │ │ │ │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các │ │ │ │ │     ví dụ thực tế hơn đã có ở Guide for Debian Maintainers. Vui lòng │ │ │ │ │ sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ │ │ │ │ │ @@ -2816,16 +2816,16 @@ │ │ │ │ │     thích tại sao mọi người chọn Debian. Bạn phải thật cẩn thận để │ │ │ │ │ không biết chúng thành nguồn gây phiền toái. │ │ │ │ │ │ │ │ │ │ 5.19. package.symbols │ │ │ │ │ │ │ │ │ │ Việc đóng gói một thư viện là không dễ dàng cho người bảo trì mới │ │ │ │ │     làm quen và nên tránh. Còn nếu gói của bạn có các thử viện, bạn │ │ │ │ │ - nên có tệp debian/package.symbols. Xem Phần A.2, “Managing debian │ │ │ │ │ - /package.symbols”. │ │ │ │ │ + nên có tệp debian/package.symbols. Xem Phần A.2, “Quản lý debian/ │ │ │ │ │ + package.symbols”. │ │ │ │ │ │ │ │ │ │ 5.20. TODO │ │ │ │ │ │ │ │ │ │     Lệnh dh_installdocs(1) cài đặt tệp này. │ │ │ │ │ │ │ │ │ │ 5.21. watch │ │ │ │ │ │ │ │ │ │ @@ -4058,139 +4058,144 @@ │ │ │ │ │ │ │ │ │ │     ^[85] Xem Debian Developer's Reference 5.6, "Uploading a │ │ │ │ │ package". │ │ │ │ │ │ │ │ │ │     ^[86] Xem ftp://ftp.upload.debian.org/pub/UploadQueue/README. │ │ │ │ │ Ngoài ra, bạn có thể dùng lệnh dcut từ gói phần mềm dput. │ │ │ │ │ │ │ │ │ │ -Phụ lục A. Advanced packaging │ │ │ │ │ +Phụ lục A. Đóng gói nâng cao │ │ │ │ │ │ │ │ │ │ Việc viết lại tài liệu này với các nội dung cập nhật và nhiều các │ │ │ │ │     ví dụ thực tế hơn đã có ở Guide for Debian Maintainers. Vui lòng │ │ │ │ │ sử dụng tài liệu mới này như là tài liệu hướng dẫn chính. │ │ │ │ │ │ │ │ │ │ - Here are some hints and pointers for advanced packaging topics │ │ │ │ │ -    that you are most likely to deal with. You are strongly advised │ │ │ │ │ - to read all the references suggested here. │ │ │ │ │ + Sau đây là một vài gợi ý và chỉ dẫn cho các đề tài đóng gói nâng │ │ │ │ │ +    cáo mà bạn rất có thể phải đối mặt. Bạn rất được khuyến khích đọc │ │ │ │ │ + tất cả những tài liệu liên quan được đề nghị ở đây. │ │ │ │ │ │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ + Bạn có thể cần phải thay đổi các tập tin khuôn mẫu đóng gói tạo │ │ │ │ │ +    ra bởi lệnh dh_make để biết được các đề tài được nói tới trong │ │ │ │ │ + chương này. Lệnh debmake mới hơn có thể sẽ nói về các đề tài này │ │ │ │ │ + tốt hơn. │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +A.1. Các thư viện được chia sẻ │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +    Trước khi đóng gói các thư viện được chia sẻ, bạn nên đọc những │ │ │ │ │ + tài liệu liên quan sau một cách chi tiết: │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ + * Hướng dẫn về Chính sách Debian, 8 "Các Thư viện Chia sẻ" │ │ │ │ │ │ │ │ │ │ -    * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ +    * Hướng dẫn về Chính sách Debian, 9.1.1 "Cấu trúc Hệ thống tập │ │ │ │ │ + tin" │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ + * Hướng dẫn về Chính sách Debian, 10.2 "Các Thư viện" │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    Sau đây là một số gợi ý được đơn giản hóa quá mức để giúp bạn bắt │ │ │ │ │ + đầu: │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * Các thư viện chia sẻ là các tập tin đối tượng ELF chứa mã │ │ │ │ │ + biên dịch. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * Các thư viện chia sẻ được phân phối bởi các tập tin *.so. │ │ │ │ │ + (Không phải các tập tin *.a hay các tập tin *.la) │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * Các thư viện chia sẻ được sử dụng phần lớn để chia sẻ những │ │ │ │ │ + mã thông dụng giữa nhiều tập tin thực thi với cơ chế ld. │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * Các thư viện chia sẻ thỉnh thoảng được sử dụng để cung cấp │ │ │ │ │ + nhiều phần mở rộng có thể cắm vào một tập tin thực thi với cơ │ │ │ │ │ + chế dlopen. │ │ │ │ │ │ │ │ │ │ - * Shared libraries export symbols, which represent compiled │ │ │ │ │ - objects such as variables, functions, and classes; and enable │ │ │ │ │ - access to them from the linked executables. │ │ │ │ │ + * Các thư viện chia sẻ xuất các ký hiệu đại diện cho các đối │ │ │ │ │ + tượng được biên dịch như là các tham biến, các hàm, và các │ │ │ │ │ + class; và cho phép truy cập tới chúng từ các tập tin thực thi │ │ │ │ │ + được kết nối tới chúng. │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ + * SONAME của một thư viện chia sẻ libfoo.so.1: objdump -p lib │ │ │ │ │ + foo.so.1 | grep SONAME ^[87] │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ - │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ - objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ + * SONAME của một thư viện chia sẻ thường khớp với tên tập tin │ │ │ │ │ + thư viện (nhưng không phải luôn luôn như vậy). │ │ │ │ │ +    │ │ │ │ │ + * SONAME của các thư viện chia sẻ được kết nối tới /usr/bin/foo │ │ │ │ │ + : objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ + * libfoo1: gói phần mềm thư viện cho thư viện chia sẻ libfoo │ │ │ │ │ + .so.1 với phiên bản SONAME ABI 1.^[89] │ │ │ │ │ │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * Các kịch bản bảo trì gói phần mềm của gói phần mềm thư viện │ │ │ │ │ + phải gọi lệnh ldconfig dưới các tình huống cụ thể để tạo các │ │ │ │ │ + kết nối tượng trưng cho SONAME.^[90] │ │ │ │ │ │ │ │ │ │ - * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ - debugging symbols for the shared library package libfoo1. │ │ │ │ │ + * libfoo1-dbg: gói phần mềm ký hiệu dò lỗ chứa các ký hiệu dò │ │ │ │ │ + lỗi cho gói phần mềm thư viện chia sẻ libfoo1. │ │ │ │ │ │ │ │ │ │ - * libfoo-dev: the development package that contains the header │ │ │ │ │ - files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ + * libfoo-dev: gói phần mềm phát triển chứa những tập tin tiêu │ │ │ │ │ + đề v.v. cho thư viện chia sẻ libfoo.so.1.^[91] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ - in general.^[92] │ │ │ │ │ + * Các gói Debian không nên chứa các tập tin lưu trữ *.la nói │ │ │ │ │ + chung.^[92] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ + * Gói phần mềm Debian nói chung không nên sử dụng RPATH.^[93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * Mặc dù nó có thể đã lạc hậu và chỉ tồn tại như là tài liêu │ │ │ │ │ + tham khảo thứ cấp, Hướng dẫn Đóng gói thư viện Debian có thể │ │ │ │ │ + vẫn hữu dụng. │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. Quản lý debian/package.symbols │ │ │ │ │ │ │ │ │ │ - When you package a shared library, you should create a debian/ │ │ │ │ │ - package.symbols file to manage the minimal version associated │ │ │ │ │ -    with each symbol for backward-compatible ABI changes under the │ │ │ │ │ - same SONAME of the library for the same shared library package │ │ │ │ │ - name.^[94] You should read the following primary references in │ │ │ │ │ - detail: │ │ │ │ │ + Khi bạn đóng gói một thư viện chia sẻ, bạn nên tạo một tập tin │ │ │ │ │ + debian/package.symbols để quản lý phiên bản thấp nhất liên quan │ │ │ │ │ +    tới từng ký hiệu cho các thay đổi ABI tương thích ngược dưới cùng │ │ │ │ │ + một SONAME của thư viện cho cùng một tên gói phần mềm thư viện.^ │ │ │ │ │ + [94] Bạn nên đọc những tài liệu liên quan chính thống sau đây một │ │ │ │ │ + cách chi tiết: │ │ │ │ │ │ │ │ │ │ - * Debian Policy Manual, 8.6.3 "The symbols system"^[95] │ │ │ │ │ + * Hướng dẫn Chính sách Debian, 8.6.3 "Hệ thống ký hiệu"^[95] │ │ │ │ │ │ │ │ │ │ * dh_makeshlibs(1) │ │ │ │ │ │ │ │ │ │     * dpkg-gensymbols(1) │ │ │ │ │ │ │ │ │ │ * dpkg-shlibdeps(1) │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ - Here is a rough example of how to create the libfoo1 package from │ │ │ │ │ -    the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ - file: │ │ │ │ │ - │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ - │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ - debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ - all available binary packages of the same shared library │ │ │ │ │ - package name containing the same SONAME of the library, for │ │ │ │ │ - example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ + Sau đây là một ví dụ sơ khảo để tạo một gói phần mềm libfoo1 │ │ │ │ │ +    tương ứng với phiên bản thượng nguồn 1.3 với tập tin debian/ │ │ │ │ │ + libfoo1.symbols phù hợp: │ │ │ │ │ + │ │ │ │ │ + * Chuẩn bị một sườn cho cây mã nguồn Debian hóa sử dụng tập tin │ │ │ │ │ + thượng nguồn libfoo-1.3.tar.gz. │ │ │ │ │ + │ │ │ │ │ + + Nếu đây là lần đóng gói đầu tiên của gói phần mềm libfoo1, │ │ │ │ │ + tạo một tập tin debian/libfoo1.symbols rỗng. │ │ │ │ │ + │ │ │ │ │ + + Nếu phiên bản thượng nguồn trước đó 1.2 được đóng gói thành │ │ │ │ │ + gói phần mềm libfoo1 với một tập tin debian/libfoo1.symbols │ │ │ │ │ + phù hợp trong gói phần mềm nguồn của nó, hãy sử dụng lại tập │ │ │ │ │ + tin đó. │ │ │ │ │ + │ │ │ │ │ + + Nếu bản thượng nguồn trước đó 1.2 không được đóng gói với tập │ │ │ │ │ + tin debian/libfoo1.symbols, tạo một tập tin như là tập tin │ │ │ │ │ + symbols từ tất cả các gói phần mềm nhị phân có sẵn của một │ │ │ │ │ + tên gói phần mềm thư viện chứa cùng SONAME của một thư viện, │ │ │ │ │ + ví dụ, các phiên bản 1.1-1 và 1.2-1. ^[96] │ │ │ │ │ │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ - * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ - and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ - were some backward-incompatible ABI changes that require you to │ │ │ │ │ - bump the shared library package name to something like libfoo1a │ │ │ │ │ - and you should start over again.) │ │ │ │ │ + * Tạo các bản biên dịch thử của cây mã nguồn với các công cụ như là │ │ │ │ │ + debuild và pdebuild. (Nếu điều này thất bại do thiếu ký hiệu │ │ │ │ │ + v.v., đã có một số thay đổi ABI không tương thích ngược buộc bạn │ │ │ │ │ + phải tăng tên gói phần mềm thư viện chia sẻ lên một tên như là │ │ │ │ │ + libfoo1a và bạn nên bắt đầu lại từ đầu.) │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │     $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ @@ -4201,264 +4206,280 @@ │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - * If you see the diff printed by the dpkg-gensymbols as above, │ │ │ │ │ - extract the proper updated symbols file from the generated binary │ │ │ │ │ - package of the shared library. ^[97] │ │ │ │ │ + * Nếu bạn thấy sự khác biệt in ra bởi lệnh dpkg-gensymbols như │ │ │ │ │ + trên, giải nén tập tin symbols phù hợp cập nhật mới nhất từ gói │ │ │ │ │ + phần mềm nhị phân được tạo ra của thư viện chia sẻ. ^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * Biên dịch các gói phần mềm phát hành với các công cụ như debuild │ │ │ │ │ + và pdebuild. │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ - │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ + Bên cạnh các ví dụ ở trên, chúng ta cần phải kiểm tra tương thích │ │ │ │ │ +    ABI hơn nữa và tăng các phiên bản cho một vài ký hiệu bằng tay │ │ │ │ │ + nếu cần. ^[98] │ │ │ │ │ + │ │ │ │ │ + Mặc dù đây chỉ là một tài liệu tham khảo thứ cấp, Debian wiki │ │ │ │ │ +    UsingSymbolsFiles và những trang điện tử kết nối tới nó có thể │ │ │ │ │ + rất hữu dụng. │ │ │ │ │ │ │ │ │ │ A.3. Multiarch │ │ │ │ │ │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ + Tính năng multiarch được giới thiệu ở Debian wheezy tích hợp hỗ │ │ │ │ │ +    trợ cho cài đặt xuyên nền tảng của các gói phần mềm nhị phân (đặc │ │ │ │ │ + biệt i386<->amd64, nhưng cũng một vài kết hợp khác) trong dpkg và │ │ │ │ │ + apt. Bạn nên đọc các tài liệu tham khảo sau một cách chi tiết: │ │ │ │ │ │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ + * Ubuntu wiki MultiarchSpec (thượng nguồn) │ │ │ │ │     │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ + * Debian wiki Multiarch/Implementation (tình huống Debian) │ │ │ │ │ │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ + Nó sử dụng bộ ba như là i386-linux-gnu và x86_64-linux-gnu cho │ │ │ │ │ + đường dẫn cài đặt của các thư viện chia sẻ. Đường dẫn bộ ba thực │ │ │ │ │ +    sự được đặt giá trị linh động theo tham biến $ │ │ │ │ │ + (DEB_HOST_MULTIARCH) dùng lệnh dpkg-architecture(1) cho từng lần │ │ │ │ │ + biên dịch gói phần mềm nhị phân. Ví dụ, đường dẫn để cài đặt các │ │ │ │ │ + thư viện multiarch được thay đổi như sau:^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ -    |---------+------------------------+--------------------------| │ │ │ │ │ - |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ - |---------+------------------------+--------------------------| │ │ │ │ │ - |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ - +-------------------------------------------------------------+ │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ + |Đường dẫn cũ|Đường dẫn i386 multiarch|Đường dẫn amd64 multiarch| │ │ │ │ │ + |------------+------------------------+-------------------------| │ │ │ │ │ +    |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ + |------------+------------------------+-------------------------| │ │ │ │ │ + |/usr/lib/ |/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu| │ │ │ │ │ + | | |/ | │ │ │ │ │ + +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ -    Here are some typical multiarch package split scenario examples │ │ │ │ │ - for the following: │ │ │ │ │ +    Sau đây là một vài ví dụ về tình huống băm gói phần mềm multiarch │ │ │ │ │ + tiêu biểu cho các gói: │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * một gói phần mềm nguồn cho libfoo-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ + * một gói phần mềm nguồn công cụ bar-1.tar.gz viết bằng một │ │ │ │ │ +    ngôn ngữ biên dịch. │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * một gói phần mềm nguồn công cụ baz-1.tar.gz viết bằng một │ │ │ │ │ + ngôn ngữ thông dịch │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ + | Package |Architecture:|Multi-Arch:| Nội dung gói phần mềm | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + |libfoo1 |bất kỳ |không đổi |thư viện được chia sẻ, | │ │ │ │ │ + | | | |có thể cài cùng lúc | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ + | | | |các ký hiệu dò lỗi của | │ │ │ │ │ + |libfoo1-dbg |bất kỳ |không đổi |thư viện chia sẻ, có thể| │ │ │ │ │ + | | | |cài cùng lúc | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + | | | |các tập tin tiêu đề của | │ │ │ │ │ + |libfoo-dev |bất kỳ |không đổi |thư viện chia sẻ v.v., | │ │ │ │ │ + | | | |có thể cài cùng lúc | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + | | | |Các chương trình hỗ trợ | │ │ │ │ │ +    |libfoo-tools|bất kỳ |Xa lạ |khi chạy, không thể cài | │ │ │ │ │ + | | | |đặt cùng lúc | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ + | | | |những tập tin tài liệu | │ │ │ │ │ + |libfoo-doc |tất cả |Xa lạ |hướng dẫn của thư viện | │ │ │ │ │ + | | | |chia sẻ | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ + | | | |các tập tin chương trình| │ │ │ │ │ + |bar |bất kỳ |Xa lạ |đã biên dịch, không thể | │ │ │ │ │ + | | | |cài đặt cùng lúc | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ + | | | |những tập tin tài liệu | │ │ │ │ │ + |bar-doc |tất cả |Xa lạ |hướng dẫn cho chương | │ │ │ │ │ + | | | |trình | │ │ │ │ │ |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ + |baz |tất cả |Xa lạ |các tập tin chương trình| │ │ │ │ │ + | | | |được thông dịch | │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ + Xin chú ý rằng gói phần mềm phát triển nên chứa một kết nối tượng │ │ │ │ │ +    trưng cho thư viện chia sẻ tương ứng không có số phiên bản. Ví │ │ │ │ │ + dụ: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. Biên dịch một gói phần mềm chia sẻ │ │ │ │ │ │ │ │ │ │ -    You can build a Debian library package enabling multiarch support │ │ │ │ │ - using dh(1) as follows: │ │ │ │ │ +    Bạn có thể biên dịch một gói phần mềm thư viện Debian cho phép hỗ │ │ │ │ │ + trợ multiarch dh(1) như sau: │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ + * Cập nhật debian/control. │ │ │ │ │ │ │ │ │ │ - + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ - section. │ │ │ │ │ + + Thêm Build-Depends: debhelper (>=10) cho phần gói phần mềm │ │ │ │ │ + nguồn. │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + Thêm Pre-Depends: ${misc:Pre-Depends} cho mỗi gói phần mềm │ │ │ │ │ + nhị phân thư viện chia sẻ. │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + Thêm Multi-Arch: cho mỗi phần tương ứng với mỗi gói phần mềm │ │ │ │ │ + nhị phân. │ │ │ │ │ │ │ │ │ │ - * Set debian/compat to "10". │ │ │ │ │ + * Đặt giá trị 10 cho debian/compat. │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ + * Điều chỉnh đường dẫn từ /usr/lib/ bình thường sang multiarch /usr │ │ │ │ │ + /lib/$(DEB_HOST_MULTIARCH)/ cho tất cả kịch bản đóng gói. │ │ │ │ │ │ │ │ │ │ - + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ - -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ + + Gọi DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ + -qDEB_HOST_MULTIARCH) trong debian/rules để đặt giá trị cho │ │ │ │ │ +    tham biến DEB_HOST_MULTIARCH trước tiên. │ │ │ │ │ + │ │ │ │ │ + + Thay thế /usr/lib/ với /usr/lib/$(DEB_HOST_MULTIARCH)/ trong │ │ │ │ │ debian/rules. │ │ │ │ │ │ │ │ │ │ - + If ./configure is used in part of the │ │ │ │ │ - override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ - to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ - │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ - + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ - dynamically by adding a script to the │ │ │ │ │ - override_dh_auto_configure target in debian/rules. │ │ │ │ │ + + Nếu ./configure được sử dụng trong một phần của mục tiêu │ │ │ │ │ + override_dh_auto_configure trong debian/rules, chắc chắn rằng │ │ │ │ │ + bạn thay thế nó với dh_auto_configure -- . ^[100] │ │ │ │ │ + │ │ │ │ │ + + Thay thế hết tất cả các sự xuất hiện của /usr/lib/ với /usr/ │ │ │ │ │ + lib/*/ trong các tập tin debian/foo.install. │ │ │ │ │ + │ │ │ │ │ + + Tạo ra các tập tin như debian/foo.links từ debian/foo │ │ │ │ │ + .links.in một cách tự động bắng thêm một kịch bản vào mục │ │ │ │ │ + tiêu override_dh_auto_configure trong debian/rules. │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ - │ │ │ │ │ - All files installed simultaneously as the multiarch package to │ │ │ │ │ -    the same file path should have exactly the same file content. You │ │ │ │ │ - must be careful of differences generated by the data byte order │ │ │ │ │ - and by the compression algorithm. │ │ │ │ │ - │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ - │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ - │ │ │ │ │ - You can make the upstream tarball by excluding the debian/* files │ │ │ │ │ -    and package it as a non-native Debian package as in Phần 2.1, │ │ │ │ │ - “Luồng làm việc tạo ra gói Debian”. This is the normal way, which │ │ │ │ │ - some people encourage using. │ │ │ │ │ - │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ - │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ + Hãy chắc chắn rằng gói phần mềm thư viện chia sẻ chỉ chứa duy │ │ │ │ │ +    nhất các tập tin được trông đợi, và gói phần mềm -dev của bạn vẫn │ │ │ │ │ + hoạt động tốt. │ │ │ │ │ + │ │ │ │ │ + Tất cả các tập tin được cài đặt cùng lúc với gói phần mềm │ │ │ │ │ +    multiarch vào cùng một đường dẫn nên có cùng một nội dung chính │ │ │ │ │ + xác như nhau. Bạn phải cẩn thận với những sự khác biệt tạo ra bởi │ │ │ │ │ + thứ tự byte dữ liệu và thuật toán nén. │ │ │ │ │ + │ │ │ │ │ +A.5. Gói phần mềm Debian native │ │ │ │ │ + │ │ │ │ │ + Nếu một gói phần mề được bảo trì chỉ cho Debian hoặc có thể chỉ │ │ │ │ │ +    cho việc dùng nội bộ, mã nguồn của nó có thể chứa tất các tập tin │ │ │ │ │ + debian/* bên trong nó. Có 2 cách để đóng gói nó. │ │ │ │ │ + │ │ │ │ │ + Bạn có thể tạo một tập tin lưu trữ thượng nguồn bằng việc loại │ │ │ │ │ + trừ tất cả các tập tin debian/* và đóng gói nó như là một gói │ │ │ │ │ +    phần mềm nhị phân Debian không native như ở Phần 2.1, “Luồng làm │ │ │ │ │ + việc tạo ra gói Debian”. Đây là cách thông thường mọi người │ │ │ │ │ + khuyến khích sử dụng. │ │ │ │ │ + │ │ │ │ │ +    Một cách khác là cách làm của một gói phần mềm Debian native. │ │ │ │ │ + │ │ │ │ │ + * Tạo một gói phần mềm nguồn Debian native dưới định dạng 3.0 │ │ │ │ │ + (native) bằng việc sử dụng một tập tin nén tar đơn độc chứa │ │ │ │ │ + tất cả các tập tin bên trong. │ │ │ │ │ │ │ │ │ │     + package_version.tar.gz │ │ │ │ │ + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ + * Biên dịch các gói phần mềm nhị phân Debian từ gói phần mềm │ │ │ │ │ + nguồn Debian native. │ │ │ │ │ │ │ │ │ │ + package_version_arch.deb │ │ │ │ │ │ │ │ │ │ - For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │ -    the debian/* files, you can create a native Debian package by │ │ │ │ │ - issuing the dh_make command as follows: │ │ │ │ │ + Ví dụ, nếu bạn có các tập tin nguồn trong thư mục ~/mypackage-1.0 │ │ │ │ │ +    mà không có các tập tin debian/*, bạn có thể tạo một gói phần mềm │ │ │ │ │ + Debian native cho nó bằng việc chạy lệnh dh_make như sau: │ │ │ │ │ │ │ │ │ │     $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ - Then the debian directory and its contents are created just like │ │ │ │ │ - in Phần 2.8, “Khởi tạo gói Debian mới”. This does not create a │ │ │ │ │ -    tarball, since this is a native Debian package. But that is the │ │ │ │ │ - only difference. The rest of the packaging activities are │ │ │ │ │ - practically the same. │ │ │ │ │ + Sau đó thư mục debian và nội dụng của nó được tạo như là ở │ │ │ │ │ + Phần 2.8, “Khởi tạo gói Debian mới”. Hành động này không tạo một │ │ │ │ │ +    tập tin lưu trữ vì đây là một gói phần mềm Debian native. Nhưng │ │ │ │ │ + đó là điểm khác biệt duy nhất. Phần còn lại của quá trình đóng │ │ │ │ │ + gói thực tế là không khác gì. │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    Sau khi chạy lệnh dpkg-buildpackage, bạn sẽ thấy các tập tin sau │ │ │ │ │ + trong thư mục cha: │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + Đây là tập tin mã nguồn tạo ra từ thư mục mypackage-1.0 bởi │ │ │ │ │ + lệnh dpkg-source command. (Phần hậu tố của nó không phải là │ │ │ │ │ + orig.tar.gz.) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.dsc │ │ │ │ │ │ │ │ │ │ - This is a summary of the contents of the source code, as in │ │ │ │ │ - the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ -    │ │ │ │ │ + Đây là bản tóm tắt của những nội dung của mã nguồn như ở │ │ │ │ │ + trong gói phần mềm Debian không native. (There có mã tu chỉnh │ │ │ │ │ +    Debian.) │ │ │ │ │ + │ │ │ │ │ * mypackage_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ - This is your completed binary package, as in the non-native │ │ │ │ │ - Debian package. (There is no Debian revision.) │ │ │ │ │ + Đây là gói phần mềm nhị phân hoàn chỉnh của bạn như là gói │ │ │ │ │ + phần mềm Debian không native. (Không có mã tu chỉnh Debian.) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + Tập tin này mô tả những thay đổi được tạo ra trong phiên bản │ │ │ │ │ + gói phần mềm hiện tại như ở trong gói phần mềm Debian không │ │ │ │ │ + native. (Không có bản tu chỉnh Debian.) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] Ngoài ra: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] Ngoài ra: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] Xem Hướng dẫn về Chính sách Debian, 8.1 "Các Thư viện chia │ │ │ │ │ + sẻ khi chạy". │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] Xem Hướng dẫn về Chính sách Debian, 8.1.1 "ldconfig". │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ +    ^[91] Xem Hướng dẫn Chính sách Debian, 10.2 "Các Thư viện tĩnh" │ │ │ │ │ + và Hướng dẫn về Chính sách Debian, 8.4 "Các Tập tin phát triển" │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] Xem Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] Xem Debian wiki RpathIssue. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ + ^[94] Các thay đổi ABI không tương thích ngược thông thường cần │ │ │ │ │ +    bạn phải cập nhật SONAME của thư viện và tên gói phần mềm thư │ │ │ │ │ + viện chia sẻ sang những tên mới. │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ + ^[95] Với các thư viện C++ và các tình huống khác mà theo dõi │ │ │ │ │ +    từng ký hiệu là vô cùng khó khăn, thay vì như trên hãy làm theo │ │ │ │ │ + Hướng dẫn Chính sách về Debian, 8.6.4 "Hệ thống shlibs", │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] Tất cả các phiên bản trước đó của các gói phần mềm Debian │ │ │ │ │ + có sẵn tại http://snapshot.debian.org/. Phiên bản tu chỉnh Debian │ │ │ │ │ +    được cắt bỏ khỏi phiên bản để giúp việc backport gói phần mềm │ │ │ │ │ + (tạo gói phần mềm chứa các cập nhật mới cho các bản phân phối │ │ │ │ │ + Debian cũ) dễ hơn: 1.1 << 1.1-1~bpo70+1 << 1.1-1 và 1.2 << │ │ │ │ │ + 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ + ^[97] Phiên bản tu chỉnh Debian được cắt bỏ khỏi phiên bản để │ │ │ │ │ +    giúp việc backport gói phần mềm (tạo gói phần mềm chứa các cập │ │ │ │ │ + nhật mới cho các bản phân phối Debian cũ) dễ hơn: 1.3 << │ │ │ │ │ + 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ - changes". │ │ │ │ │ +    ^[98] Xem Hướng dẫn về Chính sách Debian, 8.6.2 "Các Thay đổi ABI │ │ │ │ │ + của Thư viện chia sẻ" │ │ │ │ │ │ │ │ │ │ -    ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ - lib64/ are not used anymore. │ │ │ │ │ +    ^[99] Các đường dẫn thư viện chuyên dụng cũ như /lib32/ và /lib64 │ │ │ │ │ + / không được sử dụng nữa. │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] Ngoài ra, bạn có thể thêm các đối số --libdir=\$${prefix}/ │ │ │ │ │ + lib/$(DEB_HOST_MULTIARCH) và --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) cho ./configure. Xin hãy chú ý rằng tham số │ │ │ │ │ +    --libexecdir thông báo đường dẫn ngầm định để cài đặt các chương │ │ │ │ │ + trình thực thi được chạy bởi các chương trình khác thay vì bởi │ │ │ │ │ + người dùng. Giá trị ngầm định Autotools của nó là /usr/libexec/ │ │ │ │ │ + nhưng ngầm định của Debian là /usr/lib/. ├── maint-guide-zh-cn_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ --rw-r--r-- 0 0 0 1576 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 647468 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 1580 2022-10-08 03:52:48.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 647136 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1224 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39486 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/advanced.zh-cn.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39056 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/advanced.zh-cn.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 35990 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/build.zh-cn.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17592 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/checkit.zh-cn.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 60173 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/dother.zh-cn.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 60169 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/dother.zh-cn.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 74960 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/dreq.zh-cn.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 53097 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/first.zh-cn.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 24641 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/index.zh-cn.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 24618 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/index.zh-cn.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21820 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/modify.zh-cn.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32559 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/start.zh-cn.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 30567 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/update.zh-cn.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11583 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/upload.zh-cn.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 505093 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/maint-guide.zh-cn.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 62009 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/maint-guide.zh-cn.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11571 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/html/upload.zh-cn.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 505030 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/maint-guide.zh-cn.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61875 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-cn/maint-guide.zh-cn.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 652 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-zh-cn.maint-guide-zh-cn │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 69 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-zh-cn │ │ │ ├── ./usr/share/doc/maint-guide-zh-cn/html/advanced.zh-cn.html │ │ │ │ ├── ./usr/share/doc/maint-guide-zh-cn/html/advanced.zh-cn.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - 附录 A. Advanced packaging │ │ │ │ │ + 附录 A. 高级打包 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

Here are some typical multiarch package split scenario examples for the │ │ │ │ │ -following:

│ │ │ │ │ +

下面是一些典型的多体系结构软件包分离情景:

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a library source │ │ │ │ │ + 库源码 │ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + 一个用编译型语言编写的工具的源码 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in a compiled language │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + 一个用解释型语言编写的工具的源码 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - baz │ │ │ │ │ + bar │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in an interpreted language │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -774,18 +741,18 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
PackageArchitecture:Multi-Arch:Package content软件包体系结构:多体系结构:软件包内容
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ @@ -793,284 +760,276 @@ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anysamethe shared library, co-installable任何相同共享库,可共同安装
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ -dbg │ │ │ │ │ │ │ │ │ │ anysamethe shared library debug symbols, co-installable任何相同共享库调试符号,可共同安装
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -dev │ │ │ │ │ │ │ │ │ │ anysamethe shared library header files etc., co-installable任何相同共享库头文件之类,可共同安装
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -tools │ │ │ │ │ │ │ │ │ │ anyforeignthe run-time support programs, not co-installable任何外来运行时支持程序,不可共同安装
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe shared library documentation files全部外来共享库文档
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anyforeignthe compiled program files, not co-installable任何外来编译好的程序文件,不可共同安装
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe documentation files for the program全部外来程序的配套文档文件
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ allforeignthe interpreted program files全部外来解释型程序文件
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + 请注意,开发软件包应该包含一个指向共享库的符号链接并且 │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + 不带有版本号 │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + 。 比如: │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - You can build a Debian library package enabling multiarch support using │ │ │ │ │ + 你可以用 │ │ │ │ │ │ │ │ │ │ dh │ │ │ │ │ (1) │ │ │ │ │ │ │ │ │ │ - as follows: │ │ │ │ │ + 通过以下方法构建一个支持多体系结构的 Debian 库软件包: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ -

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ -path should have exactly the same file content. You must be careful of │ │ │ │ │ -differences generated by the data byte order and by the compression │ │ │ │ │ -algorithm.

│ │ │ │ │ +

请确认该共享库软件包仅仅包含预期中的文件,并且你的 -dev 软件包还奏效。

│ │ │ │ │ +

所有作为多体系结构软件包而同时安装到同一个文件路径的所有文件应当具有完全一致的文件内容。你必须小心由数据字节序和压缩算法造成的区别。

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + 如果一个软件包是仅仅为 Debian 维护的,或者是可能的本地使用,那么它的源码可以容纳所有的 │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + 于其中。这里有它的两种打包方式。 │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - You can make the upstream tarball by excluding the │ │ │ │ │ + 你可以将除 │ │ │ │ │ debian/* │ │ │ │ │ - files and package it as a non-native Debian │ │ │ │ │ -package as in │ │ │ │ │ + 文件之外的部分制作成上游 tarball,然后将其作为非本土 Debian │ │ │ │ │ +软件包来打包,正如 │ │ │ │ │ 第 2.1 节 “Debian 软件包制作流程” │ │ │ │ │ - . This is the normal way, which │ │ │ │ │ -some people encourage using. │ │ │ │ │ + 所述。 这是一些人鼓励使用的普通方法。 │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

另一种方法就是本土 Debian 软件包的打包工作流。

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ + 用包含所有文件的,单一压缩过的 tar 文件,以 │ │ │ │ │ 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + 格式来创建本土 Debian 源码包。 │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ package │ │ │ │ │ @@ -1157,15 +1109,15 @@ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    用 Debian 本土源码包构建二进制包。

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ package │ │ │ │ │ │ │ │ │ │ @@ -1182,96 +1134,89 @@ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - For example, if you have source files in │ │ │ │ │ + 比如说,如果你的源代码文件都存放在 │ │ │ │ │ ~/mypackage-1.0 │ │ │ │ │ - without the │ │ │ │ │ + 中,而且没有 │ │ │ │ │ debian/* │ │ │ │ │ - files, you can create a native Debian package │ │ │ │ │ -by issuing the │ │ │ │ │ + 这些文件,那么你可以用它创建 一个本土 Debian 软件包,只要按照下边的方法使用 │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ - command as follows: │ │ │ │ │ + 命令: │ │ │ │ │

│ │ │ │ │
$ cd ~/mypackage-1.0
│ │ │ │ │  $ dh_make --native
│ │ │ │ │

│ │ │ │ │ - Then the │ │ │ │ │ + 接下来 │ │ │ │ │ debian │ │ │ │ │ - directory and its contents are created │ │ │ │ │ -just like in │ │ │ │ │ + 目录和它的内容都会被创建, 正如 │ │ │ │ │ 第 2.8 节 “初始化外来 Debian 软件包” │ │ │ │ │ - . This does not create a │ │ │ │ │ -tarball, since this is a native Debian package. But that is the only │ │ │ │ │ -difference. The rest of the packaging activities are practically the same. │ │ │ │ │ + 中那样。 这不会创建一个 tarball,因为这是个本土 Debian │ │ │ │ │ +软件包。不过这也是唯一的区别。 剩下的打包操作就是完全一致的了。 │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - After execution of the │ │ │ │ │ + 在执行了 │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + 命令后,你将会在上一级目录中看到这些文件: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.tar.gz │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + 这是 │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + 命令用 │ │ │ │ │ + mypackage-1.0 │ │ │ │ │ + 目录创建出来的源代码 tarball 。 (它的 文件名后缀不是 │ │ │ │ │ orig.tar.gz │ │ │ │ │ - .) │ │ │ │ │ + ) │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.dsc │ │ │ │ │

    │ │ │ │ │ -

    This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ -Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    这是对源码内容的简述,正如在非本土 Debian 软件包中那样。(没有 Debian 修订号。)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.deb │ │ │ │ │

    │ │ │ │ │ -

    This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ -(There is no Debian revision.)

    │ │ │ │ │ +

    这是完成的二进制包,正如在非本土 Debian 软件包中那样。(没有 Debian 修订号。)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.changes │ │ │ │ │

    │ │ │ │ │ -

    This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    这个文件描述了这个软件作为外来 Debian 包,在当前版本所作出的所有更改。(没有 Debian 修订)

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + 或者这样: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1284,15 +1229,15 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + 或者这样: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1305,95 +1250,93 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 参见 │ │ │ │ │ Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ libraries" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 参见 │ │ │ │ │ Debian Policy Manual, 8.1.1 │ │ │ │ │ "ldconfig" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 参见 │ │ │ │ │ Debian Policy Manual, 8.3 "Static │ │ │ │ │ libraries" │ │ │ │ │ and │ │ │ │ │ Debian Policy Manual, 8.4 │ │ │ │ │ "Development files" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 参见 │ │ │ │ │ Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 参见 │ │ │ │ │ Debian wiki RpathIssue │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + 向后不兼容的 ABI 变更常常需要你更新共享库的 SONAME,并把共享库名称换成新的。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + 对于 C++ 库和其他追踪单个符号过于困难的情况下,请遵循 │ │ │ │ │ + Debian │ │ │ │ │ +Policy Manual, 8.6.4 "The shlibs system" │ │ │ │ │ + 。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + 所有先前的 Debian 软件包版本都能在 │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + 找到。不过 Debian 修订号 │ │ │ │ │ +被去掉了,以使软件包的 backport 更为容易: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ and │ │ │ │ │ 1.2 │ │ │ │ │ @@ -1404,67 +1347,64 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + Debian 修订号已被从版本中去掉,这能让软件包的 backport 更为容易: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 参见 │ │ │ │ │ Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ library ABI changes" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [99] │ │ │ │ │ │ │ │ │ │ - Old special purpose library paths such as │ │ │ │ │ + 老旧且具有特殊用途的库路径,比如 │ │ │ │ │ /lib32/ │ │ │ │ │ - and │ │ │ │ │ + 和 │ │ │ │ │ /lib64/ │ │ │ │ │ - are not used anymore. │ │ │ │ │ + 已不再使用。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + 作为替代,你可以添加 │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + 和 │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + 参数到 │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + 后头。 请注意 │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + 指定了 │ │ │ │ │ +安装可执行程序(它们被其他程序使用,而更少是用户)的默认路径。它的 Autotools 默认设置为 │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + 但是 Debian 的设置为 │ │ │ │ │ /usr/lib/ │ │ │ │ │ - . │ │ │ │ │ + 。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-zh-cn/maint-guide.zh-cn.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -36,25 +36,25 @@ │ │ │ │ │ │ │ │ │ │ Josip Rodin、 │ │ │ │ │ Osamu Aoki(青木 │ │ │ │ │ 修)、Aron Xu、李 │ │ │ │ │ 凌、郑原真、周默 │ │ │ │ │ 和杨博远 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ REVISION HISTORY │ │ │ │ │ NUMBER │ │ │ │ │ │ │ │ │ │ DATE │ │ │ │ │ │ │ │ │ │ DESCRIPTION │ │ │ │ │ @@ -392,23 +392,23 @@ │ │ │ │ │ │ │ │ │ │ 在上传时包含 orig.tar.gz 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ 跳过的上传 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A 高级打包 │ │ │ │ │ │ │ │ │ │ 53 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 │ │ │ │ │ -A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ +A.1 共享库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 │ │ │ │ │ +A.2 管理 debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 │ │ │ │ │ +A.3 多体系结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ +A.4 构建共享库包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ +A.5 Debian 本土软件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ │ │ │ │ │ Debian 新维护者手册 │ │ │ │ │ │ │ │ │ │ 1 / 57 │ │ │ │ │ │ │ │ │ │ Chapter 1 │ │ │ │ │ │ │ │ │ │ @@ -2922,100 +2922,96 @@ │ │ │ │ │ │ │ │ │ │ Debian 新维护者手册 │ │ │ │ │ │ │ │ │ │ 53 / 57 │ │ │ │ │ │ │ │ │ │ Appendix A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +高级打包 │ │ │ │ │ 本教程文档已被重写为另外的 Debian 维护者指导 (https://www.debian.org/doc/devel-manuals#debmake-doc) 文档,其中 │ │ │ │ │ 包含了更新的内容与更多实际例子。请使用新的教程作为主要的教程文档。 │ │ │ │ │ -Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ -to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +这里有一些关于你可能遇到的高级打包问题的提示。如果有需要的话,本教程强烈建议阅读这里引用和建议的文档。 │ │ │ │ │ +你可能需要手工编辑由 dh_make 命令生成的打包模板文件,以此来解决本章中所讨论的问题。新的 debmake 命令应 │ │ │ │ │ +该能更好地解决这些问题。 │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +共享库 │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ +在打包 共享库 之前,你应该阅读以下的主要参考资料: │ │ │ │ │ • Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ • Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ • Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -• Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -• Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -• Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -• Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ -• Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ -to them from the linked executables. │ │ │ │ │ -• The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -• The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -• The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -• libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +以下是帮助你开始的极简解释: │ │ │ │ │ +• 共享库均为 elf 对象文件,其包含编译好的机器码。 │ │ │ │ │ +• 共享库以 *.so 文件的形式发放。(既非 *.a 文件也非 *.la 文件) │ │ │ │ │ +• 共享库主要用于在不同的二进制可执行程序之间共享代码,这背后使用了 ld (译注:链接)机制。 │ │ │ │ │ +• 共享库有时会为一个可执行程序提供多个插件,这背后使用了 dlopen 机制。 │ │ │ │ │ +• 共享库能导出代表着变量,函数和类的 symbols(符号) │ │ │ │ │ +;并允许链接到它的可执行文件访问之。 │ │ │ │ │ +• 共享库 libfoo.so.1 中的 SONAME : objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ +• 共享库的 SONAME 常常与库文件自身文件名一致 (不过有特例)。 │ │ │ │ │ +• 链接到 /usr/bin/foo 的共享库的 SONAME :objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ +• libfoo1: 共享库 libfoo.so.1 的库文件包,其 SONAME ABI 版本为 1.3 │ │ │ │ │ +• 在某些情况下,库软件包的 maintainer scripts 必须调用 ldconfig 来为 SONAME 创建必要的符号链接。⁴ │ │ │ │ │ +1或者这样:readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +2或者这样:readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +3参见 Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +⁴参见 Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ │ │ │ │ │ Debian 新维护者手册 │ │ │ │ │ │ │ │ │ │ 54 / 57 │ │ │ │ │ │ │ │ │ │ -• The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ -• libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ -• libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ -• Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ -• Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -• Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +• libfoo1-dbg: 包含了调试共享库包用的调试符号的软件包 libfoo1. │ │ │ │ │ +• libfoo-dev: 包含了头文件等内容的开发包。用于 libfoo.so.1.⁵ │ │ │ │ │ +• 一般而言,Debian 软件包不应当包含 *.la Libtool 归档文件。⁶ │ │ │ │ │ +• 一般来说,Debian 软件包不应当使用 RPATH。⁷ │ │ │ │ │ +• 虽然这有点过时,而且是第二参考,Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkgguide/libpkg-guide.html) 可能仍然对你有用。 │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +管理 debian/package.symbols │ │ │ │ │ │ │ │ │ │ -When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ -associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ -library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ +当你给共享库打包时,你应当创建 debian/package.symbols 文件来管理在共享库名称不变,在同一个 SONAME │ │ │ │ │ +下又要提供 ABI 向后兼容性的情况下每个符号关联到的最小版本号。⁸ 你可以阅读下边的主要参考以获知细节: │ │ │ │ │ • Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ • dh_makeshlibs(1) │ │ │ │ │ • dpkg-gensymbols(1) │ │ │ │ │ • dpkg-shlibdeps(1) │ │ │ │ │ • deb-symbols(5) │ │ │ │ │ -Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ -libfoo1.symbols file: │ │ │ │ │ -• Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -– If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -– If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1.symbols │ │ │ │ │ -in its source package, use it again. │ │ │ │ │ -– If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ -from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ -for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ +这是个粗略的例子,用来来演示创建 libfoo1 软件包的方法,此时使用上游 1.3 版本,有着妥当的debian/ │ │ │ │ │ +libfoo1.symbols 文件: │ │ │ │ │ +• 使用上游提供的 libfoo-1.3.tar.gz 文件来准备 Debian 化的源码骨架。 │ │ │ │ │ +– 如果这是库软件包 libfoo1 的第一次打包,那么以空内容创建 debian/libfoo1.symbols 文件。 │ │ │ │ │ +– 如果之前的上游版本 1.2 已经被 libfoo1 软件包打包了,并且其源码包中有妥当的 debian/libfoo1. │ │ │ │ │ +symbols,再用它一次。 │ │ │ │ │ +– 如果前一个上游 1.2 版本打包时没有 debian/libfoo1.symbols,那就从具有相同库 SONAME 的同一个共享 │ │ │ │ │ +库包的所有可用的二进制软件包中创建它并命名为 symbols 文件。比如 1.1-1 和 1.2-1。10 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + │ │ │ │ │ +• 尝试用像 debuild 和 pdebuild 这样的工具来对源码树进行试构建。(如果这因为缺失符号之类原因而失败,那么这里 │ │ │ │ │ +就有一些不向后兼容的 ABI 改变,这就需要你转移 (bump) 共享库的名称到诸如 libfoo1a ,并重新开始一次。) │ │ │ │ │ +⁵参见 Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy │ │ │ │ │ +Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ +⁶参见 Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +⁷参见 Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +⁸向后不兼容的 ABI 变更常常需要你更新共享库的 SONAME,并把共享库名称换成新的。 │ │ │ │ │ +⁹对于 C++ 库和其他追踪单个符号过于困难的情况下,请遵循 Debian Policy Manual, 8.6.4 ”The shlibs system” (http://www.debian.org/doc/debianpolicy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) 。 │ │ │ │ │ +10所有先前的 Debian 软件包版本都能在 http://snapshot.debian.org/ (http://snapshot.debian.org/) 找到。不过 Debian 修订号被去掉了,以使软件包的 │ │ │ │ │ +backport 更为容易:1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ Debian 新维护者手册 │ │ │ │ │ │ │ │ │ │ 55 / 57 │ │ │ │ │ │ │ │ │ │ -• Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ -were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ -libfoo1a and you should start over again.) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx │ │ │ │ │ @@ -3026,176 +3022,179 @@ │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -• If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ -binary package of the shared library. 11 │ │ │ │ │ +• 如果你如上述看见由 dpkg-gensymbols 命令打印出来的差异,那就从生成的二进制库包中抽取妥当更新的 symbols │ │ │ │ │ +文件。11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -• Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +• 使用像 debuild 和 pdebuild 这样的工具来构建发行软件包。 │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ +对上边这个例子补充一点,我们需要进一步检查 ABI (应用程序二进制接口) 兼容性并在需要的时候手动更新一些符号 │ │ │ │ │ +的版本。12 │ │ │ │ │ +虽然这只是第二参考,Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) 和它指向的页面可能会 │ │ │ │ │ +有所帮助。 │ │ │ │ │ │ │ │ │ │ A.3 │ │ │ │ │ │ │ │ │ │ -Multiarch │ │ │ │ │ +多体系结构 │ │ │ │ │ + │ │ │ │ │ +Debian wheezy 引入的多体系结构特性,集成了对二进制包跨体系结构安装的支持 (尤其是 i386<->amd64,其他的组 │ │ │ │ │ +合也有) 于 dpkg 和 apt 中。你可以阅读下边的参考: │ │ │ │ │ +• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (上游) │ │ │ │ │ +• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian 的局势) │ │ │ │ │ +它为每个共享库的安装路径使用了类似 i386-linux-gnu 和 x86_64-linux-gnu 这样的三元名字。实际上每个二 │ │ │ │ │ +进制软件包构建的三元路径是被动态设置到 $(DEB_HOST_MULTIARCH) 变量中的,经由 dpkg-architecture(1) 命令。举 │ │ │ │ │ +个例子,安装多体系结构库文件的路径被按照下表进行了修改:13 │ │ │ │ │ │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages (particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in detail: │ │ │ │ │ -• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +11Debian 修订号已被从版本中去掉,这能让软件包的 backport 更为容易:1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12参见 Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ +13老旧且具有特殊用途的库路径,比如 /lib32/ 和 /lib64/ 已不再使用。 │ │ │ │ │ │ │ │ │ │ Debian 新维护者手册 │ │ │ │ │ │ │ │ │ │ -Old path │ │ │ │ │ +旧路径 │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ 56 / 57 │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +i386 多体系结构路径 │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +amd64 多体系结构路径 │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -• a library source libfoo-1.tar.gz │ │ │ │ │ -• a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -• a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ -Package │ │ │ │ │ +下面是一些典型的多体系结构软件包分离情景: │ │ │ │ │ +• 库源码 libfoo-1.tar.gz │ │ │ │ │ +• 一个用编译型语言编写的工具的源码 bar-1.tar.gz │ │ │ │ │ +• 一个用解释型语言编写的工具的源码 bar-1.tar.gz │ │ │ │ │ +软件包 │ │ │ │ │ libfoo1 │ │ │ │ │ libfoo1-dbg │ │ │ │ │ libfoo-dev │ │ │ │ │ libfoo-tools │ │ │ │ │ libfoo-doc │ │ │ │ │ bar │ │ │ │ │ bar-doc │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -Architecture: │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -all │ │ │ │ │ - │ │ │ │ │ -Multi-Arch: │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ - │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ - │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +体系结构: │ │ │ │ │ +任何 │ │ │ │ │ +任何 │ │ │ │ │ +任何 │ │ │ │ │ +任何 │ │ │ │ │ +全部 │ │ │ │ │ +任何 │ │ │ │ │ +全部 │ │ │ │ │ +全部 │ │ │ │ │ + │ │ │ │ │ +多体系结构: │ │ │ │ │ +相同 │ │ │ │ │ +相同 │ │ │ │ │ +相同 │ │ │ │ │ +外来 │ │ │ │ │ +外来 │ │ │ │ │ +外来 │ │ │ │ │ +外来 │ │ │ │ │ +外来 │ │ │ │ │ + │ │ │ │ │ +软件包内容 │ │ │ │ │ +共享库,可共同安装 │ │ │ │ │ +共享库调试符号,可共同安装 │ │ │ │ │ +共享库头文件之类,可共同安装 │ │ │ │ │ +运行时支持程序,不可共同安装 │ │ │ │ │ +共享库文档 │ │ │ │ │ +编译好的程序文件,不可共同安装 │ │ │ │ │ +程序的配套文档文件 │ │ │ │ │ +解释型程序文件 │ │ │ │ │ + │ │ │ │ │ +请注意, │ │ │ │ │ +开发软件包应该包含一个指向共享库的符号链接并且 不带有版本号。 │ │ │ │ │ +比如:/usr/lib/x86_64-linux-gnu/ │ │ │ │ │ +libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +构建共享库包 │ │ │ │ │ │ │ │ │ │ -You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -• Update debian/control. │ │ │ │ │ -– Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -– Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -– Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ -• Set debian/compat to ”10”. │ │ │ │ │ -• Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ -– Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ -to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -– Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ -– If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ -replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -– Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ -– Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ -target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ +你可以用 dh(1) 通过以下方法构建一个支持多体系结构的 Debian 库软件包: │ │ │ │ │ +• 更新 debian/control。 │ │ │ │ │ +– 为源码包部分添加 Build-Depends: debhelper (>=10) 部分。 │ │ │ │ │ +– 为每个二进制库软件包添加 Pre-Depends: ${misc:Pre-Depends} │ │ │ │ │ +– 在每个二进制包的段中添加 Multi-Arch: 小节。 │ │ │ │ │ +• 设置 debian/compat 为”10”。 │ │ │ │ │ +• 将所有打包脚本中的路径从普通的 /usr/lib/ 调整到多体系结构的 /usr/lib/$(DEB_HOST_MULTIARCH)/。 │ │ │ │ │ + │ │ │ │ │ +– 首先, │ │ │ │ │ +在 debian/rules 中调用 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTI │ │ │ │ │ +以设置 DEB_HOST_MULTIARCH 变量。 │ │ │ │ │ +– 在 debian/rules 中用 /usr/lib/$(DEB_HOST_MULTIARCH)/ 替换 /usr/lib/。 │ │ │ │ │ +– 如果 debian/rules 文件中的 override_dh_auto_configure 目标使用了 ./configure 文件,那么请确 │ │ │ │ │ +认用 dh_auto_configure -- 来替换它。1⁴ │ │ │ │ │ +– 在debian/foo.install 文件中将所有 /usr/lib/ 的事件替换为 /usr/lib/*/ 。 │ │ │ │ │ +– 如需从 debian/foo.links.in 动态地生成像 debian/foo.links 这样的文件,可以添加一个脚本到 debian/ │ │ │ │ │ +rules 文件的 override_dh_auto_configure 目标中。 │ │ │ │ │ + │ │ │ │ │ +1⁴作为替代, │ │ │ │ │ +你可以添加 --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) 和 --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTI │ │ │ │ │ +参数到 ./configure 后头。请注意 --libexecdir 指定了安装可执行程序 (它们被其他程序使用,而更少是用户) 的默认路径。它的 Autotools 默 │ │ │ │ │ +认设置为 /usr/libexec/ 但是 Debian 的设置为 /usr/lib/。 │ │ │ │ │ │ │ │ │ │ Debian 新维护者手册 │ │ │ │ │ │ │ │ │ │ 57 / 57 │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ -All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ -must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ +请确认该共享库软件包仅仅包含预期中的文件,并且你的 -dev 软件包还奏效。 │ │ │ │ │ +所有作为多体系结构软件包而同时安装到同一个文件路径的所有文件应当具有完全一致的文件内容。你必须小心由数 │ │ │ │ │ +据字节序和压缩算法造成的区别。 │ │ │ │ │ │ │ │ │ │ A.5 │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ +Debian 本土软件包 │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ -You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in 第 │ │ │ │ │ -2.1 节. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -• Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ +如果一个软件包是仅仅为 Debian 维护的,或者是可能的本地使用,那么它的源码可以容纳所有的 debian/* 于其中。 │ │ │ │ │ +这里有它的两种打包方式。 │ │ │ │ │ +你可以将除 debian/* 文件之外的部分制作成上游 tarball,然后将其作为非本土 Debian 软件包来打包,正如第 2.1 │ │ │ │ │ +节所述。这是一些人鼓励使用的普通方法。 │ │ │ │ │ +另一种方法就是本土 Debian 软件包的打包工作流。 │ │ │ │ │ +• 用包含所有文件的,单一压缩过的 tar 文件,以 3.0 (native) 格式来创建本土 Debian 源码包。 │ │ │ │ │ – package_version.tar.gz │ │ │ │ │ – package_version.dsc │ │ │ │ │ -• Build Debian binary packages from the native Debian source package. │ │ │ │ │ +• 用 Debian 本土源码包构建二进制包。 │ │ │ │ │ – package_version_arch.deb │ │ │ │ │ -For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ -package by issuing the dh_make command as follows: │ │ │ │ │ +比如说,如果你的源代码文件都存放在 ~/mypackage-1.0 中,而且没有 debian/* 这些文件,那么你可以用它创 │ │ │ │ │ +建一个本土 Debian 软件包,只要按照下边的方法使用 dh_make 命令: │ │ │ │ │ $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ -Then the debian directory and its contents are created just like in 第 2.8 节. This does not create a tarball, since this is a native │ │ │ │ │ -Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ +接下来 debian 目录和它的内容都会被创建,正如第 2.8 节中那样。这不会创建一个 tarball,因为这是个本土 Debian │ │ │ │ │ +软件包。不过这也是唯一的区别。剩下的打包操作就是完全一致的了。 │ │ │ │ │ +在执行了 dpkg-buildpackage 命令后,你将会在上一级目录中看到这些文件: │ │ │ │ │ • mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ +这是 dpkg-source 命令用 mypackage-1.0 目录创建出来的源代码 tarball 。(它的文件名后缀不是 orig.tar.gz) │ │ │ │ │ • mypackage_1.0.dsc │ │ │ │ │ -This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +这是对源码内容的简述,正如在非本土 Debian 软件包中那样。(没有 Debian 修订号。) │ │ │ │ │ • mypackage_1.0_i386.deb │ │ │ │ │ -This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +这是完成的二进制包,正如在非本土 Debian 软件包中那样。 │ │ │ │ │ +(没有 Debian 修订号。) │ │ │ │ │ • mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no Debian │ │ │ │ │ -revision.) │ │ │ │ │ +这个文件描述了这个软件作为外来 Debian 包,在当前版本所作出的所有更改。(没有 Debian 修订) │ │ │ ├── ./usr/share/doc/maint-guide-zh-cn/maint-guide.zh-cn.txt.gz │ │ │ │ ├── maint-guide.zh-cn.txt │ │ │ │ │ @@ -145,20 +145,20 @@ │ │ │ │ │ 8.4. 更新打包风格 │ │ │ │ │ 8.5. UTF-8 转换 │ │ │ │ │ 8.6. 对更新软件包的几点提示 │ │ │ │ │ 9. 上传软件包 │ │ │ │ │ 9.1. 上传到 Debian 仓库 │ │ │ │ │ 9.2. 在上传时包含 orig.tar.gz 文件 │ │ │ │ │ 9.3. 跳过的上传 │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ - A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ +A. 高级打包 │ │ │ │ │ + A.1. 共享库 │ │ │ │ │ + A.2. 管理 debian/package.symbols │ │ │ │ │ + A.3. 多体系结构 │ │ │ │ │ + A.4. 构建共享库包 │ │ │ │ │ + A.5. Debian 本土软件包 │ │ │ │ │ │ │ │ │ │ 第 1 章 正确的起点 │ │ │ │ │ │ │ │ │ │     本教程文档已被重写为另外的 Debian 维护者指导文档,其中包含了更新 │ │ │ │ │ 的内容与更多实际例子。请使用新的教程作为主要的教程文档。 │ │ │ │ │ │ │ │ │ │ 本文档致力于为普通 Debian 用户,和希望对 Debian 软件包有所了解的 │ │ │ │ │ @@ -2495,15 +2495,15 @@ │ │ │ │ │     这些 maintainer scripts 是 Debian 的增强特性,它们解释了人们为什 │ │ │ │ │ 么选择 Debian。你必须非常小心,保证人们不因此产生烦恼。 │ │ │ │ │ │ │ │ │ │ 5.19. package.examples │ │ │ │ │ │ │ │ │ │ 对于新维护者而言,打包一个库非常不易,因此不建议尝试。这样说吧, │ │ │ │ │     如果你的软件包有库,那你应该处理好 debian/package.symbols 文件。 │ │ │ │ │ - 参见第 A.2 节 “Managing debian/package.symbols”. │ │ │ │ │ + 参见第 A.2 节 “管理 debian/package.symbols”. │ │ │ │ │ │ │ │ │ │ 5.20. TODO │ │ │ │ │ │ │ │ │ │     dh_installdocs(1) 命令会安装这个文件。 │ │ │ │ │ │ │ │ │ │ 5.21. watch │ │ │ │ │ │ │ │ │ │ @@ -3540,406 +3540,358 @@ │ │ │ │ │ │ │ │ │ │     ^[85] 参见 Debian Developer's Reference 5.6. "Uploading a │ │ │ │ │ package". │ │ │ │ │ │ │ │ │ │     ^[86] 参见 ftp://ftp.upload.debian.org/pub/UploadQueue/README。或 │ │ │ │ │ 者是,你可以使用 dcut 命令,它来自 dput 软件包。 │ │ │ │ │ │ │ │ │ │ -附录 A. Advanced packaging │ │ │ │ │ +附录 A. 高级打包 │ │ │ │ │ │ │ │ │ │     本教程文档已被重写为另外的 Debian 维护者指导文档,其中包含了更新 │ │ │ │ │ 的内容与更多实际例子。请使用新的教程作为主要的教程文档。 │ │ │ │ │ │ │ │ │ │ - Here are some hints and pointers for advanced packaging topics │ │ │ │ │ -    that you are most likely to deal with. You are strongly advised │ │ │ │ │ - to read all the references suggested here. │ │ │ │ │ - │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ +    这里有一些关于你可能遇到的高级打包问题的提示。如果有需要的话,本 │ │ │ │ │ + 教程强烈建议阅读这里引用和建议的文档。 │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +    你可能需要手工编辑由 dh_make 命令生成的打包模板文件,以此来解决本 │ │ │ │ │ + 章中所讨论的问题。新的 debmake 命令应该能更好地解决这些问题。 │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +A.1. 共享库 │ │ │ │ │ + │ │ │ │ │ +    在打包共享库之前,你应该阅读以下的主要参考资料: │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ │ │ │ │ │     * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    以下是帮助你开始的极简解释: │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * 共享库均为 elf 对象文件,其包含编译好的机器码。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * 共享库以 *.so 文件的形式发放。(既非 *.a 文件也非 *.la 文件) │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * 共享库主要用于在不同的二进制可执行程序之间共享代码,这背后使 │ │ │ │ │ + 用了 ld (译注:链接)机制。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * 共享库有时会为一个可执行程序提供多个插件,这背后使用了 dlopen │ │ │ │ │ + 机制。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries export symbols, which represent compiled │ │ │ │ │ - objects such as variables, functions, and classes; and enable │ │ │ │ │ - access to them from the linked executables. │ │ │ │ │ + * 共享库能导出代表着变量,函数和类的 symbols(符号);并允许链 │ │ │ │ │ + 接到它的可执行文件访问之。 │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ + * 共享库 libfoo.so.1 中的 SONAME : objdump -p libfoo.so.1 | │ │ │ │ │ + grep SONAME ^[87] │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ + * 共享库的 SONAME 常常与库文件自身文件名一致(不过有特例)。 │ │ │ │ │ │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ - objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ + * 链接到 /usr/bin/foo 的共享库的 SONAME : objdump -p /usr/bin/ │ │ │ │ │ +    foo | grep NEEDED ^[88] │ │ │ │ │ │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ + * libfoo1: 共享库 libfoo.so.1 的库文件包,其 SONAME ABI 版本为 │ │ │ │ │ + 1.^[89] │ │ │ │ │ │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * 在某些情况下,库软件包的 maintainer scripts 必须调用 ldconfig │ │ │ │ │ + 来为 SONAME 创建必要的符号链接。^[90] │ │ │ │ │ │ │ │ │ │ - * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ - debugging symbols for the shared library package libfoo1. │ │ │ │ │ + * libfoo1-dbg: 包含了调试共享库包用的调试符号的软件包 libfoo1. │ │ │ │ │ │ │ │ │ │ - * libfoo-dev: the development package that contains the header │ │ │ │ │ - files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ + * libfoo-dev: 包含了头文件等内容的开发包。用于 libfoo.so.1.^ │ │ │ │ │ + [91] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ - in general.^[92] │ │ │ │ │ + * 一般而言,Debian 软件包不应当包含 *.la Libtool 归档文件。 ^ │ │ │ │ │ + [92] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ + * 一般来说,Debian 软件包不应当使用 RPATH。^[93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * 虽然这有点过时,而且是第二参考, Debian Library Packaging │ │ │ │ │ + Guide 可能仍然对你有用。 │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. 管理 debian/package.symbols │ │ │ │ │ │ │ │ │ │ - When you package a shared library, you should create a debian/ │ │ │ │ │ - package.symbols file to manage the minimal version associated │ │ │ │ │ -    with each symbol for backward-compatible ABI changes under the │ │ │ │ │ - same SONAME of the library for the same shared library package │ │ │ │ │ - name.^[94] You should read the following primary references in │ │ │ │ │ - detail: │ │ │ │ │ + 当你给共享库打包时,你应当创建 debian/package.symbols 文件来管理 │ │ │ │ │ +    在共享库名称不变,在同一个 SONAME 下又要提供 ABI 向后兼容性的情况 │ │ │ │ │ + 下每个符号关联到的最小版本号。 ^[94] 你可以阅读下边的主要参考以获 │ │ │ │ │ + 知细节: │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 8.6.3 "The symbols system"^[95] │ │ │ │ │ │ │ │ │ │ * dh_makeshlibs(1) │ │ │ │ │ │ │ │ │ │     * dpkg-gensymbols(1) │ │ │ │ │ │ │ │ │ │ * dpkg-shlibdeps(1) │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ - Here is a rough example of how to create the libfoo1 package from │ │ │ │ │ -    the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ - file: │ │ │ │ │ - │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ - │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ - debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ - all available binary packages of the same shared library │ │ │ │ │ - package name containing the same SONAME of the library, for │ │ │ │ │ - example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ +    这是个粗略的例子,用来来演示创建 libfoo1 软件包的方法,此时使用上 │ │ │ │ │ + 游 1.3 版本,有着妥当的debian/libfoo1.symbols 文件: │ │ │ │ │ + │ │ │ │ │ + * 使用上游提供的 libfoo-1.3.tar.gz 文件来准备 Debian化的源码骨架。 │ │ │ │ │ + │ │ │ │ │ + + 如果这是库软件包 libfoo1 的第一次打包,那么以空内容创建 │ │ │ │ │ + debian/libfoo1.symbols 文件。 │ │ │ │ │ + │ │ │ │ │ + + 如果之前的上游版本 1.2 已经被 libfoo1 软件包打包了,并且其源 │ │ │ │ │ + 码包中有妥当的 debian/libfoo1.symbols,再用它一次。 │ │ │ │ │ + │ │ │ │ │ + + 如果前一个上游 1.2 版本打包时没有 debian/libfoo1.symbols,那 │ │ │ │ │ + 就从具有相同库 SONAME 的同一个共享库包的所有可用的二进制软件 │ │ │ │ │ + 包中创建它并命名为 symbols 文件。比如 1.1-1 和 1.2-1。 ^[96] │ │ │ │ │ │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ - * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ - and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ - were some backward-incompatible ABI changes that require you to │ │ │ │ │ - bump the shared library package name to something like libfoo1a │ │ │ │ │ - and you should start over again.) │ │ │ │ │ + * 尝试用像 debuild 和 pdebuild 这样的工具来对源码树进行试构建。 (如 │ │ │ │ │ + 果这因为缺失符号之类原因而失败,那么这里就有一些不向后兼容的 ABI │ │ │ │ │ + 改变,这就需要你转移(bump)共享库的名称到诸如 libfoo1a ,并重新开 │ │ │ │ │ + 始一次。) │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ -    $ debuild │ │ │ │ │ + $ debuild │ │ │ │ │ ... │ │ │ │ │ - dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ +    dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ foo_get_name@Base 1.1 │ │ │ │ │ foo_get_longname@Base 1.2 │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - * If you see the diff printed by the dpkg-gensymbols as above, │ │ │ │ │ - extract the proper updated symbols file from the generated binary │ │ │ │ │ - package of the shared library. ^[97] │ │ │ │ │ + * 如果你如上述看见由 dpkg-gensymbols 命令打印出来的差异,那就从生成 │ │ │ │ │ + 的二进制库包中抽取妥当更新的 symbols 文件。 ^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * 使用像 debuild 和 pdebuild 这样的工具来构建发行软件包。 │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ - │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ - │ │ │ │ │ -A.3. Multiarch │ │ │ │ │ - │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ - │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ -    │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ - │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ +    对上边这个例子补充一点,我们需要进一步检查 ABI (应用程序二进制接 │ │ │ │ │ + 口) 兼容性并在需要的时候手动更新一些符号的版本。 ^[98] │ │ │ │ │ + │ │ │ │ │ +    虽然这只是第二参考, Debian wiki UsingSymbolsFiles 和它指向的页面 │ │ │ │ │ + 可能会有所帮助。 │ │ │ │ │ + │ │ │ │ │ +A.3. 多体系结构 │ │ │ │ │ + │ │ │ │ │ + Debian wheezy 引入的多体系结构特性,集成了对二进制包跨体系结构安 │ │ │ │ │ +    装的支持 (尤其是 i386<->amd64,其他的组合也有) 于 dpkg 和 apt 中 │ │ │ │ │ + 。你可以阅读下边的参考: │ │ │ │ │ + │ │ │ │ │ + * Ubuntu wiki MultiarchSpec (上游) │ │ │ │ │ +    │ │ │ │ │ + * Debian wiki Multiarch/Implementation (Debian 的局势) │ │ │ │ │ + │ │ │ │ │ + 它为每个共享库的安装路径使用了类似 i386-linux-gnu 和 │ │ │ │ │ + x86_64-linux-gnu 这样的三元名字。实际上每个二进制软件包构建的三元 │ │ │ │ │ +    路径是被动态设置到 $(DEB_HOST_MULTIARCH) 变量中的,经由 │ │ │ │ │ + dpkg-architecture(1) 命令。举个例子,安装多体系结构库文件的路径被 │ │ │ │ │ + 按照下表进行了修改:^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ + | 旧路径 | i386 多体系结构路径 | amd64 多体系结构路径 | │ │ │ │ │     |---------+------------------------+--------------------------| │ │ │ │ │ |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ |---------+------------------------+--------------------------| │ │ │ │ │ |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ +-------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ -    Here are some typical multiarch package split scenario examples │ │ │ │ │ - for the following: │ │ │ │ │ +    下面是一些典型的多体系结构软件包分离情景: │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * 库源码 libfoo-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ +    * 一个用编译型语言编写的工具的源码 bar-1.tar.gz │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * 一个用解释型语言编写的工具的源码 bar-1.tar.gz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ + | 软件包 |体系结构 |多体系结构 | 软件包内容 | │ │ │ │ │ + | | : | : | | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo1 |任何 |相同 |共享库,可共同安装 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo1-dbg |任何 |相同 |共享库调试符号,可共同安装 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo-dev |任何 |相同 |共享库头文件之类,可共同安装| │ │ │ │ │ +    |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo-tools|任何 |外来 |运行时支持程序,不可共同安装| │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo-doc |全部 |外来 |共享库文档 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |bar |任何 |外来 |编译好的程序文件,不可共同安| │ │ │ │ │ + | | | |装 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |bar-doc |全部 |外来 |程序的配套文档文件 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |baz |全部 |外来 |解释型程序文件 | │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +    请注意,开发软件包应该包含一个指向共享库的符号链接并且不带有版本 │ │ │ │ │ + 号。比如: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. 构建共享库包 │ │ │ │ │ │ │ │ │ │ -    You can build a Debian library package enabling multiarch support │ │ │ │ │ - using dh(1) as follows: │ │ │ │ │ +    你可以用 dh(1) 通过以下方法构建一个支持多体系结构的 Debian 库软件 │ │ │ │ │ + 包: │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ + * 更新 debian/control。 │ │ │ │ │ │ │ │ │ │ - + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ - section. │ │ │ │ │ + + 为源码包部分添加 Build-Depends: debhelper (>=10) 部分。 │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + 为每个二进制库软件包添加 Pre-Depends: ${misc:Pre-Depends} │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + 在每个二进制包的段中添加 Multi-Arch: 小节。 │ │ │ │ │ │ │ │ │ │ - * Set debian/compat to "10". │ │ │ │ │ + * 设置 debian/compat 为"10"。 │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ + * 将所有打包脚本中的路径从普通的 /usr/lib/ 调整到多体系结构的 /usr/ │ │ │ │ │ + lib/$(DEB_HOST_MULTIARCH)/。 │ │ │ │ │ │ │ │ │ │ - + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ - -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ - debian/rules. │ │ │ │ │ + + 首先,在 debian/rules 中调用 DEB_HOST_MULTIARCH ?= $(shell │ │ │ │ │ + dpkg-architecture -qDEB_HOST_MULTIARCH) 以设置 │ │ │ │ │ + DEB_HOST_MULTIARCH 变量。 │ │ │ │ │ │ │ │ │ │ - + If ./configure is used in part of the │ │ │ │ │ - override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ - to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ +    + 在 debian/rules 中用 /usr/lib/$(DEB_HOST_MULTIARCH)/ 替换 / │ │ │ │ │ + usr/lib/。 │ │ │ │ │ │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ + + 如果 debian/rules 文件中的 override_dh_auto_configure 目标使 │ │ │ │ │ + 用了 ./configure 文件,那么请确认用 dh_auto_configure -- 来替 │ │ │ │ │ + 换它。 ^[100] │ │ │ │ │ │ │ │ │ │ - + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ - dynamically by adding a script to the │ │ │ │ │ - override_dh_auto_configure target in debian/rules. │ │ │ │ │ + + 在debian/foo.install 文件中将所有 /usr/lib/ 的事件替换为 /usr │ │ │ │ │ + /lib/*/ 。 │ │ │ │ │ + │ │ │ │ │ + + 如需从 debian/foo.links.in 动态地生成像 debian/foo.links 这样 │ │ │ │ │ + 的文件,可以添加一个脚本到 debian/rules 文件的 │ │ │ │ │ + override_dh_auto_configure 目标中。 │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ - │ │ │ │ │ - All files installed simultaneously as the multiarch package to │ │ │ │ │ -    the same file path should have exactly the same file content. You │ │ │ │ │ - must be careful of differences generated by the data byte order │ │ │ │ │ - and by the compression algorithm. │ │ │ │ │ - │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ - │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ - │ │ │ │ │ - You can make the upstream tarball by excluding the debian/* files │ │ │ │ │ -    and package it as a non-native Debian package as in 第 2.1 节 │ │ │ │ │ - “Debian 软件包制作流程”. This is the normal way, which some │ │ │ │ │ - people encourage using. │ │ │ │ │ - │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ - │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ +    请确认该共享库软件包仅仅包含预期中的文件,并且你的 -dev 软件包还 │ │ │ │ │ + 奏效。 │ │ │ │ │ + │ │ │ │ │ + 所有作为多体系结构软件包而同时安装到同一个文件路径的所有文件应当 │ │ │ │ │ +    具有完全一致的文件内容。你必须小心由数据字节序和压缩算法造成的区 │ │ │ │ │ + 别。 │ │ │ │ │ + │ │ │ │ │ +A.5. Debian 本土软件包 │ │ │ │ │ + │ │ │ │ │ +    如果一个软件包是仅仅为 Debian 维护的,或者是可能的本地使用,那么 │ │ │ │ │ + 它的源码可以容纳所有的 debian/* 于其中。这里有它的两种打包方式。 │ │ │ │ │ + │ │ │ │ │ + 你可以将除 debian/* 文件之外的部分制作成上游 tarball,然后将其作 │ │ │ │ │ +    为非本土 Debian 软件包来打包,正如第 2.1 节 “Debian 软件包制作流 │ │ │ │ │ + 程” 所述。这是一些人鼓励使用的普通方法。 │ │ │ │ │ + │ │ │ │ │ +    另一种方法就是本土 Debian 软件包的打包工作流。 │ │ │ │ │ + │ │ │ │ │ + * 用包含所有文件的,单一压缩过的 tar 文件,以 3.0 (native) 格式 │ │ │ │ │ + 来创建本土 Debian 源码包。 │ │ │ │ │ │ │ │ │ │     + package_version.tar.gz │ │ │ │ │ + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ + * 用 Debian 本土源码包构建二进制包。 │ │ │ │ │ │ │ │ │ │ + package_version_arch.deb │ │ │ │ │ │ │ │ │ │ - For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │ -    the debian/* files, you can create a native Debian package by │ │ │ │ │ - issuing the dh_make command as follows: │ │ │ │ │ + 比如说,如果你的源代码文件都存放在 ~/mypackage-1.0 中,而且没有 │ │ │ │ │ +    debian/* 这些文件,那么你可以用它创建一个本土 Debian 软件包,只要 │ │ │ │ │ + 按照下边的方法使用 dh_make 命令: │ │ │ │ │ │ │ │ │ │     $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ - Then the debian directory and its contents are created just like │ │ │ │ │ - in 第 2.8 节 “初始化外来 Debian 软件包”. This does not create a │ │ │ │ │ -    tarball, since this is a native Debian package. But that is the │ │ │ │ │ - only difference. The rest of the packaging activities are │ │ │ │ │ - practically the same. │ │ │ │ │ + 接下来 debian 目录和它的内容都会被创建,正如第 2.8 节 “初始化外来 │ │ │ │ │ +    Debian 软件包” 中那样。这不会创建一个 tarball,因为这是个本土 │ │ │ │ │ + Debian 软件包。不过这也是唯一的区别。剩下的打包操作就是完全一致的 │ │ │ │ │ + 了。 │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    在执行了 dpkg-buildpackage 命令后,你将会在上一级目录中看到这些文 │ │ │ │ │ + 件: │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + 这是 dpkg-source 命令用 mypackage-1.0 目录创建出来的源代码 │ │ │ │ │ + tarball 。 (它的文件名后缀不是 orig.tar.gz) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.dsc │ │ │ │ │ │ │ │ │ │ - This is a summary of the contents of the source code, as in │ │ │ │ │ - the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ + 这是对源码内容的简述,正如在非本土 Debian 软件包中那样。(没 │ │ │ │ │ + 有 Debian 修订号。) │ │ │ │ │     │ │ │ │ │ * mypackage_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ - This is your completed binary package, as in the non-native │ │ │ │ │ - Debian package. (There is no Debian revision.) │ │ │ │ │ + 这是完成的二进制包,正如在非本土 Debian 软件包中那样。(没有 │ │ │ │ │ + Debian 修订号。) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + 这个文件描述了这个软件作为外来 Debian 包,在当前版本所作出的 │ │ │ │ │ + 所有更改。(没有 Debian 修订) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] 或者这样: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] 或者这样: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] 参见 Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] 参见 Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ +    ^[91] 参见 Debian Policy Manual, 8.3 "Static libraries" and │ │ │ │ │ + Debian Policy Manual, 8.4 "Development files". │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] 参见 Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] 参见 Debian wiki RpathIssue. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ +    ^[94] 向后不兼容的 ABI 变更常常需要你更新共享库的 SONAME,并把共 │ │ │ │ │ + 享库名称换成新的。 │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ +    ^[95] 对于 C++ 库和其他追踪单个符号过于困难的情况下,请遵循 │ │ │ │ │ + Debian Policy Manual, 8.6.4 "The shlibs system"。 │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] 所有先前的 Debian 软件包版本都能在 http:// │ │ │ │ │ +    snapshot.debian.org/ 找到。不过 Debian 修订号被去掉了,以使软件包 │ │ │ │ │ + 的 backport 更为容易: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << │ │ │ │ │ + 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +    ^[97] Debian 修订号已被从版本中去掉,这能让软件包的 backport 更为 │ │ │ │ │ + 容易: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ +    ^[98] 参见 Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ changes". │ │ │ │ │ │ │ │ │ │ -    ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ - lib64/ are not used anymore. │ │ │ │ │ +    ^[99] 老旧且具有特殊用途的库路径,比如 /lib32/ 和 /lib64/ 已不再 │ │ │ │ │ + 使用。 │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] 作为替代,你可以添加 --libdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) 和 --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ +    (DEB_HOST_MULTIARCH) 参数到 ./configure 后头。请注意 --libexecdir │ │ │ │ │ + 指定了安装可执行程序(它们被其他程序使用,而更少是用户)的默认路径 │ │ │ │ │ + 。它的 Autotools 默认设置为 /usr/libexec/ 但是 Debian 的设置为 / │ │ │ │ │ + usr/lib/。 ├── maint-guide-zh-tw_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ --rw-r--r-- 0 0 0 1580 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 666336 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 1576 2022-10-08 03:52:48.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 666088 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -2,35 +2,35 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1225 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/changelog.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/copyright │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39459 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/advanced.zh-tw.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39063 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/advanced.zh-tw.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 35894 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/build.zh-tw.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17482 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/checkit.zh-tw.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5698 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/debian.css │ │ │ │ --rw-r--r-- 0 root (0) root (0) 60107 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/dother.zh-tw.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 60103 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/dother.zh-tw.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 74690 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/dreq.zh-tw.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 51867 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/first.zh-tw.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1391 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/caution.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3387 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/home.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1552 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/important.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1749 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/next.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1523 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/note.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1761 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/prev.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/images/warning.png │ │ │ │ --rw-r--r-- 0 root (0) root (0) 25031 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/index.zh-tw.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 25008 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/index.zh-tw.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21827 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/modify.zh-tw.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32305 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/start.zh-tw.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 30376 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/update.zh-tw.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11533 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/upload.zh-tw.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 524487 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/maint-guide.zh-tw.pdf │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61935 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/maint-guide.zh-tw.txt.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11521 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/html/upload.zh-tw.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 524496 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/maint-guide.zh-tw.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61891 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide-zh-tw/maint-guide.zh-tw.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 652 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide-zh-tw.maint-guide-zh-tw │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 69 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide-zh-tw │ │ │ ├── ./usr/share/doc/maint-guide-zh-tw/html/advanced.zh-tw.html │ │ │ │ ├── ./usr/share/doc/maint-guide-zh-tw/html/advanced.zh-tw.html │ │ │ │ │ @@ -1,26 +1,26 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - 附錄 A. Advanced packaging │ │ │ │ │ + 附錄 A. 高級打包 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -

Here are some typical multiarch package split scenario examples for the │ │ │ │ │ -following:

│ │ │ │ │ +

下面是一些典型的多體系結構軟體包分離情景:

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a library source │ │ │ │ │ + 庫源碼 │ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + 一個用編譯型語言編寫的工具的源碼 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in a compiled language │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - a tool source │ │ │ │ │ + 一個用解釋型語言編寫的工具的源碼 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - baz │ │ │ │ │ + bar │ │ │ │ │ │ │ │ │ │ -1.tar.gz │ │ │ │ │ │ │ │ │ │ - written in an interpreted language │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ @@ -774,18 +741,18 @@ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ - │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ + │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
PackageArchitecture:Multi-Arch:Package content軟件包體繫結構:多體繫結構:軟件包內容
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ @@ -793,284 +760,277 @@ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anysamethe shared library, co-installable任何相同共享庫,可共同安裝
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ 1 │ │ │ │ │ │ │ │ │ │ -dbg │ │ │ │ │ │ │ │ │ │ anysamethe shared library debug symbols, co-installable任何相同共享庫調試符號,可共同安裝
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -dev │ │ │ │ │ │ │ │ │ │ anysamethe shared library header files etc., co-installable任何相同共享庫頭文件之類,可共同安裝
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -tools │ │ │ │ │ │ │ │ │ │ anyforeignthe run-time support programs, not co-installable任何外來運行時支持程序,不可共同安裝
│ │ │ │ │ │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe shared library documentation files全部外來共享庫文檔
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ anyforeignthe compiled program files, not co-installable任何外來編譯好的程序文件,不可共同安裝
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ bar │ │ │ │ │ │ │ │ │ │ -doc │ │ │ │ │ │ │ │ │ │ allforeignthe documentation files for the program全部外來程序的配套文檔文件
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ allforeignthe interpreted program files全部外來解釋型程序文件
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - Please note that the development package should contain a symlink for the │ │ │ │ │ -associated shared library │ │ │ │ │ + 請注意,開發軟件包應該包含一個指向共享庫的符號鏈接並且 │ │ │ │ │ │ │ │ │ │ - without a version │ │ │ │ │ -number │ │ │ │ │ + 不帶有版本號 │ │ │ │ │ │ │ │ │ │ - . E.g.: │ │ │ │ │ + 。 比如: │ │ │ │ │ /usr/lib/x86_64-linux-gnu/libfoo.so │ │ │ │ │ -> │ │ │ │ │ libfoo.so.1 │ │ │ │ │

│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - You can build a Debian library package enabling multiarch support using │ │ │ │ │ + 你可以用 │ │ │ │ │ │ │ │ │ │ dh │ │ │ │ │ (1) │ │ │ │ │ │ │ │ │ │ - as follows: │ │ │ │ │ + 透過以下方法構建一個支援多體系結構的 Debian 庫軟體包: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ │ -

Please make sure to verify that the shared library package contains only the │ │ │ │ │ -expected files, and that your -dev package still works.

│ │ │ │ │ -

All files installed simultaneously as the multiarch package to the same file │ │ │ │ │ -path should have exactly the same file content. You must be careful of │ │ │ │ │ -differences generated by the data byte order and by the compression │ │ │ │ │ -algorithm.

│ │ │ │ │ +

請確認該共享庫軟件包僅僅包含預期中的文件,並且你的 -dev 軟件包還奏效。

│ │ │ │ │ +

所有作為多體系結構軟體包而同時安裝到同一個檔案路徑的所有檔案應當具有完全一致的檔案內容。你必須小心由資料位元組序和壓縮演算法造成的區別。

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │

│ │ │ │ │ - If a package is maintained only for Debian or possibly only for local use, │ │ │ │ │ -its source may contain all the │ │ │ │ │ + 如果一個軟件包是僅僅爲 Debian 維護的,或者是可能的本地使用,那麼它的源碼可以容納所有的 │ │ │ │ │ debian/* │ │ │ │ │ - files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ + 於其中。這裏有它的兩種打包方式。 │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - You can make the upstream tarball by excluding the │ │ │ │ │ + 你可以將除 │ │ │ │ │ debian/* │ │ │ │ │ - files and package it as a non-native Debian │ │ │ │ │ -package as in │ │ │ │ │ + 檔案之外的部分製作成上游 tarball,然後將其作為非本土 Debian │ │ │ │ │ +軟體包來打包,正如 │ │ │ │ │ 節 2.1, “Debian 軟件包構建流程” │ │ │ │ │ - . This is the normal way, which │ │ │ │ │ -some people encourage using. │ │ │ │ │ + 所述。 這是一些人鼓勵使用的普通方法。 │ │ │ │ │

│ │ │ │ │ -

The alternative is the workflow of the native Debian package.

│ │ │ │ │ +

另一種方法就是本土 Debian 軟件包的打包工作流。

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ - Create a native Debian source package in the │ │ │ │ │ + 用包含所有文件的,單一壓縮過的 tar 文件,以 │ │ │ │ │ 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files are included. │ │ │ │ │ + 格式來創建本土 Debian 源碼包。 │ │ │ │ │

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ package │ │ │ │ │ @@ -1157,15 +1110,15 @@ │ │ │ │ │ .dsc │ │ │ │ │ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │ -

    Build Debian binary packages from the native Debian source package.

    │ │ │ │ │ +

    用 Debian 本土源碼包構建二進制包

    │ │ │ │ │
    │ │ │ │ │
      │ │ │ │ │
    • │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ package │ │ │ │ │ │ │ │ │ │ @@ -1182,96 +1135,89 @@ │ │ │ │ │
    • │ │ │ │ │
    │ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ - For example, if you have source files in │ │ │ │ │ + 比如說,如果你的原始碼檔案都存放在 │ │ │ │ │ ~/mypackage-1.0 │ │ │ │ │ - without the │ │ │ │ │ + 中,而且沒有 │ │ │ │ │ debian/* │ │ │ │ │ - files, you can create a native Debian package │ │ │ │ │ -by issuing the │ │ │ │ │ + 這些檔案,那麼你可以用它建立 一個本土 Debian 軟體包,只要按照下邊的方法使用 │ │ │ │ │ │ │ │ │ │ dh_make │ │ │ │ │ │ │ │ │ │ - command as follows: │ │ │ │ │ + 命令: │ │ │ │ │

│ │ │ │ │
$ cd ~/mypackage-1.0
│ │ │ │ │  $ dh_make --native
│ │ │ │ │

│ │ │ │ │ - Then the │ │ │ │ │ + 接下來 │ │ │ │ │ debian │ │ │ │ │ - directory and its contents are created │ │ │ │ │ -just like in │ │ │ │ │ + 目錄和它的內容都會被建立, 正如 │ │ │ │ │ 節 2.8, “初始化外來 Debian 軟件包” │ │ │ │ │ - . This does not create a │ │ │ │ │ -tarball, since this is a native Debian package. But that is the only │ │ │ │ │ -difference. The rest of the packaging activities are practically the same. │ │ │ │ │ + 中那樣。 這不會建立一個 tarball,因為這是個本土 Debian │ │ │ │ │ +軟體包。不過這也是唯一的區別。 剩下的打包操作就是完全一致的了。 │ │ │ │ │

│ │ │ │ │

│ │ │ │ │ - After execution of the │ │ │ │ │ + 在執行了 │ │ │ │ │ │ │ │ │ │ dpkg-buildpackage │ │ │ │ │ │ │ │ │ │ - command, you │ │ │ │ │ -will see the following files in the parent directory: │ │ │ │ │ + 命令後,你將會在上一級目錄中看到這些文件: │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
    │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.tar.gz │ │ │ │ │

    │ │ │ │ │

    │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 │ │ │ │ │ - directory by the │ │ │ │ │ + 這是 │ │ │ │ │ │ │ │ │ │ dpkg-source │ │ │ │ │ │ │ │ │ │ - command. (Its suffix is not │ │ │ │ │ + 命令用 │ │ │ │ │ + mypackage-1.0 │ │ │ │ │ + 目錄創建出來的源代碼 tarball 。 (它的 文件名後綴不是 │ │ │ │ │ orig.tar.gz │ │ │ │ │ - .) │ │ │ │ │ + ) │ │ │ │ │

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0.dsc │ │ │ │ │

    │ │ │ │ │ -

    This is a summary of the contents of the source code, as in the non-native │ │ │ │ │ -Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    這是對原始碼內容的簡述,正如在非本土 Debian 軟體包中那樣。(沒有 Debian 修訂號。)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.deb │ │ │ │ │

    │ │ │ │ │ -

    This is your completed binary package, as in the non-native Debian package. │ │ │ │ │ -(There is no Debian revision.)

    │ │ │ │ │ +

    這是完成的二進位制包,正如在非本土 Debian 軟體包中那樣。(沒有 Debian 修訂號。)

    │ │ │ │ │
  • │ │ │ │ │
  • │ │ │ │ │

    │ │ │ │ │ mypackage_1.0_i386.changes │ │ │ │ │

    │ │ │ │ │ -

    This file describes all the changes made in the current package version as │ │ │ │ │ -in the non-native Debian package. (There is no Debian revision.)

    │ │ │ │ │ +

    這個文件描述了這個軟件作爲外來 Debian 包,在當前版本所作出的所有更改。(沒有 Debian 修訂)

    │ │ │ │ │
  • │ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [87] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + 或者這樣: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1284,15 +1230,15 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [88] │ │ │ │ │ │ │ │ │ │ - Alternatively: │ │ │ │ │ + 或者這樣: │ │ │ │ │ │ │ │ │ │ readelf -d │ │ │ │ │ lib │ │ │ │ │ │ │ │ │ │ foo │ │ │ │ │ │ │ │ │ │ .so. │ │ │ │ │ @@ -1305,95 +1251,93 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [89] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 參見 │ │ │ │ │ Debian Policy Manual, 8.1 "Run-time shared │ │ │ │ │ libraries" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [90] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 參見 │ │ │ │ │ Debian Policy Manual, 8.1.1 │ │ │ │ │ "ldconfig" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [91] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 參見 │ │ │ │ │ Debian Policy Manual, 8.3 "Static │ │ │ │ │ libraries" │ │ │ │ │ and │ │ │ │ │ Debian Policy Manual, 8.4 │ │ │ │ │ "Development files" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [92] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 參見 │ │ │ │ │ Debian wiki ReleaseGoals/LAFileRemoval │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [93] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 參見 │ │ │ │ │ Debian wiki RpathIssue │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [94] │ │ │ │ │ │ │ │ │ │ - Backward-incompatible ABI changes normally require you to update the SONAME │ │ │ │ │ -of the library and the shared library package name to new ones. │ │ │ │ │ + 向後不兼容的 ABI 變更常常需要你更新共享庫的 SONAME,並把共享庫名稱換成新的。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [95] │ │ │ │ │ │ │ │ │ │ - For C++ libraries and other cases where tracking individual symbols is too │ │ │ │ │ -difficult, follow │ │ │ │ │ - Debian Policy Manual, │ │ │ │ │ -8.6.4 "The shlibs system" │ │ │ │ │ - , instead. │ │ │ │ │ + 對於 C++ 庫和其他追蹤單個符號過於困難的情況下,請遵循 │ │ │ │ │ + Debian │ │ │ │ │ +Policy Manual, 8.6.4 "The shlibs system" │ │ │ │ │ + 。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [96] │ │ │ │ │ │ │ │ │ │ - All previous versions of Debian packages are available at │ │ │ │ │ + 所有先前的 Debian 軟件包版本都能在 │ │ │ │ │ http://snapshot.debian.org/ │ │ │ │ │ - . The Debian revision │ │ │ │ │ -is dropped from the version to make it easier to backport the package: │ │ │ │ │ + 找到。不過 Debian 修訂號 │ │ │ │ │ +被去掉了,以使軟件包的 backport 更爲容易: │ │ │ │ │ 1.1 │ │ │ │ │ << │ │ │ │ │ 1.1-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.1-1 │ │ │ │ │ and │ │ │ │ │ 1.2 │ │ │ │ │ @@ -1404,67 +1348,64 @@ │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [97] │ │ │ │ │ │ │ │ │ │ - The Debian revision is dropped from the version to make it easier to │ │ │ │ │ -backport the package: │ │ │ │ │ + Debian 修訂號已被從版本中去掉,這能讓軟件包的 backport 更爲容易: │ │ │ │ │ 1.3 │ │ │ │ │ << │ │ │ │ │ 1.3-1~bpo70+1 │ │ │ │ │ << │ │ │ │ │ 1.3-1 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [98] │ │ │ │ │ │ │ │ │ │ - See │ │ │ │ │ + 參見 │ │ │ │ │ Debian Policy Manual, 8.6.2 "Shared │ │ │ │ │ library ABI changes" │ │ │ │ │ . │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [99] │ │ │ │ │ │ │ │ │ │ - Old special purpose library paths such as │ │ │ │ │ + 老舊且具有特殊用途的庫路徑,比如 │ │ │ │ │ /lib32/ │ │ │ │ │ - and │ │ │ │ │ + 和 │ │ │ │ │ /lib64/ │ │ │ │ │ - are not used anymore. │ │ │ │ │ + 已不再使用。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │

│ │ │ │ │ │ │ │ │ │ [100] │ │ │ │ │ │ │ │ │ │ - Alternatively, you can add │ │ │ │ │ + 作爲替代,你可以添加 │ │ │ │ │ --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - and │ │ │ │ │ + 和 │ │ │ │ │ --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) │ │ │ │ │ - arguments to │ │ │ │ │ + 參數到 │ │ │ │ │ ./configure │ │ │ │ │ - . Please note that │ │ │ │ │ + 後頭。 請注意 │ │ │ │ │ --libexecdir │ │ │ │ │ - specifies the default path to install │ │ │ │ │ -executable programs run by other programs rather than by users. Its │ │ │ │ │ -Autotools default is │ │ │ │ │ + 指定了 │ │ │ │ │ +安裝可執行程序(它們被其他程序使用,而更少是用戶)的默認路徑。它的 Autotools 默認設置爲 │ │ │ │ │ /usr/libexec/ │ │ │ │ │ - but its Debian │ │ │ │ │ -default is │ │ │ │ │ + 但是 Debian 的設置爲 │ │ │ │ │ /usr/lib/ │ │ │ │ │ - . │ │ │ │ │ + 。 │ │ │ │ │

│ │ │ │ │
│ │ │ │ │
│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── ./usr/share/doc/maint-guide-zh-tw/maint-guide.zh-tw.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -36,39 +36,39 @@ │ │ │ │ │ │ │ │ │ │ Josip Rodin, │ │ │ │ │ Osamu Aoki, Aron │ │ │ │ │ Xu, 李凌, 郑原真, │ │ │ │ │ 陳侃如, 青木修, 且 │ │ │ │ │ 周默 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 简体中文翻译 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 简体中文翻译 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 简体中文翻译 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 繁簡轉換 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 繁簡轉換 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ 简体中文翻译 │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ REVISION HISTORY │ │ │ │ │ NUMBER │ │ │ │ │ │ │ │ │ │ DATE │ │ │ │ │ │ │ │ │ │ DESCRIPTION │ │ │ │ │ @@ -406,23 +406,23 @@ │ │ │ │ │ │ │ │ │ │ 在上傳時包含 orig.tar.gz 檔案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 │ │ │ │ │ │ │ │ │ │ 9.3 │ │ │ │ │ │ │ │ │ │ 跳過的上傳 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 │ │ │ │ │ │ │ │ │ │ -A Advanced packaging │ │ │ │ │ +A 高級打包 │ │ │ │ │ │ │ │ │ │ 53 │ │ │ │ │ │ │ │ │ │ -A.1 Shared libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 │ │ │ │ │ -A.2 Managing debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 │ │ │ │ │ -A.3 Multiarch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ -A.4 Building a shared library package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ -A.5 Native Debian package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ +A.1 共享庫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 │ │ │ │ │ +A.2 管理 debian/package.symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 │ │ │ │ │ +A.3 多體繫結構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 │ │ │ │ │ +A.4 構建共享庫包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 │ │ │ │ │ +A.5 Debian 本土軟件包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 │ │ │ │ │ │ │ │ │ │ Debian 新維護人員手冊 │ │ │ │ │ │ │ │ │ │ 1 / 57 │ │ │ │ │ │ │ │ │ │ Chapter 1 │ │ │ │ │ │ │ │ │ │ @@ -2924,100 +2924,96 @@ │ │ │ │ │ │ │ │ │ │ Debian 新維護人員手冊 │ │ │ │ │ │ │ │ │ │ 53 / 57 │ │ │ │ │ │ │ │ │ │ Appendix A │ │ │ │ │ │ │ │ │ │ -Advanced packaging │ │ │ │ │ +高級打包 │ │ │ │ │ 本教程文件已被重寫為另外的 Debian 維護者指導 (https://www.debian.org/doc/devel-manuals#debmake-doc) 文件,其中 │ │ │ │ │ 包含了更新的內容與更多實際例子。請使用新的教程作為主要的教程文件。 │ │ │ │ │ -Here are some hints and pointers for advanced packaging topics that you are most likely to deal with. You are strongly advised │ │ │ │ │ -to read all the references suggested here. │ │ │ │ │ -You may need to manually edit the packaging template files generated by the dh_make command to address topics covered in │ │ │ │ │ -this chapter. The newer debmake command should address these topics better. │ │ │ │ │ +這裡有一些關於你可能遇到的高階打包問題的提示。如果有需要的話,本教程強烈建議閱讀這裡引用和建議的文件。 │ │ │ │ │ +你可能需要手工編輯由 dh_make 命令生成的打包模板文件,以此來解決本章中所討論的問題。新的 debmake 命令應 │ │ │ │ │ +該能更好地解決這些問題。 │ │ │ │ │ │ │ │ │ │ A.1 │ │ │ │ │ │ │ │ │ │ -Shared libraries │ │ │ │ │ +共享庫 │ │ │ │ │ │ │ │ │ │ -Before packaging shared libraries, you should read the following primary references in detail: │ │ │ │ │ +在打包 共享庫 之前,你應該閱讀以下的主要參考資料: │ │ │ │ │ • Debian Policy Manual, 8 ”Shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html) │ │ │ │ │ • Debian Policy Manual, 9.1.1 ”File System Structure” (http://www.debian.org/doc/debian-policy/ch-opersys.html#s-fhs) │ │ │ │ │ • Debian Policy Manual, 10.2 ”Libraries” (http://www.debian.org/doc/debian-policy/ch-files.html#s-libraries) │ │ │ │ │ -Here are some oversimplified hints for you to get started: │ │ │ │ │ -• Shared libraries are ELF object files containing compiled code. │ │ │ │ │ -• Shared libraries are distributed as *.so files. (Neither *.a files nor *.la files) │ │ │ │ │ -• Shared libraries are mainly used to share common codes among multiple executables with the ld mechanism. │ │ │ │ │ -• Shared libraries are sometimes used to provide multiple plugins to an executable with the dlopen mechanism. │ │ │ │ │ -• Shared libraries export symbols, which represent compiled objects such as variables, functions, and classes; and enable access │ │ │ │ │ -to them from the linked executables. │ │ │ │ │ -• The SONAME of a shared library libfoo.so.1: objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ -• The SONAME of a shared library usually matches the library file name (but not always). │ │ │ │ │ -• The SONAME of shared libraries linked to /usr/bin/foo: objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ -• libfoo1: the library package for the shared library libfoo.so.1 with the SONAME ABI version 1.3 │ │ │ │ │ -1Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ -2Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ -3See Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +以下是幫助你開始的極簡解釋: │ │ │ │ │ +• 共享庫均爲 elf 對象文件,其包含編譯好的機器碼。 │ │ │ │ │ +• 共享庫以 *.so 文件的形式發放。(既非 *.a 文件也非 *.la 文件) │ │ │ │ │ +• 共享庫主要用於在不同的二進制可執行程序之間共享代碼,這背後使用了 ld (譯註:鏈接)機制。 │ │ │ │ │ +• 共享庫有時會爲一個可執行程序提供多個插件,這背後使用了 dlopen 機制。 │ │ │ │ │ +• 共享庫能匯出代表著變數,函式和類的 symbols(符號) │ │ │ │ │ +;並允許連結到它的可執行檔案訪問之。 │ │ │ │ │ +• 共享庫 libfoo.so.1 中的 SONAME : objdump -p libfoo.so.1 | grep SONAME 1 │ │ │ │ │ +• 共享庫的 SONAME 常常與庫文件自身文件名一致 (不過有特例)。 │ │ │ │ │ +• 鏈接到 /usr/bin/foo 的共享庫的 SONAME :objdump -p /usr/bin/foo | grep NEEDED 2 │ │ │ │ │ +• libfoo1: 共享庫 libfoo.so.1 的庫文件包,其 SONAME ABI 版本爲 1.3 │ │ │ │ │ +• 在某些情況下,庫軟件包的 maintainer scripts 必須調用 ldconfig 來爲 SONAME 創建必要的符號鏈接。⁴ │ │ │ │ │ +1或者這樣:readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +2或者這樣:readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +3參見 Debian Policy Manual, 8.1 ”Run-time shared libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime) . │ │ │ │ │ +⁴參見 Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ │ │ │ │ │ Debian 新維護人員手冊 │ │ │ │ │ │ │ │ │ │ 54 / 57 │ │ │ │ │ │ │ │ │ │ -• The package maintainer scripts of the library package must call ldconfig under the specific circumstances to create the necessary │ │ │ │ │ -symbolic links for the SONAME.⁴ │ │ │ │ │ -• libfoo1-dbg: the debugging symbols package that contains the debugging symbols for the shared library package libfoo1. │ │ │ │ │ -• libfoo-dev: the development package that contains the header files etc. for the shared library libfoo.so.1.⁵ │ │ │ │ │ -• Debian packages should not contain *.la Libtool archive files in general.⁶ │ │ │ │ │ -• Debian packages should not use RPATH in general.⁷ │ │ │ │ │ -• Although it is somewhat outdated and is only a secondary reference, Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html) may still be useful. │ │ │ │ │ +• libfoo1-dbg: 包含了除錯共享庫包用的除錯符號的軟體包 libfoo1. │ │ │ │ │ +• libfoo-dev: 包含了標頭檔案等內容的開發包。用於 libfoo.so.1.⁵ │ │ │ │ │ +• 一般而言,Debian 軟體包不應當包含 *.la Libtool 歸檔檔案。⁶ │ │ │ │ │ +• 一般來說,Debian 軟體包不應當使用 RPATH。⁷ │ │ │ │ │ +• 雖然這有點過時,而且是第二參考,Debian Library Packaging Guide (http://www.netfort.gr.jp/~dancer/column/libpkgguide/libpkg-guide.html) 可能仍然對你有用。 │ │ │ │ │ │ │ │ │ │ A.2 │ │ │ │ │ │ │ │ │ │ -Managing debian/package.symbols │ │ │ │ │ +管理 debian/package.symbols │ │ │ │ │ │ │ │ │ │ -When you package a shared library, you should create a debian/package.symbols file to manage the minimal version │ │ │ │ │ -associated with each symbol for backward-compatible ABI changes under the same SONAME of the library for the same shared │ │ │ │ │ -library package name.⁸ You should read the following primary references in detail: │ │ │ │ │ +當你給共享庫打包時,你應當建立 debian/package.symbols 檔案來管理在共享庫名稱不變,在同一個 SONAME │ │ │ │ │ +下又要提供 ABI 向後相容性的情況下每個符號關聯到的最小版本號。⁸ 你可以閱讀下邊的主要參考以獲知細節: │ │ │ │ │ • Debian Policy Manual, 8.6.3 ”The symbols system” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibssymbols) ⁹ │ │ │ │ │ • dh_makeshlibs(1) │ │ │ │ │ • dpkg-gensymbols(1) │ │ │ │ │ • dpkg-shlibdeps(1) │ │ │ │ │ • deb-symbols(5) │ │ │ │ │ -Here is a rough example of how to create the libfoo1 package from the upstream version 1.3 with the proper debian/ │ │ │ │ │ -libfoo1.symbols file: │ │ │ │ │ -• Prepare the skeleton debianized source tree using the upstream libfoo-1.3.tar.gz file. │ │ │ │ │ -– If this is the first packaging of the libfoo1 package, create the debian/libfoo1.symbols file with empty content. │ │ │ │ │ -– If the previous upstream version 1.2 was packaged as the libfoo1 package with the proper debian/libfoo1.symbols │ │ │ │ │ -in its source package, use it again. │ │ │ │ │ -– If the previous upstream version 1.2 was not packaged with debian/libfoo1.symbols, create it as the symbols file │ │ │ │ │ -from all available binary packages of the same shared library package name containing the same SONAME of the library, │ │ │ │ │ -for example, versions 1.1-1 and 1.2-1. 10 │ │ │ │ │ +這是個粗略的例子,用來來演示建立 libfoo1 軟體包的方法,此時使用上游 1.3 版本,有著妥當的debian/ │ │ │ │ │ +libfoo1.symbols 檔案: │ │ │ │ │ +• 使用上游提供的 libfoo-1.3.tar.gz 文件來準備 Debian 化的源碼骨架。 │ │ │ │ │ +– 如果這是庫軟件包 libfoo1 的第一次打包,那麼以空內容創建 debian/libfoo1.symbols 文件。 │ │ │ │ │ +– 如果之前的上游版本 1.2 已經被 libfoo1 軟件包打包了,並且其源碼包中有妥當的 debian/libfoo1. │ │ │ │ │ +symbols,再用它一次。 │ │ │ │ │ +– 如果前一個上游 1.2 版本打包時沒有 debian/libfoo1.symbols,那就從具有相同庫 SONAME 的同一個共享 │ │ │ │ │ +庫包的所有可用的二進位制軟體包中建立它並命名為 symbols 檔案。比如 1.1-1 和 1.2-1。10 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ -⁴See Debian Policy Manual, 8.1.1 ”ldconfig” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-ldconfig) . │ │ │ │ │ -⁵See Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ -⁶See Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ -⁷See Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ -⁸Backward-incompatible ABI changes normally require you to update the SONAME of the library and the shared library package name to new ones. │ │ │ │ │ -⁹For C++ libraries and other cases where tracking individual symbols is too difficult, follow Debian Policy Manual, 8.6.4 ”The shlibs system” │ │ │ │ │ -(http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) , instead. │ │ │ │ │ -10All previous versions of Debian packages are available at http://snapshot.debian.org/ (http://snapshot.debian.org/) . The Debian revision is dropped from │ │ │ │ │ -the version to make it easier to backport the package: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + │ │ │ │ │ +• 嘗試用像 debuild 和 pdebuild 這樣的工具來對原始碼樹進行試構建。(如果這因為缺失符號之類原因而失敗,那麼這 │ │ │ │ │ +裡就有一些不向後相容的 ABI 改變,這就需要你轉移 (bump) 共享庫的名稱到諸如 libfoo1a ,並重新開始一次。) │ │ │ │ │ +⁵參見 Debian Policy Manual, 8.3 ”Static libraries” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-static) and Debian Policy │ │ │ │ │ +Manual, 8.4 ”Development files” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-dev) . │ │ │ │ │ +⁶參見 Debian wiki ReleaseGoals/LAFileRemoval (http://wiki.debian.org/ReleaseGoals/LAFileRemoval) . │ │ │ │ │ +⁷參見 Debian wiki RpathIssue (http://wiki.debian.org/RpathIssue) . │ │ │ │ │ +⁸向後不兼容的 ABI 變更常常需要你更新共享庫的 SONAME,並把共享庫名稱換成新的。 │ │ │ │ │ +⁹對於 C++ 庫和其他追蹤單個符號過於困難的情況下,請遵循 Debian Policy Manual, 8.6.4 ”The shlibs system” (http://www.debian.org/doc/debianpolicy/ch-sharedlibs.html#s-sharedlibs-shlibdeps) 。 │ │ │ │ │ +10所有先前的 Debian 軟件包版本都能在 http://snapshot.debian.org/ (http://snapshot.debian.org/) 找到。不過 Debian 修訂號被去掉了,以使軟件包的 │ │ │ │ │ +backport 更爲容易:1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ Debian 新維護人員手冊 │ │ │ │ │ │ │ │ │ │ 55 / 57 │ │ │ │ │ │ │ │ │ │ -• Make trial builds of the source tree with tools such as debuild and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ -were some backward-incompatible ABI changes that require you to bump the shared library package name to something like │ │ │ │ │ -libfoo1a and you should start over again.) │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx │ │ │ │ │ @@ -3028,176 +3024,178 @@ │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -• If you see the diff printed by the dpkg-gensymbols as above, extract the proper updated symbols file from the generated │ │ │ │ │ -binary package of the shared library. 11 │ │ │ │ │ +• 如果你如上述看見由 dpkg-gensymbols 命令打印出來的差異,那就從生成的二進位制庫包中抽取妥當更新的 │ │ │ │ │ +symbols 檔案。11 │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e ’s/1\.3-1/1\.3/’ libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ -• Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ +• 使用像 debuild 和 pdebuild 這樣的工具來構建發行軟件包。 │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ -In addition to the above examples, we need to check the ABI compatibility further and bump versions for some symbols manually │ │ │ │ │ -as needed. 12 │ │ │ │ │ -Although it is only a secondary reference, Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) and its │ │ │ │ │ -linked web pages may be useful. │ │ │ │ │ +對上邊這個例子補充一點,我們需要進一步檢查 ABI (應用程序二進制接口) 兼容性並在需要的時候手動更新一些符號 │ │ │ │ │ +的版本。12 │ │ │ │ │ +雖然這只是第二參考,Debian wiki UsingSymbolsFiles (http://wiki.debian.org/UsingSymbolsFiles) 和它指向的頁面可能會 │ │ │ │ │ +有所幫助。 │ │ │ │ │ │ │ │ │ │ A.3 │ │ │ │ │ │ │ │ │ │ -Multiarch │ │ │ │ │ +多體繫結構 │ │ │ │ │ + │ │ │ │ │ +Debian wheezy 引入的多體繫結構特性,集成了對二進制包跨體繫結構安裝的支持 (尤其是 i386<->amd64,其他的組 │ │ │ │ │ +合也有) 於 dpkg 和 apt 中。你可以閱讀下邊的參考: │ │ │ │ │ +• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (上游) │ │ │ │ │ +• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian 的局勢) │ │ │ │ │ +它爲每個共享庫的安裝路徑使用了類似 i386-linux-gnu 和 x86_64-linux-gnu 這樣的三元名字。實際上每個二 │ │ │ │ │ +進制軟件包構建的三元路徑是被動態設置到 $(DEB_HOST_MULTIARCH) 變量中的,經由 dpkg-architecture(1) 命令。舉 │ │ │ │ │ +個例子,安裝多體繫結構庫文件的路徑被按照下表進行了修改:13 │ │ │ │ │ │ │ │ │ │ -The multiarch feature introduced to Debian wheezy integrates support for cross-architecture installation of binary packages (particularly i386<->amd64, but also other combinations) in dpkg and apt. You should read the following references in detail: │ │ │ │ │ -• Ubuntu wiki MultiarchSpec (https://wiki.ubuntu.com/MultiarchSpec) (upstream) │ │ │ │ │ -• Debian wiki Multiarch/Implementation (http://wiki.debian.org/Multiarch/Implementation) (Debian situation) │ │ │ │ │ -It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu for the install path of shared libraries. The actual │ │ │ │ │ -triplet path is dynamically set into the $(DEB_HOST_MULTIARCH) variable using the dpkg-architecture(1) command for each │ │ │ │ │ -binary package build. For example, the path to install multiarch libraries are changed as follows:13 │ │ │ │ │ -11The Debian revision is dropped from the version to make it easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ -12See Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ -13Old special purpose library paths such as /lib32/ and /lib64/ are not used anymore. │ │ │ │ │ +11Debian 修訂號已被從版本中去掉,這能讓軟件包的 backport 更爲容易:1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +12參見 Debian Policy Manual, 8.6.2 ”Shared library ABI changes” (http://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-updates) . │ │ │ │ │ +13老舊且具有特殊用途的庫路徑,比如 /lib32/ 和 /lib64/ 已不再使用。 │ │ │ │ │ │ │ │ │ │ Debian 新維護人員手冊 │ │ │ │ │ │ │ │ │ │ -Old path │ │ │ │ │ +舊路徑 │ │ │ │ │ /lib/ │ │ │ │ │ /usr/lib/ │ │ │ │ │ │ │ │ │ │ 56 / 57 │ │ │ │ │ │ │ │ │ │ -i386 multiarch path │ │ │ │ │ +i386 多體繫結構路徑 │ │ │ │ │ /lib/i386-linux-gnu/ │ │ │ │ │ /usr/lib/i386-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -amd64 multiarch path │ │ │ │ │ +amd64 多體繫結構路徑 │ │ │ │ │ /lib/x86_64-linux-gnu/ │ │ │ │ │ /usr/lib/x86_64-linux-gnu/ │ │ │ │ │ │ │ │ │ │ -Here are some typical multiarch package split scenario examples for the following: │ │ │ │ │ -• a library source libfoo-1.tar.gz │ │ │ │ │ -• a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ -• a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ -Package │ │ │ │ │ +下面是一些典型的多體系結構軟體包分離情景: │ │ │ │ │ +• 庫源碼 libfoo-1.tar.gz │ │ │ │ │ +• 一個用編譯型語言編寫的工具的源碼 bar-1.tar.gz │ │ │ │ │ +• 一個用解釋型語言編寫的工具的源碼 bar-1.tar.gz │ │ │ │ │ +軟件包 │ │ │ │ │ libfoo1 │ │ │ │ │ libfoo1-dbg │ │ │ │ │ libfoo-dev │ │ │ │ │ libfoo-tools │ │ │ │ │ libfoo-doc │ │ │ │ │ bar │ │ │ │ │ bar-doc │ │ │ │ │ baz │ │ │ │ │ │ │ │ │ │ -Architecture: │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -any │ │ │ │ │ -all │ │ │ │ │ -all │ │ │ │ │ - │ │ │ │ │ -Multi-Arch: │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -same │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ -foreign │ │ │ │ │ - │ │ │ │ │ -Package content │ │ │ │ │ -the shared library, co-installable │ │ │ │ │ -the shared library debug symbols, co-installable │ │ │ │ │ -the shared library header files etc., co-installable │ │ │ │ │ -the run-time support programs, not co-installable │ │ │ │ │ -the shared library documentation files │ │ │ │ │ -the compiled program files, not co-installable │ │ │ │ │ -the documentation files for the program │ │ │ │ │ -the interpreted program files │ │ │ │ │ - │ │ │ │ │ -Please note that the development package should contain a symlink for the associated shared library without a version number. │ │ │ │ │ -E.g.: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +體繫結構: │ │ │ │ │ +任何 │ │ │ │ │ +任何 │ │ │ │ │ +任何 │ │ │ │ │ +任何 │ │ │ │ │ +全部 │ │ │ │ │ +任何 │ │ │ │ │ +全部 │ │ │ │ │ +全部 │ │ │ │ │ + │ │ │ │ │ +多體繫結構: │ │ │ │ │ +相同 │ │ │ │ │ +相同 │ │ │ │ │ +相同 │ │ │ │ │ +外來 │ │ │ │ │ +外來 │ │ │ │ │ +外來 │ │ │ │ │ +外來 │ │ │ │ │ +外來 │ │ │ │ │ + │ │ │ │ │ +軟件包內容 │ │ │ │ │ +共享庫,可共同安裝 │ │ │ │ │ +共享庫調試符號,可共同安裝 │ │ │ │ │ +共享庫頭文件之類,可共同安裝 │ │ │ │ │ +運行時支持程序,不可共同安裝 │ │ │ │ │ +共享庫文檔 │ │ │ │ │ +編譯好的程序文件,不可共同安裝 │ │ │ │ │ +程序的配套文檔文件 │ │ │ │ │ +解釋型程序文件 │ │ │ │ │ + │ │ │ │ │ +請注意, │ │ │ │ │ +開發軟件包應該包含一個指向共享庫的符號鏈接並且 不帶有版本號。 │ │ │ │ │ +比如:/usr/lib/x86_64-linux-gnu/ │ │ │ │ │ +libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ A.4 │ │ │ │ │ │ │ │ │ │ -Building a shared library package │ │ │ │ │ +構建共享庫包 │ │ │ │ │ │ │ │ │ │ -You can build a Debian library package enabling multiarch support using dh(1) as follows: │ │ │ │ │ -• Update debian/control. │ │ │ │ │ -– Add Build-Depends: debhelper (>=10) for the source package section. │ │ │ │ │ -– Add Pre-Depends: ${misc:Pre-Depends} for each shared library binary package. │ │ │ │ │ -– Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ -• Set debian/compat to ”10”. │ │ │ │ │ -• Adjust the path from the normal /usr/lib/ to the multiarch /usr/lib/$(DEB_HOST_MULTIARCH)/ for all packaging │ │ │ │ │ -scripts. │ │ │ │ │ -– Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) in debian/rules │ │ │ │ │ -to set the DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -– Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in debian/rules. │ │ │ │ │ -– If ./configure is used in part of the override_dh_auto_configure target in debian/rules, make sure to │ │ │ │ │ -replace it with dh_auto_configure -- . 1⁴ │ │ │ │ │ -– Replace all occurrences of /usr/lib/ with /usr/lib/*/ in debian/foo.install files. │ │ │ │ │ - │ │ │ │ │ -– Generate files like debian/foo.links from debian/foo.links.in dynamically by adding a script to the override_dh_a │ │ │ │ │ -target in debian/rules. │ │ │ │ │ - │ │ │ │ │ -1⁴Alternatively, you can add --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$(DEB_HOST_MUL │ │ │ │ │ -arguments to ./configure. Please note that --libexecdir specifies the default path to install executable programs run by other programs rather than by │ │ │ │ │ -users. Its Autotools default is /usr/libexec/ but its Debian default is /usr/lib/. │ │ │ │ │ +你可以用 dh(1) 透過以下方法構建一個支援多體系結構的 Debian 庫軟體包: │ │ │ │ │ +• 更新 debian/control。 │ │ │ │ │ +– 為原始碼包部分新增 Build-Depends: debhelper (>=10) 部分。 │ │ │ │ │ +– 爲每個二進制庫軟件包添加 Pre-Depends: ${misc:Pre-Depends} 。 │ │ │ │ │ +– 在每個二進制包的段中添加 Multi-Arch: 小節。 │ │ │ │ │ +• 設定 debian/compat 為”10”。 │ │ │ │ │ +• 將所有打包腳本中的路徑從普通的 /usr/lib/ 調整到多體繫結構的 /usr/lib/$(DEB_HOST_MULTIARCH)/。 │ │ │ │ │ + │ │ │ │ │ +– 首先, │ │ │ │ │ +在 debian/rules 中呼叫 DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTI │ │ │ │ │ +以設定 DEB_HOST_MULTIARCH 變數。 │ │ │ │ │ +– 在 debian/rules 中用 /usr/lib/$(DEB_HOST_MULTIARCH)/ 替換 /usr/lib/。 │ │ │ │ │ +– 如果 debian/rules 檔案中的 override_dh_auto_configure 目標使用了 ./configure 檔案,那麼請確 │ │ │ │ │ +認用 dh_auto_configure -- 來替換它。1⁴ │ │ │ │ │ +– 在debian/foo.install 文件中將所有 /usr/lib/ 的事件替換爲 /usr/lib/*/ 。 │ │ │ │ │ +– 如 需 從 debian/foo.links.in 動 態 地 生 成 像 debian/foo.links 這 樣 的 檔 案, 可 以 新 增 一 個 指 令 碼 到 │ │ │ │ │ +debian/rules 檔案的 override_dh_auto_configure 目標中。 │ │ │ │ │ + │ │ │ │ │ +1⁴作爲替代, │ │ │ │ │ +你可以添加 --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) 和 --libexecdir=\$${prefix}/lib/$(DEB_HOST_MULTI │ │ │ │ │ +參數到 ./configure 後頭。請注意 --libexecdir 指定了安裝可執行程序 (它們被其他程序使用,而更少是用戶) 的默認路徑。它的 Autotools 默 │ │ │ │ │ +認設置爲 /usr/libexec/ 但是 Debian 的設置爲 /usr/lib/。 │ │ │ │ │ │ │ │ │ │ Debian 新維護人員手冊 │ │ │ │ │ │ │ │ │ │ 57 / 57 │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed ’s/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g’ \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ -Please make sure to verify that the shared library package contains only the expected files, and that your -dev package still works. │ │ │ │ │ -All files installed simultaneously as the multiarch package to the same file path should have exactly the same file content. You │ │ │ │ │ -must be careful of differences generated by the data byte order and by the compression algorithm. │ │ │ │ │ +請確認該共享庫軟件包僅僅包含預期中的文件,並且你的 -dev 軟件包還奏效。 │ │ │ │ │ +所有作為多體系結構軟體包而同時安裝到同一個檔案路徑的所有檔案應當具有完全一致的檔案內容。你必須小心由資 │ │ │ │ │ +料位元組序和壓縮演算法造成的區別。 │ │ │ │ │ │ │ │ │ │ A.5 │ │ │ │ │ │ │ │ │ │ -Native Debian package │ │ │ │ │ +Debian 本土軟件包 │ │ │ │ │ │ │ │ │ │ -If a package is maintained only for Debian or possibly only for local use, its source may contain all the debian/* files in it. │ │ │ │ │ -There are 2 ways to package it. │ │ │ │ │ -You can make the upstream tarball by excluding the debian/* files and package it as a non-native Debian package as in 節 │ │ │ │ │ -2.1. This is the normal way, which some people encourage using. │ │ │ │ │ -The alternative is the workflow of the native Debian package. │ │ │ │ │ -• Create a native Debian source package in the 3.0 (native) format using a single compressed tar file in which all files are │ │ │ │ │ -included. │ │ │ │ │ +如果一個軟件包是僅僅爲 Debian 維護的,或者是可能的本地使用,那麼它的源碼可以容納所有的 debian/* 於其中。 │ │ │ │ │ +這裏有它的兩種打包方式。 │ │ │ │ │ +你可以將除 debian/* 檔案之外的部分製作成上游 tarball,然後將其作為非本土 Debian 軟體包來打包,正如節 2.1 所 │ │ │ │ │ +述。這是一些人鼓勵使用的普通方法。 │ │ │ │ │ +另一種方法就是本土 Debian 軟件包的打包工作流。 │ │ │ │ │ +• 用包含所有文件的,單一壓縮過的 tar 文件,以 3.0 (native) 格式來創建本土 Debian 源碼包。 │ │ │ │ │ – package_version.tar.gz │ │ │ │ │ – package_version.dsc │ │ │ │ │ -• Build Debian binary packages from the native Debian source package. │ │ │ │ │ +• 用 Debian 本土源碼包構建二進制包 │ │ │ │ │ – package_version_arch.deb │ │ │ │ │ -For example, if you have source files in ~/mypackage-1.0 without the debian/* files, you can create a native Debian │ │ │ │ │ -package by issuing the dh_make command as follows: │ │ │ │ │ +比如說,如果你的原始碼檔案都存放在 ~/mypackage-1.0 中,而且沒有 debian/* 這些檔案,那麼你可以用它建 │ │ │ │ │ +立一個本土 Debian 軟體包,只要按照下邊的方法使用 dh_make 命令: │ │ │ │ │ $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ -Then the debian directory and its contents are created just like in 節 2.8. This does not create a tarball, since this is a native │ │ │ │ │ -Debian package. But that is the only difference. The rest of the packaging activities are practically the same. │ │ │ │ │ -After execution of the dpkg-buildpackage command, you will see the following files in the parent directory: │ │ │ │ │ +接下來 debian 目錄和它的內容都會被建立,正如節 2.8 中那樣。這不會建立一個 tarball,因為這是個本土 Debian 軟 │ │ │ │ │ +體包。不過這也是唯一的區別。剩下的打包操作就是完全一致的了。 │ │ │ │ │ +在執行了 dpkg-buildpackage 命令後,你將會在上一級目錄中看到這些文件: │ │ │ │ │ • mypackage_1.0.tar.gz │ │ │ │ │ -This is the source code tarball created from the mypackage-1.0 directory by the dpkg-source command. (Its suffix is not │ │ │ │ │ -orig.tar.gz.) │ │ │ │ │ +這是 dpkg-source 命令用 mypackage-1.0 目錄創建出來的源代碼 tarball 。(它的文件名後綴不是 orig.tar.gz) │ │ │ │ │ • mypackage_1.0.dsc │ │ │ │ │ -This is a summary of the contents of the source code, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +這是對原始碼內容的簡述,正如在非本土 Debian 軟體包中那樣。(沒有 Debian 修訂號。) │ │ │ │ │ • mypackage_1.0_i386.deb │ │ │ │ │ -This is your completed binary package, as in the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ +這是完成的二進位制包,正如在非本土 Debian 軟體包中那樣。(沒有 Debian 修訂號。) │ │ │ │ │ • mypackage_1.0_i386.changes │ │ │ │ │ -This file describes all the changes made in the current package version as in the non-native Debian package. (There is no Debian │ │ │ │ │ -revision.) │ │ │ │ │ +這個文件描述了這個軟件作爲外來 Debian 包,在當前版本所作出的所有更改。(沒有 Debian 修訂) │ │ │ ├── ./usr/share/doc/maint-guide-zh-tw/maint-guide.zh-tw.txt.gz │ │ │ │ ├── maint-guide.zh-tw.txt │ │ │ │ │ @@ -149,20 +149,20 @@ │ │ │ │ │ 8.4. 更新打包風格 │ │ │ │ │ 8.5. UTF-8 轉換 │ │ │ │ │ 8.6. 對更新套件的幾點提示 │ │ │ │ │ 9. 上傳套件 │ │ │ │ │ 9.1. 上傳到 Debian 倉庫 │ │ │ │ │ 9.2. 在上傳時包含 orig.tar.gz 檔案 │ │ │ │ │ 9.3. 跳過的上傳 │ │ │ │ │ -A. Advanced packaging │ │ │ │ │ - A.1. Shared libraries │ │ │ │ │ - A.2. Managing debian/package.symbols │ │ │ │ │ - A.3. Multiarch │ │ │ │ │ - A.4. Building a shared library package │ │ │ │ │ - A.5. Native Debian package │ │ │ │ │ +A. 高級打包 │ │ │ │ │ + A.1. 共享庫 │ │ │ │ │ + A.2. 管理 debian/package.symbols │ │ │ │ │ + A.3. 多體繫結構 │ │ │ │ │ + A.4. 構建共享庫包 │ │ │ │ │ + A.5. Debian 本土軟件包 │ │ │ │ │ │ │ │ │ │ 章 1. 從一條正確的路開始 │ │ │ │ │ │ │ │ │ │     本教程文件已被重寫為另外的 Debian 維護者指導文件,其中包含了更新 │ │ │ │ │ 的內容與更多實際例子。請使用新的教程作為主要的教程文件。 │ │ │ │ │ │ │ │ │ │ 這篇文檔試圖爲普通 Debian 用戶,和希望對 Debian 軟件包有所瞭解的 │ │ │ │ │ @@ -2473,15 +2473,15 @@ │ │ │ │ │     這些 maintainer scripts 是 Debian 的增強特性,它們解釋了人們爲什 │ │ │ │ │ 麼選擇 Debian。你必須非常小心,保證人們不因此產生煩惱。 │ │ │ │ │ │ │ │ │ │ 5.19. package.examples │ │ │ │ │ │ │ │ │ │ 對於新維護者而言,打包一個庫非常不易,因此不建議嘗試。這樣說吧, │ │ │ │ │     如果你的軟體包有庫,那你應該處理好 debian/package.symbols 檔案。 │ │ │ │ │ - 參見節 A.2, “Managing debian/package.symbols”. │ │ │ │ │ + 參見節 A.2, “管理 debian/package.symbols”. │ │ │ │ │ │ │ │ │ │ 5.20. TODO │ │ │ │ │ │ │ │ │ │     dh_installdocs(1) 命令會安裝這個檔案。 │ │ │ │ │ │ │ │ │ │ 5.21. watch │ │ │ │ │ │ │ │ │ │ @@ -3514,406 +3514,359 @@ │ │ │ │ │ │ │ │ │ │     ^[85] 參見 Debian Developer's Reference 5.6. "Uploading a │ │ │ │ │ package". │ │ │ │ │ │ │ │ │ │     ^[86] 參見 ftp://ftp.upload.debian.org/pub/UploadQueue/README。或 │ │ │ │ │ 者是,你可以使用 dcut 命令,它來自 dput 軟件包。 │ │ │ │ │ │ │ │ │ │ -附錄 A. Advanced packaging │ │ │ │ │ +附錄 A. 高級打包 │ │ │ │ │ │ │ │ │ │     本教程文件已被重寫為另外的 Debian 維護者指導文件,其中包含了更新 │ │ │ │ │ 的內容與更多實際例子。請使用新的教程作為主要的教程文件。 │ │ │ │ │ │ │ │ │ │ - Here are some hints and pointers for advanced packaging topics │ │ │ │ │ -    that you are most likely to deal with. You are strongly advised │ │ │ │ │ - to read all the references suggested here. │ │ │ │ │ - │ │ │ │ │ - You may need to manually edit the packaging template files │ │ │ │ │ -    generated by the dh_make command to address topics covered in │ │ │ │ │ - this chapter. The newer debmake command should address these │ │ │ │ │ - topics better. │ │ │ │ │ +    這裡有一些關於你可能遇到的高階打包問題的提示。如果有需要的話,本 │ │ │ │ │ + 教程強烈建議閱讀這裡引用和建議的文件。 │ │ │ │ │ │ │ │ │ │ -A.1. Shared libraries │ │ │ │ │ +    你可能需要手工編輯由 dh_make 命令生成的打包模板文件,以此來解決本 │ │ │ │ │ + 章中所討論的問題。新的 debmake 命令應該能更好地解決這些問題。 │ │ │ │ │ │ │ │ │ │ -    Before packaging shared libraries, you should read the following │ │ │ │ │ - primary references in detail: │ │ │ │ │ +A.1. 共享庫 │ │ │ │ │ + │ │ │ │ │ +    在打包共享庫之前,你應該閱讀以下的主要參考資料: │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 8 "Shared libraries" │ │ │ │ │ │ │ │ │ │     * Debian Policy Manual, 9.1.1 "File System Structure" │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 10.2 "Libraries" │ │ │ │ │ │ │ │ │ │ -    Here are some oversimplified hints for you to get started: │ │ │ │ │ +    以下是幫助你開始的極簡解釋: │ │ │ │ │ │ │ │ │ │ - * Shared libraries are ELF object files containing compiled │ │ │ │ │ - code. │ │ │ │ │ + * 共享庫均爲 elf 對象文件,其包含編譯好的機器碼。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries are distributed as *.so files. (Neither *.a │ │ │ │ │ - files nor *.la files) │ │ │ │ │ + * 共享庫以 *.so 文件的形式發放。(既非 *.a 文件也非 *.la 文件) │ │ │ │ │ │ │ │ │ │ - * Shared libraries are mainly used to share common codes among │ │ │ │ │ - multiple executables with the ld mechanism. │ │ │ │ │ + * 共享庫主要用於在不同的二進制可執行程序之間共享代碼,這背後使 │ │ │ │ │ + 用了 ld (譯註:鏈接)機制。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries are sometimes used to provide multiple │ │ │ │ │ - plugins to an executable with the dlopen mechanism. │ │ │ │ │ + * 共享庫有時會爲一個可執行程序提供多個插件,這背後使用了 dlopen │ │ │ │ │ + 機制。 │ │ │ │ │ │ │ │ │ │ - * Shared libraries export symbols, which represent compiled │ │ │ │ │ - objects such as variables, functions, and classes; and enable │ │ │ │ │ - access to them from the linked executables. │ │ │ │ │ + * 共享庫能匯出代表著變數,函式和類的 symbols(符號);並允許連 │ │ │ │ │ + 結到它的可執行檔案訪問之。 │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library libfoo.so.1: objdump -p libfoo │ │ │ │ │ - .so.1 | grep SONAME ^[87] │ │ │ │ │ + * 共享庫 libfoo.so.1 中的 SONAME : objdump -p libfoo.so.1 | │ │ │ │ │ + grep SONAME ^[87] │ │ │ │ │ │ │ │ │ │ - * The SONAME of a shared library usually matches the library │ │ │ │ │ - file name (but not always). │ │ │ │ │ + * 共享庫的 SONAME 常常與庫文件自身文件名一致(不過有特例)。 │ │ │ │ │ │ │ │ │ │ -    * The SONAME of shared libraries linked to /usr/bin/foo: │ │ │ │ │ - objdump -p /usr/bin/foo | grep NEEDED ^[88] │ │ │ │ │ + * 鏈接到 /usr/bin/foo 的共享庫的 SONAME : objdump -p /usr/bin/ │ │ │ │ │ +    foo | grep NEEDED ^[88] │ │ │ │ │ │ │ │ │ │ - * libfoo1: the library package for the shared library libfoo │ │ │ │ │ - .so.1 with the SONAME ABI version 1.^[89] │ │ │ │ │ + * libfoo1: 共享庫 libfoo.so.1 的庫文件包,其 SONAME ABI 版本爲 │ │ │ │ │ + 1.^[89] │ │ │ │ │ │ │ │ │ │ - * The package maintainer scripts of the library package must │ │ │ │ │ - call ldconfig under the specific circumstances to create the │ │ │ │ │ - necessary symbolic links for the SONAME.^[90] │ │ │ │ │ + * 在某些情況下,庫軟件包的 maintainer scripts 必須調用 ldconfig │ │ │ │ │ + 來爲 SONAME 創建必要的符號鏈接。^[90] │ │ │ │ │ │ │ │ │ │ - * libfoo1-dbg: the debugging symbols package that contains the │ │ │ │ │ - debugging symbols for the shared library package libfoo1. │ │ │ │ │ + * libfoo1-dbg: 包含了除錯共享庫包用的除錯符號的軟體包 libfoo1. │ │ │ │ │ │ │ │ │ │ - * libfoo-dev: the development package that contains the header │ │ │ │ │ - files etc. for the shared library libfoo.so.1.^[91] │ │ │ │ │ + * libfoo-dev: 包含了標頭檔案等內容的開發包。用於 libfoo.so.1.^ │ │ │ │ │ + [91] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not contain *.la Libtool archive files │ │ │ │ │ - in general.^[92] │ │ │ │ │ + * 一般而言,Debian 軟體包不應當包含 *.la Libtool 歸檔檔案。 ^ │ │ │ │ │ + [92] │ │ │ │ │ │ │ │ │ │ - * Debian packages should not use RPATH in general.^[93] │ │ │ │ │ + * 一般來說,Debian 軟體包不應當使用 RPATH。^[93] │ │ │ │ │ │ │ │ │ │ - * Although it is somewhat outdated and is only a secondary │ │ │ │ │ - reference, Debian Library Packaging Guide may still be │ │ │ │ │ - useful. │ │ │ │ │ + * 雖然這有點過時,而且是第二參考, Debian Library Packaging │ │ │ │ │ + Guide 可能仍然對你有用。 │ │ │ │ │ │ │ │ │ │ -A.2. Managing debian/package.symbols │ │ │ │ │ +A.2. 管理 debian/package.symbols │ │ │ │ │ │ │ │ │ │ - When you package a shared library, you should create a debian/ │ │ │ │ │ - package.symbols file to manage the minimal version associated │ │ │ │ │ -    with each symbol for backward-compatible ABI changes under the │ │ │ │ │ - same SONAME of the library for the same shared library package │ │ │ │ │ - name.^[94] You should read the following primary references in │ │ │ │ │ - detail: │ │ │ │ │ + 當你給共享庫打包時,你應當建立 debian/package.symbols 檔案來管理 │ │ │ │ │ +    在共享庫名稱不變,在同一個 SONAME 下又要提供 ABI 向後相容性的情況 │ │ │ │ │ + 下每個符號關聯到的最小版本號。 ^[94] 你可以閱讀下邊的主要參考以獲 │ │ │ │ │ + 知細節: │ │ │ │ │ │ │ │ │ │ * Debian Policy Manual, 8.6.3 "The symbols system"^[95] │ │ │ │ │ │ │ │ │ │ * dh_makeshlibs(1) │ │ │ │ │ │ │ │ │ │     * dpkg-gensymbols(1) │ │ │ │ │ │ │ │ │ │ * dpkg-shlibdeps(1) │ │ │ │ │ │ │ │ │ │ * deb-symbols(5) │ │ │ │ │ │ │ │ │ │ - Here is a rough example of how to create the libfoo1 package from │ │ │ │ │ -    the upstream version 1.3 with the proper debian/libfoo1.symbols │ │ │ │ │ - file: │ │ │ │ │ - │ │ │ │ │ - * Prepare the skeleton debianized source tree using the upstream │ │ │ │ │ - libfoo-1.3.tar.gz file. │ │ │ │ │ - │ │ │ │ │ - + If this is the first packaging of the libfoo1 package, create │ │ │ │ │ - the debian/libfoo1.symbols file with empty content. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was packaged as the │ │ │ │ │ - libfoo1 package with the proper debian/libfoo1.symbols in its │ │ │ │ │ - source package, use it again. │ │ │ │ │ - │ │ │ │ │ - + If the previous upstream version 1.2 was not packaged with │ │ │ │ │ - debian/libfoo1.symbols, create it as the symbols file from │ │ │ │ │ - all available binary packages of the same shared library │ │ │ │ │ - package name containing the same SONAME of the library, for │ │ │ │ │ - example, versions 1.1-1 and 1.2-1. ^[96] │ │ │ │ │ +    這是個粗略的例子,用來來演示建立 libfoo1 軟體包的方法,此時使用上 │ │ │ │ │ + 游 1.3 版本,有著妥當的debian/libfoo1.symbols 檔案: │ │ │ │ │ + │ │ │ │ │ + * 使用上游提供的 libfoo-1.3.tar.gz 文件來準備 Debian化的源碼骨架。 │ │ │ │ │ + │ │ │ │ │ + + 如果這是庫軟件包 libfoo1 的第一次打包,那麼以空內容創建 │ │ │ │ │ + debian/libfoo1.symbols 文件。 │ │ │ │ │ + │ │ │ │ │ + + 如果之前的上游版本 1.2 已經被 libfoo1 軟件包打包了,並且其源 │ │ │ │ │ + 碼包中有妥當的 debian/libfoo1.symbols,再用它一次。 │ │ │ │ │ + │ │ │ │ │ + + 如果前一個上游 1.2 版本打包時沒有 debian/libfoo1.symbols,那 │ │ │ │ │ + 就從具有相同庫 SONAME 的同一個共享庫包的所有可用的二進位制軟 │ │ │ │ │ + 體包中建立它並命名為 symbols 檔案。比如 1.1-1 和 1.2-1。 ^ │ │ │ │ │ + [96] │ │ │ │ │ │ │ │ │ │ $ dpkg-deb -x libfoo1_1.1-1.deb libfoo1_1.1-1 │ │ │ │ │ $ dpkg-deb -x libfoo1_1.2-1.deb libfoo1_1.2-1 │ │ │ │ │ $ : > symbols │ │ │ │ │ $ dpkg-gensymbols -v1.1 -plibfoo1 -Plibfoo1_1.1-1 -Osymbols │ │ │ │ │ $ dpkg-gensymbols -v1.2 -plibfoo1 -Plibfoo1_1.2-1 -Osymbols │ │ │ │ │ │ │ │ │ │ - * Make trial builds of the source tree with tools such as debuild │ │ │ │ │ - and pdebuild. (If this fails due to missing symbols etc., there │ │ │ │ │ - were some backward-incompatible ABI changes that require you to │ │ │ │ │ - bump the shared library package name to something like libfoo1a │ │ │ │ │ - and you should start over again.) │ │ │ │ │ + * 嘗試用像 debuild 和 pdebuild 這樣的工具來對原始碼樹進行試構建。 │ │ │ │ │ + (如果這因為缺失符號之類原因而失敗,那麼這裡就有一些不向後相容的 │ │ │ │ │ + ABI 改變,這就需要你轉移(bump)共享庫的名稱到諸如 libfoo1a ,並重 │ │ │ │ │ + 新開始一次。) │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ -    $ debuild │ │ │ │ │ + $ debuild │ │ │ │ │ ... │ │ │ │ │ - dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ +    dpkg-gensymbols: warning: some new symbols appeared in the symbols file: ... │ │ │ │ │ see diff output below │ │ │ │ │ --- debian/libfoo1.symbols (libfoo1_1.3-1_amd64) │ │ │ │ │ +++ dpkg-gensymbolsFE5gzx 2012-11-11 02:24:53.609667389 +0900 │ │ │ │ │ @@ -127,6 +127,7 @@ │ │ │ │ │ foo_get_name@Base 1.1 │ │ │ │ │ foo_get_longname@Base 1.2 │ │ │ │ │ foo_get_type@Base 1.1 │ │ │ │ │ + foo_get_longtype@Base 1.3-1 │ │ │ │ │ foo_get_symbol@Base 1.1 │ │ │ │ │ foo_get_rank@Base 1.1 │ │ │ │ │ foo_new@Base 1.1 │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - * If you see the diff printed by the dpkg-gensymbols as above, │ │ │ │ │ - extract the proper updated symbols file from the generated binary │ │ │ │ │ - package of the shared library. ^[97] │ │ │ │ │ + * 如果你如上述看見由 dpkg-gensymbols 命令打印出來的差異,那就從生成 │ │ │ │ │ + 的二進位制庫包中抽取妥當更新的 symbols 檔案。 ^[97] │ │ │ │ │ │ │ │ │ │ $ cd .. │ │ │ │ │ $ dpkg-deb -R libfoo1_1.3_amd64.deb libfoo1-tmp │ │ │ │ │ $ sed -e 's/1\.3-1/1\.3/' libfoo1-tmp/DEBIAN/symbols \ │ │ │ │ │ >libfoo-1.3/debian/libfoo1.symbols │ │ │ │ │ │ │ │ │ │ - * Build release packages with tools such as debuild and pdebuild. │ │ │ │ │ + * 使用像 debuild 和 pdebuild 這樣的工具來構建發行軟件包。 │ │ │ │ │ │ │ │ │ │ $ cd libfoo-1.3 │ │ │ │ │ $ debuild -- clean │ │ │ │ │ $ debuild │ │ │ │ │ ... │ │ │ │ │ │ │ │ │ │ - In addition to the above examples, we need to check the ABI │ │ │ │ │ -    compatibility further and bump versions for some symbols manually │ │ │ │ │ - as needed. ^[98] │ │ │ │ │ - │ │ │ │ │ -    Although it is only a secondary reference, Debian wiki │ │ │ │ │ - UsingSymbolsFiles and its linked web pages may be useful. │ │ │ │ │ - │ │ │ │ │ -A.3. Multiarch │ │ │ │ │ - │ │ │ │ │ - The multiarch feature introduced to Debian wheezy integrates │ │ │ │ │ -    support for cross-architecture installation of binary packages │ │ │ │ │ - (particularly i386<->amd64, but also other combinations) in dpkg │ │ │ │ │ - and apt. You should read the following references in detail: │ │ │ │ │ - │ │ │ │ │ - * Ubuntu wiki MultiarchSpec (upstream) │ │ │ │ │ -    │ │ │ │ │ - * Debian wiki Multiarch/Implementation (Debian situation) │ │ │ │ │ - │ │ │ │ │ - It uses the triplet such as i386-linux-gnu and x86_64-linux-gnu │ │ │ │ │ - for the install path of shared libraries. The actual triplet path │ │ │ │ │ -    is dynamically set into the $(DEB_HOST_MULTIARCH) variable using │ │ │ │ │ - the dpkg-architecture(1) command for each binary package build. │ │ │ │ │ - For example, the path to install multiarch libraries are changed │ │ │ │ │ - as follows:^[99] │ │ │ │ │ +    對上邊這個例子補充一點,我們需要進一步檢查 ABI (應用程序二進制接 │ │ │ │ │ + 口) 兼容性並在需要的時候手動更新一些符號的版本。 ^[98] │ │ │ │ │ + │ │ │ │ │ +    雖然這只是第二參考, Debian wiki UsingSymbolsFiles 和它指向的頁面 │ │ │ │ │ + 可能會有所幫助。 │ │ │ │ │ + │ │ │ │ │ +A.3. 多體繫結構 │ │ │ │ │ + │ │ │ │ │ + Debian wheezy 引入的多體繫結構特性,集成了對二進制包跨體繫結構安 │ │ │ │ │ +    裝的支持 (尤其是 i386<->amd64,其他的組合也有) 於 dpkg 和 apt 中 │ │ │ │ │ + 。你可以閱讀下邊的參考: │ │ │ │ │ + │ │ │ │ │ + * Ubuntu wiki MultiarchSpec (上游) │ │ │ │ │ +    │ │ │ │ │ + * Debian wiki Multiarch/Implementation (Debian 的局勢) │ │ │ │ │ + │ │ │ │ │ + 它爲每個共享庫的安裝路徑使用了類似 i386-linux-gnu 和 │ │ │ │ │ + x86_64-linux-gnu 這樣的三元名字。實際上每個二進制軟件包構建的三元 │ │ │ │ │ +    路徑是被動態設置到 $(DEB_HOST_MULTIARCH) 變量中的,經由 │ │ │ │ │ + dpkg-architecture(1) 命令。舉個例子,安裝多體繫結構庫文件的路徑被 │ │ │ │ │ + 按照下表進行了修改:^[99] │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +-------------------------------------------------------------+ │ │ │ │ │ - |Old path | i386 multiarch path | amd64 multiarch path | │ │ │ │ │ + | 舊路徑 | i386 多體繫結構路徑 | amd64 多體繫結構路徑 | │ │ │ │ │     |---------+------------------------+--------------------------| │ │ │ │ │ |/lib/ |/lib/i386-linux-gnu/ |/lib/x86_64-linux-gnu/ | │ │ │ │ │ |---------+------------------------+--------------------------| │ │ │ │ │ |/usr/lib/|/usr/lib/i386-linux-gnu/|/usr/lib/x86_64-linux-gnu/| │ │ │ │ │ +-------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ -    Here are some typical multiarch package split scenario examples │ │ │ │ │ - for the following: │ │ │ │ │ +    下面是一些典型的多體系結構軟體包分離情景: │ │ │ │ │ │ │ │ │ │ - * a library source libfoo-1.tar.gz │ │ │ │ │ + * 庫源碼 libfoo-1.tar.gz │ │ │ │ │ │ │ │ │ │ -    * a tool source bar-1.tar.gz written in a compiled language │ │ │ │ │ +    * 一個用編譯型語言編寫的工具的源碼 bar-1.tar.gz │ │ │ │ │ │ │ │ │ │ - * a tool source baz-1.tar.gz written in an interpreted language │ │ │ │ │ + * 一個用解釋型語言編寫的工具的源碼 bar-1.tar.gz │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ - | Package |Architecture:|Multi-Arch:| Package content | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1 |any |same |the shared library, | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo1-dbg |any |same |the shared library debug| │ │ │ │ │ - | | | |symbols, co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the shared library | │ │ │ │ │ - |libfoo-dev |any |same |header files etc., | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the run-time support | │ │ │ │ │ -    |libfoo-tools|any |foreign |programs, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |libfoo-doc |all |foreign |the shared library | │ │ │ │ │ - | | | |documentation files | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - | | | |the compiled program | │ │ │ │ │ - |bar |any |foreign |files, not | │ │ │ │ │ - | | | |co-installable | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |bar-doc |all |foreign |the documentation files | │ │ │ │ │ - | | | |for the program | │ │ │ │ │ - |------------+-------------+-----------+------------------------| │ │ │ │ │ - |baz |all |foreign |the interpreted program | │ │ │ │ │ - | | | |files | │ │ │ │ │ + | 軟件包 |體繫結構 |多體繫結構 | 軟件包內容 | │ │ │ │ │ + | | : | : | | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo1 |任何 |相同 |共享庫,可共同安裝 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo1-dbg |任何 |相同 |共享庫調試符號,可共同安裝 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo-dev |任何 |相同 |共享庫頭文件之類,可共同安裝| │ │ │ │ │ +    |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo-tools|任何 |外來 |運行時支持程序,不可共同安裝| │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |libfoo-doc |全部 |外來 |共享庫文檔 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |bar |任何 |外來 |編譯好的程序文件,不可共同安| │ │ │ │ │ + | | | |裝 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |bar-doc |全部 |外來 |程序的配套文檔文件 | │ │ │ │ │ + |------------+---------+-----------+----------------------------| │ │ │ │ │ + |baz |全部 |外來 |解釋型程序文件 | │ │ │ │ │ +---------------------------------------------------------------+ │ │ │ │ │ │ │ │ │ │ - Please note that the development package should contain a symlink │ │ │ │ │ -    for the associated shared library without a version number. E.g.: │ │ │ │ │ - /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ +    請注意,開發軟件包應該包含一個指向共享庫的符號鏈接並且不帶有版本 │ │ │ │ │ + 號。比如: /usr/lib/x86_64-linux-gnu/libfoo.so -> libfoo.so.1 │ │ │ │ │ │ │ │ │ │ -A.4. Building a shared library package │ │ │ │ │ +A.4. 構建共享庫包 │ │ │ │ │ │ │ │ │ │ -    You can build a Debian library package enabling multiarch support │ │ │ │ │ - using dh(1) as follows: │ │ │ │ │ +    你可以用 dh(1) 透過以下方法構建一個支援多體系結構的 Debian 庫軟體 │ │ │ │ │ + 包: │ │ │ │ │ │ │ │ │ │ - * Update debian/control. │ │ │ │ │ + * 更新 debian/control。 │ │ │ │ │ │ │ │ │ │ - + Add Build-Depends: debhelper (>=10) for the source package │ │ │ │ │ - section. │ │ │ │ │ + + 為原始碼包部分新增 Build-Depends: debhelper (>=10) 部分。 │ │ │ │ │ │ │ │ │ │ - + Add Pre-Depends: ${misc:Pre-Depends} for each shared library │ │ │ │ │ - binary package. │ │ │ │ │ + + 爲每個二進制庫軟件包添加 Pre-Depends: ${misc:Pre-Depends} 。 │ │ │ │ │ │ │ │ │ │ - + Add Multi-Arch: stanza for each binary package section. │ │ │ │ │ + + 在每個二進制包的段中添加 Multi-Arch: 小節。 │ │ │ │ │ │ │ │ │ │ - * Set debian/compat to "10". │ │ │ │ │ + * 設定 debian/compat 為"10"。 │ │ │ │ │ │ │ │ │ │ - * Adjust the path from the normal /usr/lib/ to the multiarch /usr/ │ │ │ │ │ - lib/$(DEB_HOST_MULTIARCH)/ for all packaging scripts. │ │ │ │ │ + * 將所有打包腳本中的路徑從普通的 /usr/lib/ 調整到多體繫結構的 /usr/ │ │ │ │ │ + lib/$(DEB_HOST_MULTIARCH)/。 │ │ │ │ │ │ │ │ │ │ - + Call DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture │ │ │ │ │ - -qDEB_HOST_MULTIARCH) in debian/rules to set the │ │ │ │ │ - DEB_HOST_MULTIARCH variable first. │ │ │ │ │ -    │ │ │ │ │ - + Replace /usr/lib/ with /usr/lib/$(DEB_HOST_MULTIARCH)/ in │ │ │ │ │ - debian/rules. │ │ │ │ │ + + 首先,在 debian/rules 中呼叫 DEB_HOST_MULTIARCH ?= $(shell │ │ │ │ │ + dpkg-architecture -qDEB_HOST_MULTIARCH) 以設定 │ │ │ │ │ + DEB_HOST_MULTIARCH 變數。 │ │ │ │ │ │ │ │ │ │ - + If ./configure is used in part of the │ │ │ │ │ - override_dh_auto_configure target in debian/rules, make sure │ │ │ │ │ - to replace it with dh_auto_configure -- . ^[100] │ │ │ │ │ +    + 在 debian/rules 中用 /usr/lib/$(DEB_HOST_MULTIARCH)/ 替換 / │ │ │ │ │ + usr/lib/。 │ │ │ │ │ │ │ │ │ │ - + Replace all occurrences of /usr/lib/ with /usr/lib/*/ in │ │ │ │ │ - debian/foo.install files. │ │ │ │ │ + + 如果 debian/rules 檔案中的 override_dh_auto_configure 目標使 │ │ │ │ │ + 用了 ./configure 檔案,那麼請確認用 dh_auto_configure -- 來替 │ │ │ │ │ + 換它。 ^[100] │ │ │ │ │ │ │ │ │ │ - + Generate files like debian/foo.links from debian/foo.links.in │ │ │ │ │ - dynamically by adding a script to the │ │ │ │ │ - override_dh_auto_configure target in debian/rules. │ │ │ │ │ + + 在debian/foo.install 文件中將所有 /usr/lib/ 的事件替換爲 /usr │ │ │ │ │ + /lib/*/ 。 │ │ │ │ │ + │ │ │ │ │ + + 如需從 debian/foo.links.in 動態地生成像 debian/foo.links 這樣 │ │ │ │ │ + 的檔案,可以新增一個指令碼到 debian/rules 檔案的 │ │ │ │ │ + override_dh_auto_configure 目標中。 │ │ │ │ │ │ │ │ │ │ override_dh_auto_configure: │ │ │ │ │ dh_auto_configure │ │ │ │ │ sed 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \ │ │ │ │ │ debian/foo.links.in > debian/foo.links │ │ │ │ │ │ │ │ │ │ - Please make sure to verify that the shared library package │ │ │ │ │ -    contains only the expected files, and that your -dev package │ │ │ │ │ - still works. │ │ │ │ │ - │ │ │ │ │ - All files installed simultaneously as the multiarch package to │ │ │ │ │ -    the same file path should have exactly the same file content. You │ │ │ │ │ - must be careful of differences generated by the data byte order │ │ │ │ │ - and by the compression algorithm. │ │ │ │ │ - │ │ │ │ │ -A.5. Native Debian package │ │ │ │ │ - │ │ │ │ │ - If a package is maintained only for Debian or possibly only for │ │ │ │ │ -    local use, its source may contain all the debian/* files in it. │ │ │ │ │ - There are 2 ways to package it. │ │ │ │ │ - │ │ │ │ │ - You can make the upstream tarball by excluding the debian/* files │ │ │ │ │ -    and package it as a non-native Debian package as in 節 2.1, │ │ │ │ │ - “Debian 軟件包構建流程”. This is the normal way, which some │ │ │ │ │ - people encourage using. │ │ │ │ │ - │ │ │ │ │ -    The alternative is the workflow of the native Debian package. │ │ │ │ │ - │ │ │ │ │ - * Create a native Debian source package in the 3.0 (native) │ │ │ │ │ - format using a single compressed tar file in which all files │ │ │ │ │ - are included. │ │ │ │ │ +    請確認該共享庫軟件包僅僅包含預期中的文件,並且你的 -dev 軟件包還 │ │ │ │ │ + 奏效。 │ │ │ │ │ + │ │ │ │ │ + 所有作為多體系結構軟體包而同時安裝到同一個檔案路徑的所有檔案應當 │ │ │ │ │ +    具有完全一致的檔案內容。你必須小心由資料位元組序和壓縮演算法造成 │ │ │ │ │ + 的區別。 │ │ │ │ │ + │ │ │ │ │ +A.5. Debian 本土軟件包 │ │ │ │ │ + │ │ │ │ │ +    如果一個軟件包是僅僅爲 Debian 維護的,或者是可能的本地使用,那麼 │ │ │ │ │ + 它的源碼可以容納所有的 debian/* 於其中。這裏有它的兩種打包方式。 │ │ │ │ │ + │ │ │ │ │ + 你可以將除 debian/* 檔案之外的部分製作成上游 tarball,然後將其作 │ │ │ │ │ +    為非本土 Debian 軟體包來打包,正如節 2.1, “Debian 軟件包構建流程” │ │ │ │ │ + 所述。這是一些人鼓勵使用的普通方法。 │ │ │ │ │ + │ │ │ │ │ +    另一種方法就是本土 Debian 軟件包的打包工作流。 │ │ │ │ │ + │ │ │ │ │ + * 用包含所有文件的,單一壓縮過的 tar 文件,以 3.0 (native) 格式 │ │ │ │ │ + 來創建本土 Debian 源碼包。 │ │ │ │ │ │ │ │ │ │     + package_version.tar.gz │ │ │ │ │ + package_version.dsc │ │ │ │ │ - * Build Debian binary packages from the native Debian source │ │ │ │ │ - package. │ │ │ │ │ + * 用 Debian 本土源碼包構建二進制包 │ │ │ │ │ │ │ │ │ │ + package_version_arch.deb │ │ │ │ │ │ │ │ │ │ - For example, if you have source files in ~/mypackage-1.0 without │ │ │ │ │ -    the debian/* files, you can create a native Debian package by │ │ │ │ │ - issuing the dh_make command as follows: │ │ │ │ │ + 比如說,如果你的原始碼檔案都存放在 ~/mypackage-1.0 中,而且沒有 │ │ │ │ │ +    debian/* 這些檔案,那麼你可以用它建立一個本土 Debian 軟體包,只要 │ │ │ │ │ + 按照下邊的方法使用 dh_make 命令: │ │ │ │ │ │ │ │ │ │     $ cd ~/mypackage-1.0 │ │ │ │ │ $ dh_make --native │ │ │ │ │ │ │ │ │ │ - Then the debian directory and its contents are created just like │ │ │ │ │ - in 節 2.8, “初始化外來 Debian 軟件包”. This does not create a │ │ │ │ │ -    tarball, since this is a native Debian package. But that is the │ │ │ │ │ - only difference. The rest of the packaging activities are │ │ │ │ │ - practically the same. │ │ │ │ │ + 接下來 debian 目錄和它的內容都會被建立,正如節 2.8, “初始化外來 │ │ │ │ │ +    Debian 軟件包” 中那樣。這不會建立一個 tarball,因為這是個本土 │ │ │ │ │ + Debian 軟體包。不過這也是唯一的區別。剩下的打包操作就是完全一致的 │ │ │ │ │ + 了。 │ │ │ │ │ │ │ │ │ │ -    After execution of the dpkg-buildpackage command, you will see │ │ │ │ │ - the following files in the parent directory: │ │ │ │ │ +    在執行了 dpkg-buildpackage 命令後,你將會在上一級目錄中看到這些文 │ │ │ │ │ + 件: │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.tar.gz │ │ │ │ │ │ │ │ │ │ - This is the source code tarball created from the │ │ │ │ │ - mypackage-1.0 directory by the dpkg-source command. (Its │ │ │ │ │ - suffix is not orig.tar.gz.) │ │ │ │ │ + 這是 dpkg-source 命令用 mypackage-1.0 目錄創建出來的源代碼 │ │ │ │ │ + tarball 。 (它的文件名後綴不是 orig.tar.gz) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0.dsc │ │ │ │ │ │ │ │ │ │ - This is a summary of the contents of the source code, as in │ │ │ │ │ - the non-native Debian package. (There is no Debian revision.) │ │ │ │ │ + 這是對原始碼內容的簡述,正如在非本土 Debian 軟體包中那樣。( │ │ │ │ │ + 沒有 Debian 修訂號。) │ │ │ │ │     │ │ │ │ │ * mypackage_1.0_i386.deb │ │ │ │ │ │ │ │ │ │ - This is your completed binary package, as in the non-native │ │ │ │ │ - Debian package. (There is no Debian revision.) │ │ │ │ │ + 這是完成的二進位制包,正如在非本土 Debian 軟體包中那樣。(沒 │ │ │ │ │ + 有 Debian 修訂號。) │ │ │ │ │ │ │ │ │ │ * mypackage_1.0_i386.changes │ │ │ │ │ │ │ │ │ │ - This file describes all the changes made in the current │ │ │ │ │ - package version as in the non-native Debian package. (There │ │ │ │ │ - is no Debian revision.) │ │ │ │ │ + 這個文件描述了這個軟件作爲外來 Debian 包,在當前版本所作出的 │ │ │ │ │ + 所有更改。(沒有 Debian 修訂) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ --------------------------------------------------------------------- │ │ │ │ │ │ │ │ │ │ -    ^[87] Alternatively: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ +    ^[87] 或者這樣: readelf -d libfoo.so.1 | grep SONAME │ │ │ │ │ │ │ │ │ │ -    ^[88] Alternatively: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ +    ^[88] 或者這樣: readelf -d libfoo.so.1 | grep NEEDED │ │ │ │ │ │ │ │ │ │ -    ^[89] See Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ +    ^[89] 參見 Debian Policy Manual, 8.1 "Run-time shared libraries". │ │ │ │ │ │ │ │ │ │ -    ^[90] See Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ +    ^[90] 參見 Debian Policy Manual, 8.1.1 "ldconfig". │ │ │ │ │ │ │ │ │ │ -    ^[91] See Debian Policy Manual, 8.3 "Static libraries" and Debian │ │ │ │ │ - Policy Manual, 8.4 "Development files". │ │ │ │ │ +    ^[91] 參見 Debian Policy Manual, 8.3 "Static libraries" and │ │ │ │ │ + Debian Policy Manual, 8.4 "Development files". │ │ │ │ │ │ │ │ │ │ -    ^[92] See Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ +    ^[92] 參見 Debian wiki ReleaseGoals/LAFileRemoval. │ │ │ │ │ │ │ │ │ │ -    ^[93] See Debian wiki RpathIssue. │ │ │ │ │ +    ^[93] 參見 Debian wiki RpathIssue. │ │ │ │ │ │ │ │ │ │ - ^[94] Backward-incompatible ABI changes normally require you to │ │ │ │ │ -    update the SONAME of the library and the shared library package │ │ │ │ │ - name to new ones. │ │ │ │ │ +    ^[94] 向後不兼容的 ABI 變更常常需要你更新共享庫的 SONAME,並把共 │ │ │ │ │ + 享庫名稱換成新的。 │ │ │ │ │ │ │ │ │ │ - ^[95] For C++ libraries and other cases where tracking individual │ │ │ │ │ -    symbols is too difficult, follow Debian Policy Manual, 8.6.4 "The │ │ │ │ │ - shlibs system", instead. │ │ │ │ │ +    ^[95] 對於 C++ 庫和其他追蹤單個符號過於困難的情況下,請遵循 │ │ │ │ │ + Debian Policy Manual, 8.6.4 "The shlibs system"。 │ │ │ │ │ │ │ │ │ │ - ^[96] All previous versions of Debian packages are available at │ │ │ │ │ -    http://snapshot.debian.org/. The Debian revision is dropped from │ │ │ │ │ - the version to make it easier to backport the package: 1.1 << │ │ │ │ │ - 1.1-1~bpo70+1 << 1.1-1 and 1.2 << 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ + ^[96] 所有先前的 Debian 軟件包版本都能在 http:// │ │ │ │ │ +    snapshot.debian.org/ 找到。不過 Debian 修訂號被去掉了,以使軟件包 │ │ │ │ │ + 的 backport 更爲容易: 1.1 << 1.1-1~bpo70+1 << 1.1-1 and 1.2 << │ │ │ │ │ + 1.2-1~bpo70+1 << 1.2-1 │ │ │ │ │ │ │ │ │ │ -    ^[97] The Debian revision is dropped from the version to make it │ │ │ │ │ - easier to backport the package: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ +    ^[97] Debian 修訂號已被從版本中去掉,這能讓軟件包的 backport 更爲 │ │ │ │ │ + 容易: 1.3 << 1.3-1~bpo70+1 << 1.3-1 │ │ │ │ │ │ │ │ │ │ -    ^[98] See Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ +    ^[98] 參見 Debian Policy Manual, 8.6.2 "Shared library ABI │ │ │ │ │ changes". │ │ │ │ │ │ │ │ │ │ -    ^[99] Old special purpose library paths such as /lib32/ and / │ │ │ │ │ - lib64/ are not used anymore. │ │ │ │ │ +    ^[99] 老舊且具有特殊用途的庫路徑,比如 /lib32/ 和 /lib64/ 已不再 │ │ │ │ │ + 使用。 │ │ │ │ │ │ │ │ │ │ - ^[100] Alternatively, you can add --libdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) and --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ - (DEB_HOST_MULTIARCH) arguments to ./configure. Please note that │ │ │ │ │ -    --libexecdir specifies the default path to install executable │ │ │ │ │ - programs run by other programs rather than by users. Its │ │ │ │ │ - Autotools default is /usr/libexec/ but its Debian default is /usr │ │ │ │ │ - /lib/. │ │ │ │ │ + ^[100] 作爲替代,你可以添加 --libdir=\$${prefix}/lib/$ │ │ │ │ │ + (DEB_HOST_MULTIARCH) 和 --libexecdir=\$${prefix}/lib/$ │ │ │ │ │ +    (DEB_HOST_MULTIARCH) 參數到 ./configure 後頭。請注意 --libexecdir │ │ │ │ │ + 指定了安裝可執行程序(它們被其他程序使用,而更少是用戶)的默認路徑 │ │ │ │ │ + 。它的 Autotools 默認設置爲 /usr/libexec/ 但是 Debian 的設置爲 / │ │ │ │ │ + usr/lib/。 ├── maint-guide_1.2.53_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-08 03:52:48.000000 debian-binary │ │ -rw-r--r-- 0 0 0 1544 2022-10-08 03:52:48.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 525688 2022-10-08 03:52:48.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 525736 2022-10-08 03:52:48.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -23,14 +23,14 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1910 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/html/images/tip.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1645 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/html/images/warning.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23535 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/html/index.en.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 22509 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/html/modify.en.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32530 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/html/start.en.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 31079 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/html/update.en.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 11679 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/html/upload.en.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 395710 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/maint-guide.en.pdf │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 395754 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/maint-guide.en.pdf │ │ │ │ -rw-r--r-- 0 root (0) root (0) 54898 2022-10-08 03:52:48.000000 ./usr/share/doc/maint-guide/maint-guide.en.txt.gz │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 599 2022-10-08 03:52:48.000000 ./usr/share/doc-base/maint-guide.maint-guide │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 63 2022-10-08 03:52:48.000000 ./usr/share/lintian/overrides/maint-guide │ │ │ ├── ./usr/share/doc/maint-guide/maint-guide.en.pdf │ │ │ │ ├── pdftotext {} - │ │ │ │ │ @@ -33,15 +33,15 @@ │ │ │ │ │ SIGNATURE │ │ │ │ │ │ │ │ │ │ WRITTEN BY │ │ │ │ │ │ │ │ │ │ Josip Rodin and │ │ │ │ │ Osamu Aoki │ │ │ │ │ │ │ │ │ │ -January 25, 2025 │ │ │ │ │ +February 28, 2026 │ │ │ │ │ │ │ │ │ │ REVISION HISTORY │ │ │ │ │ NUMBER │ │ │ │ │ │ │ │ │ │ DATE │ │ │ │ │ │ │ │ │ │ DESCRIPTION