From a21bd0ee2ff5c67b7eb4387caebc1038ef3e7e15 Mon Sep 17 00:00:00 2001 From: Mikhail Aksenov Date: Mon, 18 Nov 2024 17:03:10 +0100 Subject: [PATCH 01/23] feat(24.04): libgdiplus and its dependencies (#314) --- slices/fontconfig-config.yaml | 23 ++ slices/fonts-croscore.yaml | 13 ++ slices/fonts-dejavu-core.yaml | 2 + slices/fonts-freefont-otf.yaml | 13 ++ slices/fonts-freefont-ttf.yaml | 13 ++ slices/fonts-liberation.yaml | 24 ++ slices/fonts-noto-core.yaml | 210 ++++++++++++++++++ slices/fonts-noto-mono.yaml | 19 ++ slices/fonts-texgyre.yaml | 18 ++ slices/fonts-urw-base35.yaml | 21 ++ slices/libcairo2.yaml | 26 +++ slices/libexif12.yaml | 15 ++ slices/libfontenc1.yaml | 16 ++ slices/libgdiplus.yaml | 27 +++ slices/libpango-1.0-0.yaml | 20 ++ slices/libpangocairo-1.0-0.yaml | 21 ++ slices/libpangoft2-1.0-0.yaml | 20 ++ slices/libthai-data.yaml | 13 ++ slices/libthai0.yaml | 17 ++ slices/libx11-6.yaml | 17 ++ slices/libx11-data.yaml | 83 +++++++ slices/libxext6.yaml | 16 ++ slices/libxrender1.yaml | 16 ++ slices/x11-common.yaml | 19 ++ slices/xdg-user-dirs.yaml | 24 ++ slices/xfonts-encodings.yaml | 64 ++++++ slices/xfonts-utils.yaml | 35 +++ .../integration/xdg-user-dirs/task.yaml | 8 + .../spread/integration/xfonts-utils/6x13.bdf | 52 +++++ .../integration/xfonts-utils/sample.bdf | 47 ++++ .../spread/integration/xfonts-utils/task.yaml | 21 ++ 31 files changed, 933 insertions(+) create mode 100644 slices/fonts-croscore.yaml create mode 100644 slices/fonts-freefont-otf.yaml create mode 100644 slices/fonts-freefont-ttf.yaml create mode 100644 slices/fonts-liberation.yaml create mode 100644 slices/fonts-noto-core.yaml create mode 100644 slices/fonts-noto-mono.yaml create mode 100644 slices/fonts-texgyre.yaml create mode 100644 slices/fonts-urw-base35.yaml create mode 100644 slices/libcairo2.yaml create mode 100644 slices/libexif12.yaml create mode 100644 slices/libfontenc1.yaml create mode 100644 slices/libgdiplus.yaml create mode 100644 slices/libpango-1.0-0.yaml create mode 100644 slices/libpangocairo-1.0-0.yaml create mode 100644 slices/libpangoft2-1.0-0.yaml create mode 100644 slices/libthai-data.yaml create mode 100644 slices/libthai0.yaml create mode 100644 slices/libx11-6.yaml create mode 100644 slices/libx11-data.yaml create mode 100644 slices/libxext6.yaml create mode 100644 slices/libxrender1.yaml create mode 100644 slices/x11-common.yaml create mode 100644 slices/xdg-user-dirs.yaml create mode 100644 slices/xfonts-encodings.yaml create mode 100644 slices/xfonts-utils.yaml create mode 100644 tests/spread/integration/xdg-user-dirs/task.yaml create mode 100644 tests/spread/integration/xfonts-utils/6x13.bdf create mode 100644 tests/spread/integration/xfonts-utils/sample.bdf create mode 100644 tests/spread/integration/xfonts-utils/task.yaml diff --git a/slices/fontconfig-config.yaml b/slices/fontconfig-config.yaml index b74fdb7f1..914d95427 100644 --- a/slices/fontconfig-config.yaml +++ b/slices/fontconfig-config.yaml @@ -31,13 +31,30 @@ slices: /etc/fonts/conf.d/80-delicious.conf: /etc/fonts/conf.d/90-synthetic.conf: /etc/fonts/fonts.conf: + /usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf: + /usr/share/fontconfig/conf.avail/09-autohint-if-no-hinting.conf: + /usr/share/fontconfig/conf.avail/10-autohint.conf: + /usr/share/fontconfig/conf.avail/10-hinting-full.conf: + /usr/share/fontconfig/conf.avail/10-hinting-medium.conf: + /usr/share/fontconfig/conf.avail/10-hinting-none.conf: /usr/share/fontconfig/conf.avail/10-hinting-slight.conf: + /usr/share/fontconfig/conf.avail/10-no-antialias.conf: /usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf: + /usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf: + /usr/share/fontconfig/conf.avail/10-sub-pixel-none.conf: /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf: + /usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf: + /usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf: + /usr/share/fontconfig/conf.avail/10-unhinted.conf: /usr/share/fontconfig/conf.avail/10-yes-antialias.conf: /usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf: + /usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf: + /usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf: + /usr/share/fontconfig/conf.avail/11-lcdfilter-none.conf: /usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf: + /usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf: /usr/share/fontconfig/conf.avail/30-metric-aliases.conf: + /usr/share/fontconfig/conf.avail/35-lang-normalize.conf: /usr/share/fontconfig/conf.avail/40-nonlatin.conf: /usr/share/fontconfig/conf.avail/45-generic.conf: /usr/share/fontconfig/conf.avail/45-latin.conf: @@ -45,12 +62,18 @@ slices: /usr/share/fontconfig/conf.avail/49-sansserif.conf: /usr/share/fontconfig/conf.avail/50-user.conf: /usr/share/fontconfig/conf.avail/51-local.conf: + /usr/share/fontconfig/conf.avail/53-monospace-lcd-filter.conf: /usr/share/fontconfig/conf.avail/60-generic.conf: /usr/share/fontconfig/conf.avail/60-latin.conf: /usr/share/fontconfig/conf.avail/65-fonts-persian.conf: + /usr/share/fontconfig/conf.avail/65-khmer.conf: /usr/share/fontconfig/conf.avail/65-nonlatin.conf: /usr/share/fontconfig/conf.avail/69-unifont.conf: + /usr/share/fontconfig/conf.avail/70-force-bitmaps.conf: + /usr/share/fontconfig/conf.avail/70-no-bitmaps-and-emoji.conf: /usr/share/fontconfig/conf.avail/70-no-bitmaps-except-emoji.conf: + /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf: + /usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf: /usr/share/fontconfig/conf.avail/80-delicious.conf: /usr/share/fontconfig/conf.avail/90-synthetic.conf: /usr/share/xml/fontconfig/fonts.dtd: diff --git a/slices/fonts-croscore.yaml b/slices/fonts-croscore.yaml new file mode 100644 index 000000000..de4294081 --- /dev/null +++ b/slices/fonts-croscore.yaml @@ -0,0 +1,13 @@ +package: fonts-croscore + +essential: + - fonts-croscore_copyright + +slices: + fonts: + contents: + /usr/share/fonts/truetype/croscore/*: + + copyright: + contents: + /usr/share/doc/fonts-croscore/copyright: diff --git a/slices/fonts-dejavu-core.yaml b/slices/fonts-dejavu-core.yaml index 02fc6dcf5..00586de52 100644 --- a/slices/fonts-dejavu-core.yaml +++ b/slices/fonts-dejavu-core.yaml @@ -5,6 +5,8 @@ essential: slices: fonts: + essential: + - fonts-dejavu-mono_fonts contents: /usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: diff --git a/slices/fonts-freefont-otf.yaml b/slices/fonts-freefont-otf.yaml new file mode 100644 index 000000000..430f0b8c4 --- /dev/null +++ b/slices/fonts-freefont-otf.yaml @@ -0,0 +1,13 @@ +package: fonts-freefont-otf + +essential: + - fonts-freefont-otf_copyright + +slices: + fonts: + contents: + /usr/share/fonts/opentype/freefont/*: + + copyright: + contents: + /usr/share/doc/fonts-freefont-otf/copyright: diff --git a/slices/fonts-freefont-ttf.yaml b/slices/fonts-freefont-ttf.yaml new file mode 100644 index 000000000..8b5c61bee --- /dev/null +++ b/slices/fonts-freefont-ttf.yaml @@ -0,0 +1,13 @@ +package: fonts-freefont-ttf + +essential: + - fonts-freefont-ttf_copyright + +slices: + fonts: + contents: + /usr/share/fonts/truetype/freefont/*: + + copyright: + contents: + /usr/share/doc/fonts-freefont-ttf/copyright: diff --git a/slices/fonts-liberation.yaml b/slices/fonts-liberation.yaml new file mode 100644 index 000000000..153be7a48 --- /dev/null +++ b/slices/fonts-liberation.yaml @@ -0,0 +1,24 @@ +package: fonts-liberation + +essential: + - fonts-liberation_copyright + +slices: + fonts: + contents: + /usr/share/fonts/truetype/liberation/LiberationMono-Bold.ttf: + /usr/share/fonts/truetype/liberation/LiberationMono-BoldItalic.ttf: + /usr/share/fonts/truetype/liberation/LiberationMono-Italic.ttf: + /usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf: + /usr/share/fonts/truetype/liberation/LiberationSans-Bold.ttf: + /usr/share/fonts/truetype/liberation/LiberationSans-BoldItalic.ttf: + /usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf: + /usr/share/fonts/truetype/liberation/LiberationSans-Regular.ttf: + /usr/share/fonts/truetype/liberation/LiberationSerif-Bold.ttf: + /usr/share/fonts/truetype/liberation/LiberationSerif-BoldItalic.ttf: + /usr/share/fonts/truetype/liberation/LiberationSerif-Italic.ttf: + /usr/share/fonts/truetype/liberation/LiberationSerif-Regular.ttf: + + copyright: + contents: + /usr/share/doc/fonts-liberation/copyright: diff --git a/slices/fonts-noto-core.yaml b/slices/fonts-noto-core.yaml new file mode 100644 index 000000000..1df6498ce --- /dev/null +++ b/slices/fonts-noto-core.yaml @@ -0,0 +1,210 @@ +package: fonts-noto-core + +essential: + - fonts-noto-core_copyright + +slices: + fonts: + essential: + - fonts-noto-mono_fonts + contents: + /usr/share/fonts/truetype/noto/NotoKufiArabic-*.ttf: + /usr/share/fonts/truetype/noto/NotoLoopedLao-*.ttf: + /usr/share/fonts/truetype/noto/NotoLoopedThai-*.ttf: + /usr/share/fonts/truetype/noto/NotoMusic-*.ttf: + /usr/share/fonts/truetype/noto/NotoNaskhArabic-*.ttf: + /usr/share/fonts/truetype/noto/NotoNastaliqUrdu-*.ttf: + /usr/share/fonts/truetype/noto/NotoRashiHebrew-*.ttf: + /usr/share/fonts/truetype/noto/NotoSans-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansAdlam-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansAdlamUnjoined-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansAnatolianHieroglyphs-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansArabic-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansArmenian-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansAvestan-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansBalinese-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansBamum-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansBassaVah-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansBatak-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansBengali-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansBhaiksuki-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansBrahmi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansBuginese-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansBuhid-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansCanadianAboriginal-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansCarian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansCaucasianAlbanian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansChakma-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansCham-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansCherokee-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansCoptic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansCuneiform-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansCypriot-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansDevanagari-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansDisplay-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansDuployan-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansEgyptianHieroglyphs-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansElbasan-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansElymaic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansEthiopic-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansGeorgian-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansGlagolitic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansGothic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansGrantha-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansGujarati-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansGunjalaGondi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansGurmukhi-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansHanifiRohingya-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansHanunoo-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansHatran-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansImperialAramaic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansIndicSiyaqNumbers-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansInscriptionalPahlavi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansInscriptionalParthian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansJavanese-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansKaithi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansKannada-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansKayahLi-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansKharoshthi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansKhmer-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansKhojki-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansKhudawadi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansLao-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansLepcha-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansLimbu-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansLinearA-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansLinearB-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansLisu-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansLycian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansLydian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMahajani-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMalayalam-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansMandaic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansManichaean-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMarchen-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMasaramGondi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMath-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMayanNumerals-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMedefaidrin-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansMeeteiMayek-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansMendeKikakui-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMeroitic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMiao-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansModi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMongolian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMro-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMultani-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMyanmar-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansNKo-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansNabataean-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansNewTaiLue-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansNewa-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansNushu-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOgham-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOlChiki-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansOldHungarian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOldItalic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOldNorthArabian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOldPermic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOldPersian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOldSogdian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOldSouthArabian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOldTurkic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOriya-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansOsage-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansOsmanya-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansPahawhHmong-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansPalmyrene-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansPauCinHau-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansPhagsPa-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansPhoenician-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansPsalterPahlavi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansRejang-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansRunic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSamaritan-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSaurashtra-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSharada-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansShavian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSiddham-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSignWriting-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSinhala-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansSogdian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSoraSompeng-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansSoyombo-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSundanese-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansSylotiNagri-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSymbols-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansSymbols2-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansSyriac-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTagalog-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTagbanwa-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTaiLe-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTaiTham-Bold.ttf: + /usr/share/fonts/truetype/noto/NotoSansTaiTham-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTaiViet-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTakri-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTamil-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansTamilSupplement-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTelugu-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansThaana-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansThai-*.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinagh-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghAPT-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghAdrar-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghAgrawImazighen-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghAhaggar-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghAir-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghAzawagh-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghGhat-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghHawad-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghRhissaIxa-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghSIL-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTifinaghTawellemmet-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansTirhuta-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansUgaritic-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansVai-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansWancho-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansWarangCiti-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansYi-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansZanabazarSquare-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSerif-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifAhom-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSerifArmenian-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifBalinese-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSerifBengali-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifDevanagari-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifDisplay-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifDogra-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSerifEthiopic-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifGeorgian-Bold.ttf: + /usr/share/fonts/truetype/noto/NotoSerifGeorgian-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSerifGrantha-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSerifGujarati-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifGurmukhi-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifHebrew-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifKannada-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifKhmer-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifKhojki-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifLao-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifMalayalam-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifMyanmar-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifNyiakengPuachueHmong-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifSinhala-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifTamil-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifTamilSlanted-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifTangut-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSerifTelugu-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifThai-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifTibetan-*.ttf: + /usr/share/fonts/truetype/noto/NotoSerifYezidi-*.ttf: + /usr/share/fonts/truetype/noto/NotoTraditionalNushu-Regular.ttf: + + config: + essential: + - fonts-noto-mono_config + contents: + /etc/fonts/conf.avail/30-droid-noto.conf: + + copyright: + contents: + /usr/share/doc/fonts-noto-core/copyright: diff --git a/slices/fonts-noto-mono.yaml b/slices/fonts-noto-mono.yaml new file mode 100644 index 000000000..bf79493ec --- /dev/null +++ b/slices/fonts-noto-mono.yaml @@ -0,0 +1,19 @@ +package: fonts-noto-mono + +essential: + - fonts-noto-mono_copyright + +slices: + fonts: + contents: + /usr/share/fonts/truetype/noto/NotoMono-Regular.ttf: + /usr/share/fonts/truetype/noto/NotoSansMono-Bold.ttf: + /usr/share/fonts/truetype/noto/NotoSansMono-Regular.ttf: + + config: + contents: + /etc/fonts/conf.avail/30-droid-noto-mono.conf: + + copyright: + contents: + /usr/share/doc/fonts-noto-mono/copyright: diff --git a/slices/fonts-texgyre.yaml b/slices/fonts-texgyre.yaml new file mode 100644 index 000000000..e41fa3872 --- /dev/null +++ b/slices/fonts-texgyre.yaml @@ -0,0 +1,18 @@ +package: fonts-texgyre + +essential: + - fonts-texgyre_copyright + +slices: + fonts: + contents: + /usr/share/texmf/fonts/opentype/public/tex-gyre/*: + + config: + contents: + /etc/fonts/conf.avail/65-fonts-texgyre.conf: + /etc/fonts/conf.d/65-fonts-texgyre.conf: + + copyright: + contents: + /usr/share/doc/fonts-texgyre/copyright: diff --git a/slices/fonts-urw-base35.yaml b/slices/fonts-urw-base35.yaml new file mode 100644 index 000000000..4d74cc816 --- /dev/null +++ b/slices/fonts-urw-base35.yaml @@ -0,0 +1,21 @@ +package: fonts-urw-base35 + +essential: + - fonts-urw-base35_copyright + +slices: + config: + contents: + /etc/fonts/conf.d/61-urw-*.conf: + /usr/share/fontconfig/conf.avail/urw-*.conf: + + fonts: + contents: + /etc/X11/fonts/Type1/fonts-urw-base35*: + /usr/share/fonts/X11/Type1/*.pfb: + /usr/share/fonts/opentype/urw-base35/*.otf: + /usr/share/fonts/type1/urw-base35/*: + + copyright: + contents: + /usr/share/doc/fonts-urw-base35/copyright: diff --git a/slices/libcairo2.yaml b/slices/libcairo2.yaml new file mode 100644 index 000000000..b2fa1c14a --- /dev/null +++ b/slices/libcairo2.yaml @@ -0,0 +1,26 @@ +package: libcairo2 + +essential: + - libcairo2_copyright + +slices: + libs: + essential: + - libc6_libs + - libfontconfig1_libs + - libfreetype6_libs + - libpixman-1-0_libs + - libpng16-16t64_libs + - libx11-6_libs + - libxcb-render0_libs + - libxcb-shm0_libs + - libxcb1_libs + - libxext6_libs + - libxrender1_libs + - zlib1g_libs + contents: + /usr/lib/*-linux-*/libcairo.so.2*: + + copyright: + contents: + /usr/share/doc/libcairo2/copyright: diff --git a/slices/libexif12.yaml b/slices/libexif12.yaml new file mode 100644 index 000000000..f323e0876 --- /dev/null +++ b/slices/libexif12.yaml @@ -0,0 +1,15 @@ +package: libexif12 + +essential: + - libexif12_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/*-linux-*/libexif.so.12*: + + copyright: + contents: + /usr/share/doc/libexif12/copyright: diff --git a/slices/libfontenc1.yaml b/slices/libfontenc1.yaml new file mode 100644 index 000000000..ba2bcd2e2 --- /dev/null +++ b/slices/libfontenc1.yaml @@ -0,0 +1,16 @@ +package: libfontenc1 + +essential: + - libfontenc1_copyright + +slices: + libs: + essential: + - libc6_libs + - zlib1g_libs + contents: + /usr/lib/*-linux-*/libfontenc.so.1*: + + copyright: + contents: + /usr/share/doc/libfontenc1/copyright: diff --git a/slices/libgdiplus.yaml b/slices/libgdiplus.yaml new file mode 100644 index 000000000..1f69cc5ea --- /dev/null +++ b/slices/libgdiplus.yaml @@ -0,0 +1,27 @@ +package: libgdiplus + +essential: + - libgdiplus_copyright + +slices: + libs: + essential: + - libc6_libs + - libcairo2_libs + - libexif12_libs + - libfontconfig1_libs + - libgif7_libs + - libglib2.0-0t64_libs + - libharfbuzz0b_libs + - libjpeg8_libs + - libpango-1.0-0_libs + - libpangocairo-1.0-0_libs + - libpng16-16t64_libs + - libtiff6_libs + - libx11-6_libs + contents: + /usr/lib/libgdiplus.so.0*: + + copyright: + contents: + /usr/share/doc/libgdiplus/copyright: diff --git a/slices/libpango-1.0-0.yaml b/slices/libpango-1.0-0.yaml new file mode 100644 index 000000000..ee8973271 --- /dev/null +++ b/slices/libpango-1.0-0.yaml @@ -0,0 +1,20 @@ +package: libpango-1.0-0 + +essential: + - libpango-1.0-0_copyright + +slices: + libs: + essential: + - fontconfig_bins + - libc6_libs + - libfribidi0_libs + - libglib2.0-0t64_libs + - libharfbuzz0b_libs + - libthai0_libs + contents: + /usr/lib/*-linux-*/libpango-1.0.so.0*: + + copyright: + contents: + /usr/share/doc/libpango-1.0-0/copyright: diff --git a/slices/libpangocairo-1.0-0.yaml b/slices/libpangocairo-1.0-0.yaml new file mode 100644 index 000000000..cfe48d150 --- /dev/null +++ b/slices/libpangocairo-1.0-0.yaml @@ -0,0 +1,21 @@ +package: libpangocairo-1.0-0 + +essential: + - libpangocairo-1.0-0_copyright + +slices: + libs: + essential: + - libc6_libs + - libcairo2_libs + - libfontconfig1_libs + - libglib2.0-0t64_libs + - libharfbuzz0b_libs + - libpango-1.0-0_libs + - libpangoft2-1.0-0_libs + contents: + /usr/lib/*-linux-*/libpangocairo-1.0.so.0*: + + copyright: + contents: + /usr/share/doc/libpangocairo-1.0-0/copyright: diff --git a/slices/libpangoft2-1.0-0.yaml b/slices/libpangoft2-1.0-0.yaml new file mode 100644 index 000000000..f17bb03f2 --- /dev/null +++ b/slices/libpangoft2-1.0-0.yaml @@ -0,0 +1,20 @@ +package: libpangoft2-1.0-0 + +essential: + - libpangoft2-1.0-0_copyright + +slices: + libs: + essential: + - libc6_libs + - libfontconfig1_libs + - libfreetype6_libs + - libglib2.0-0t64_libs + - libharfbuzz0b_libs + - libpango-1.0-0_libs + contents: + /usr/lib/*-linux-*/libpangoft2-1.0.so.0*: + + copyright: + contents: + /usr/share/doc/libpangoft2-1.0-0/copyright: diff --git a/slices/libthai-data.yaml b/slices/libthai-data.yaml new file mode 100644 index 000000000..a9b9a36db --- /dev/null +++ b/slices/libthai-data.yaml @@ -0,0 +1,13 @@ +package: libthai-data + +essential: + - libthai-data_copyright + +slices: + data: + contents: + /usr/share/libthai/thbrk.tri: + + copyright: + contents: + /usr/share/doc/libthai-data/copyright: diff --git a/slices/libthai0.yaml b/slices/libthai0.yaml new file mode 100644 index 000000000..7f64eb764 --- /dev/null +++ b/slices/libthai0.yaml @@ -0,0 +1,17 @@ +package: libthai0 + +essential: + - libthai0_copyright + +slices: + libs: + essential: + - libc6_libs + - libdatrie1_libs + - libthai-data_data + contents: + /usr/lib/*-linux-*/libthai.so.0*: + + copyright: + contents: + /usr/share/doc/libthai0/copyright: diff --git a/slices/libx11-6.yaml b/slices/libx11-6.yaml new file mode 100644 index 000000000..43157b594 --- /dev/null +++ b/slices/libx11-6.yaml @@ -0,0 +1,17 @@ +package: libx11-6 + +essential: + - libx11-6_copyright + +slices: + libs: + essential: + - libc6_libs + - libx11-data_data + - libxcb1_libs + contents: + /usr/lib/*-linux-*/libX11.so.6*: + + copyright: + contents: + /usr/share/doc/libx11-6/copyright: diff --git a/slices/libx11-data.yaml b/slices/libx11-data.yaml new file mode 100644 index 000000000..db8f4b664 --- /dev/null +++ b/slices/libx11-data.yaml @@ -0,0 +1,83 @@ +package: libx11-data + +essential: + - libx11-data_copyright + +slices: + data: + essential: + - libx11-data_locale + contents: + /usr/share/X11/XErrorDB: + + locale: + contents: + /usr/share/X11/locale/C/**: + /usr/share/X11/locale/am_ET.UTF-8/**: + /usr/share/X11/locale/armscii-8/**: + /usr/share/X11/locale/compose.dir: + /usr/share/X11/locale/cs_CZ.UTF-8/**: + /usr/share/X11/locale/el_GR.UTF-8/**: + /usr/share/X11/locale/en_US.UTF-8/**: + /usr/share/X11/locale/fi_FI.UTF-8/**: + /usr/share/X11/locale/georgian-academy/**: + /usr/share/X11/locale/georgian-ps/**: + /usr/share/X11/locale/ibm-cp1133/**: + /usr/share/X11/locale/iscii-dev/**: + /usr/share/X11/locale/isiri-3342/**: + /usr/share/X11/locale/iso8859-1/**: + /usr/share/X11/locale/iso8859-10/**: + /usr/share/X11/locale/iso8859-11/**: + /usr/share/X11/locale/iso8859-13/**: + /usr/share/X11/locale/iso8859-14/**: + /usr/share/X11/locale/iso8859-15/**: + /usr/share/X11/locale/iso8859-2/**: + /usr/share/X11/locale/iso8859-3/**: + /usr/share/X11/locale/iso8859-4/**: + /usr/share/X11/locale/iso8859-5/**: + /usr/share/X11/locale/iso8859-6/**: + /usr/share/X11/locale/iso8859-7/**: + /usr/share/X11/locale/iso8859-8/**: + /usr/share/X11/locale/iso8859-9/**: + /usr/share/X11/locale/iso8859-9e/**: + /usr/share/X11/locale/ja.JIS/**: + /usr/share/X11/locale/ja.SJIS/**: + /usr/share/X11/locale/ja/**: + /usr/share/X11/locale/ja_JP.UTF-8/**: + /usr/share/X11/locale/km_KH.UTF-8/**: + /usr/share/X11/locale/ko/**: + /usr/share/X11/locale/ko_KR.UTF-8/**: + /usr/share/X11/locale/koi8-c/**: + /usr/share/X11/locale/koi8-r/**: + /usr/share/X11/locale/koi8-u/**: + /usr/share/X11/locale/locale.alias: + /usr/share/X11/locale/locale.dir: + /usr/share/X11/locale/microsoft-cp1251/**: + /usr/share/X11/locale/microsoft-cp1255/**: + /usr/share/X11/locale/microsoft-cp1256/**: + /usr/share/X11/locale/mulelao-1/**: + /usr/share/X11/locale/nokhchi-1/**: + /usr/share/X11/locale/pt_BR.UTF-8/**: + /usr/share/X11/locale/pt_PT.UTF-8/**: + /usr/share/X11/locale/ru_RU.UTF-8/**: + /usr/share/X11/locale/sr_RS.UTF-8/**: + /usr/share/X11/locale/tatar-cyr/**: + /usr/share/X11/locale/th_TH.UTF-8/**: + /usr/share/X11/locale/th_TH/**: + /usr/share/X11/locale/tscii-0/**: + /usr/share/X11/locale/vi_VN.tcvn/**: + /usr/share/X11/locale/vi_VN.viscii/**: + /usr/share/X11/locale/zh_CN.UTF-8/**: + /usr/share/X11/locale/zh_CN.gb18030/**: + /usr/share/X11/locale/zh_CN.gbk/**: + /usr/share/X11/locale/zh_CN/**: + /usr/share/X11/locale/zh_HK.UTF-8/**: + /usr/share/X11/locale/zh_HK.big5/**: + /usr/share/X11/locale/zh_HK.big5hkscs/**: + /usr/share/X11/locale/zh_TW.UTF-8/**: + /usr/share/X11/locale/zh_TW.big5/**: + /usr/share/X11/locale/zh_TW/**: + + copyright: + contents: + /usr/share/doc/libx11-data/copyright: diff --git a/slices/libxext6.yaml b/slices/libxext6.yaml new file mode 100644 index 000000000..ae7c8fe9e --- /dev/null +++ b/slices/libxext6.yaml @@ -0,0 +1,16 @@ +package: libxext6 + +essential: + - libxext6_copyright + +slices: + libs: + essential: + - libc6_libs + - libx11-6_libs + contents: + /usr/lib/*-linux-*/libXext.so.6*: + + copyright: + contents: + /usr/share/doc/libxext6/copyright: diff --git a/slices/libxrender1.yaml b/slices/libxrender1.yaml new file mode 100644 index 000000000..c2ff3f1cb --- /dev/null +++ b/slices/libxrender1.yaml @@ -0,0 +1,16 @@ +package: libxrender1 + +essential: + - libxrender1_copyright + +slices: + libs: + essential: + - libc6_libs + - libx11-6_libs + contents: + /usr/lib/*-linux-*/libXrender.so.1*: + + copyright: + contents: + /usr/share/doc/libxrender1/copyright: diff --git a/slices/x11-common.yaml b/slices/x11-common.yaml new file mode 100644 index 000000000..0acc5cbed --- /dev/null +++ b/slices/x11-common.yaml @@ -0,0 +1,19 @@ +package: x11-common + +essential: + - x11-common_copyright + +slices: + resources: + contents: + /etc/X11/Xresources/x11-common: + + services: + essential: + - lsb-base_bins + contents: + /etc/init.d/x11-common: + + copyright: + contents: + /usr/share/doc/x11-common/copyright: diff --git a/slices/xdg-user-dirs.yaml b/slices/xdg-user-dirs.yaml new file mode 100644 index 000000000..e2e67336d --- /dev/null +++ b/slices/xdg-user-dirs.yaml @@ -0,0 +1,24 @@ +package: xdg-user-dirs + +essential: + - xdg-user-dirs_copyright + +slices: + config: + essential: + - libc6_libs + contents: + /etc/xdg/autostart/xdg-user-dirs.desktop: + /etc/xdg/user-dirs.conf: + /etc/xdg/user-dirs.defaults: + + scripts: + essential: + - xdg-user-dirs_config + contents: + /usr/bin/xdg-user-dir: + /usr/bin/xdg-user-dirs-update: + + copyright: + contents: + /usr/share/doc/xdg-user-dirs/copyright: diff --git a/slices/xfonts-encodings.yaml b/slices/xfonts-encodings.yaml new file mode 100644 index 000000000..6edbe5388 --- /dev/null +++ b/slices/xfonts-encodings.yaml @@ -0,0 +1,64 @@ +package: xfonts-encodings + +essential: + - xfonts-utils_copyright + +slices: + encodings: + contents: + /usr/share/fonts/X11/encodings/adobe-dingbats.enc.gz: + /usr/share/fonts/X11/encodings/adobe-standard.enc.gz: + /usr/share/fonts/X11/encodings/adobe-symbol.enc.gz: + /usr/share/fonts/X11/encodings/armscii-8.enc.gz: + /usr/share/fonts/X11/encodings/ascii-0.enc.gz: + /usr/share/fonts/X11/encodings/dec-special.enc.gz: + /usr/share/fonts/X11/encodings/encodings.dir: + /usr/share/fonts/X11/encodings/ibm-cp437.enc.gz: + /usr/share/fonts/X11/encodings/ibm-cp850.enc.gz: + /usr/share/fonts/X11/encodings/ibm-cp852.enc.gz: + /usr/share/fonts/X11/encodings/ibm-cp866.enc.gz: + /usr/share/fonts/X11/encodings/iso8859-11.enc.gz: + /usr/share/fonts/X11/encodings/iso8859-13.enc.gz: + /usr/share/fonts/X11/encodings/iso8859-16.enc.gz: + /usr/share/fonts/X11/encodings/iso8859-6.16.enc.gz: + /usr/share/fonts/X11/encodings/iso8859-6.8x.enc.gz: + /usr/share/fonts/X11/encodings/large/: + /usr/share/fonts/X11/encodings/large/big5.eten-0.enc.gz: + /usr/share/fonts/X11/encodings/large/big5hkscs-0.enc.gz: + /usr/share/fonts/X11/encodings/large/cns11643-1.enc.gz: + /usr/share/fonts/X11/encodings/large/cns11643-2.enc.gz: + /usr/share/fonts/X11/encodings/large/cns11643-3.enc.gz: + /usr/share/fonts/X11/encodings/large/encodings.dir: + /usr/share/fonts/X11/encodings/large/gb18030-0.enc.gz: + /usr/share/fonts/X11/encodings/large/gb18030.2000-0.enc.gz: + /usr/share/fonts/X11/encodings/large/gb18030.2000-1.enc.gz: + /usr/share/fonts/X11/encodings/large/gb2312.1980-0.enc.gz: + /usr/share/fonts/X11/encodings/large/gbk-0.enc.gz: + /usr/share/fonts/X11/encodings/large/jisx0201.1976-0.enc.gz: + /usr/share/fonts/X11/encodings/large/jisx0208.1990-0.enc.gz: + /usr/share/fonts/X11/encodings/large/jisx0212.1990-0.enc.gz: + /usr/share/fonts/X11/encodings/large/ksc5601.1987-0.enc.gz: + /usr/share/fonts/X11/encodings/large/ksc5601.1992-3.enc.gz: + /usr/share/fonts/X11/encodings/large/sun.unicode.india-0.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1250.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1251.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1252.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1253.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1254.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1255.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1256.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1257.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-cp1258.enc.gz: + /usr/share/fonts/X11/encodings/microsoft-win3.1.enc.gz: + /usr/share/fonts/X11/encodings/mulearabic-0.enc.gz: + /usr/share/fonts/X11/encodings/mulearabic-1.enc.gz: + /usr/share/fonts/X11/encodings/mulearabic-2.enc.gz: + /usr/share/fonts/X11/encodings/mulelao-1.enc.gz: + /usr/share/fonts/X11/encodings/suneu-greek.enc.gz: + /usr/share/fonts/X11/encodings/tcvn-0.enc.gz: + /usr/share/fonts/X11/encodings/tis620-2.enc.gz: + /usr/share/fonts/X11/encodings/viscii1.1-1.enc.gz: + + copyright: + contents: + /usr/share/doc/xfonts-encodings/copyright: diff --git a/slices/xfonts-utils.yaml b/slices/xfonts-utils.yaml new file mode 100644 index 000000000..688970173 --- /dev/null +++ b/slices/xfonts-utils.yaml @@ -0,0 +1,35 @@ +package: xfonts-utils + +essential: + - xfonts-utils_copyright + +slices: + bins: + essential: + - libc6_libs + - libfontenc1_libs + - libfreetype6_libs + - xfonts-encodings_encodings + - xfonts-utils_utils + - zlib1g_libs + contents: + /usr/bin/bdftopcf: + /usr/bin/bdftruncate: + /usr/bin/fonttosfnt: + /usr/bin/mkfontdir: + /usr/bin/mkfontscale: + /usr/bin/ucs2any: + + utils: + contents: + /usr/share/fonts/X11/util/*: + + scripts: + contents: + /usr/sbin/update-fonts-alias: + /usr/sbin/update-fonts-dir: + /usr/sbin/update-fonts-scale: + + copyright: + contents: + /usr/share/doc/xfonts-utils/copyright: diff --git a/tests/spread/integration/xdg-user-dirs/task.yaml b/tests/spread/integration/xdg-user-dirs/task.yaml new file mode 100644 index 000000000..a3db33d48 --- /dev/null +++ b/tests/spread/integration/xdg-user-dirs/task.yaml @@ -0,0 +1,8 @@ +summary: Integration tests for xdg-user-dirs + +execute: | + rootfs="$(install-slices xdg-user-dirs_scripts)" + + test -d ${rootfs}/etc/xdg/autostart + test -f ${rootfs}/etc/xdg/user-dirs.conf + test -f ${rootfs}/etc/xdg/user-dirs.defaults diff --git a/tests/spread/integration/xfonts-utils/6x13.bdf b/tests/spread/integration/xfonts-utils/6x13.bdf new file mode 100644 index 000000000..66faf02df --- /dev/null +++ b/tests/spread/integration/xfonts-utils/6x13.bdf @@ -0,0 +1,52 @@ +STARTFONT 2.1 +COMMENT $Id$ +COMMENT Send bug reports to Markus Kuhn +FONT -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 +SIZE 12 75 75 +FONTBOUNDINGBOX 6 13 0 -2 +STARTPROPERTIES 22 +FONTNAME_REGISTRY "" +FOUNDRY "Misc" +FAMILY_NAME "Fixed" +WEIGHT_NAME "Medium" +SLANT "R" +SETWIDTH_NAME "SemiCondensed" +ADD_STYLE_NAME "" +PIXEL_SIZE 13 +POINT_SIZE 120 +RESOLUTION_X 75 +RESOLUTION_Y 75 +SPACING "C" +AVERAGE_WIDTH 60 +CHARSET_REGISTRY "ISO10646" +CHARSET_ENCODING "1" +DEFAULT_CHAR 0 +FONT_DESCENT 2 +FONT_ASCENT 11 +COPYRIGHT "Public domain font. Share and enjoy." +_XMBDFED_INFO "Edited with xmbdfed 4.5." +CAP_HEIGHT 9 +X_HEIGHT 6 +ENDPROPERTIES +CHARS 4430 +STARTCHAR char0 +ENCODING 0 +SWIDTH 480 0 +DWIDTH 6 0 +BBX 6 13 0 -2 +BITMAP +00 +00 +A8 +00 +88 +00 +88 +00 +88 +00 +A8 +00 +00 +ENDCHAR +ENDFONT diff --git a/tests/spread/integration/xfonts-utils/sample.bdf b/tests/spread/integration/xfonts-utils/sample.bdf new file mode 100644 index 000000000..a8e4d3d72 --- /dev/null +++ b/tests/spread/integration/xfonts-utils/sample.bdf @@ -0,0 +1,47 @@ +STARTFONT 2.1 +FONT -FontForge-sample-Regular-R-Normal--2-20-75-75-C-20-FontSpecific-0 +SIZE 2 75 75 +FONTBOUNDINGBOX 1 1 0 1 +COMMENT "Generated by fontforge, http://fontforge.sourceforge.net" +COMMENT "public domain, created by Mikhail Aksenov" +STARTPROPERTIES 28 +FOUNDRY "FontForge" +FAMILY_NAME "sample" +WEIGHT_NAME "Regular" +SLANT "R" +SETWIDTH_NAME "Normal" +ADD_STYLE_NAME "" +PIXEL_SIZE 2 +POINT_SIZE 20 +RESOLUTION_X 75 +RESOLUTION_Y 75 +SPACING "C" +AVERAGE_WIDTH 20 +CHARSET_REGISTRY "FontSpecific" +CHARSET_ENCODING "0" +FONTNAME_REGISTRY "" +CHARSET_COLLECTIONS "FontSpecific" +FONT_NAME "sample" +FACE_NAME "sample" +COPYRIGHT "public domain" +FONT_VERSION "001.000" +FONT_ASCENT 2 +FONT_DESCENT 0 +UNDERLINE_POSITION 0 +UNDERLINE_THICKNESS 1 +RAW_ASCENT 800 +RAW_DESCENT 200 +FIGURE_WIDTH -1 +AVG_UPPERCASE_WIDTH 20 +ENDPROPERTIES +CHARS 1 +STARTCHAR A +ENCODING -1 +SWIDTH 1000 0 +DWIDTH 2 0 +BBX 1 1 0 1 +BITMAP +00 +ENDCHAR +ENDFONT + diff --git a/tests/spread/integration/xfonts-utils/task.yaml b/tests/spread/integration/xfonts-utils/task.yaml new file mode 100644 index 000000000..7e39dcb5b --- /dev/null +++ b/tests/spread/integration/xfonts-utils/task.yaml @@ -0,0 +1,21 @@ +summary: Integration tests for xfonts-utils + +execute: | + rootfs="$(install-slices xfonts-utils_bins bash_bins)" + + mkdir -p $rootfs/tmp/fonts + mkdir -p $rootfs/dev + cp sample.bdf $rootfs/tmp/fonts/sample.bdf + + chroot "$rootfs" bdftopcf /tmp/fonts/sample.bdf 1>/dev/null 2>/dev/null + chroot "$rootfs" /usr/bin/bash -c "bdftruncate 0x3200 /dev/null" + chroot "$rootfs" /usr/bin/bash -c "fonttosfnt -o /tmp/test.ttf /tmp/fonts/sample.bdf" + + # it is a script calling mkfontscale and it does require + # /bin/sh, so using bash instead + chroot "$rootfs" /usr/bin/bash -c "bash mkfontdir" + + chroot "$rootfs" mkfontscale + + cp 6x13.bdf $rootfs/tmp/fonts/6x13.bdf + chroot "$rootfs" ucs2any /tmp/fonts/6x13.bdf From 6ba20f9b3be324c3e13d532bb94136801cff1aff Mon Sep 17 00:00:00 2001 From: Linostar Date: Thu, 21 Nov 2024 10:49:38 +0200 Subject: [PATCH 02/23] feat(24.04): add erlang slices (#384) --- slices/erlang-asn1.yaml | 22 ++++++++++ slices/erlang-base.yaml | 45 +++++++++++++++++++ slices/erlang-crypto.yaml | 23 ++++++++++ slices/erlang-eldap.yaml | 19 ++++++++ slices/erlang-ftp.yaml | 19 ++++++++ slices/erlang-inets.yaml | 27 ++++++++++++ slices/erlang-mnesia.yaml | 16 +++++++ slices/erlang-os-mon.yaml | 25 +++++++++++ slices/erlang-parsetools.yaml | 16 +++++++ slices/erlang-public-key.yaml | 20 +++++++++ slices/erlang-runtime-tools.yaml | 23 ++++++++++ slices/erlang-snmp.yaml | 39 +++++++++++++++++ slices/erlang-ssl.yaml | 21 +++++++++ slices/erlang-syntax-tools.yaml | 17 ++++++++ slices/erlang-tftp.yaml | 16 +++++++ slices/erlang-tools.yaml | 23 ++++++++++ slices/erlang-xmerl.yaml | 16 +++++++ tests/spread/integration/erlang/task.yaml | 53 +++++++++++++++++++++++ 18 files changed, 440 insertions(+) create mode 100644 slices/erlang-asn1.yaml create mode 100644 slices/erlang-base.yaml create mode 100644 slices/erlang-crypto.yaml create mode 100644 slices/erlang-eldap.yaml create mode 100644 slices/erlang-ftp.yaml create mode 100644 slices/erlang-inets.yaml create mode 100644 slices/erlang-mnesia.yaml create mode 100644 slices/erlang-os-mon.yaml create mode 100644 slices/erlang-parsetools.yaml create mode 100644 slices/erlang-public-key.yaml create mode 100644 slices/erlang-runtime-tools.yaml create mode 100644 slices/erlang-snmp.yaml create mode 100644 slices/erlang-ssl.yaml create mode 100644 slices/erlang-syntax-tools.yaml create mode 100644 slices/erlang-tftp.yaml create mode 100644 slices/erlang-tools.yaml create mode 100644 slices/erlang-xmerl.yaml create mode 100644 tests/spread/integration/erlang/task.yaml diff --git a/slices/erlang-asn1.yaml b/slices/erlang-asn1.yaml new file mode 100644 index 000000000..efe9910a6 --- /dev/null +++ b/slices/erlang-asn1.yaml @@ -0,0 +1,22 @@ +package: erlang-asn1 + +essential: + - erlang-asn1_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/erlang/lib/asn1-*/priv/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/asn1-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-asn1/copyright: diff --git a/slices/erlang-base.yaml b/slices/erlang-base.yaml new file mode 100644 index 000000000..8f8c140e0 --- /dev/null +++ b/slices/erlang-base.yaml @@ -0,0 +1,45 @@ +package: erlang-base + +essential: + - erlang-base_copyright + +slices: + bins: + essential: + - bash_bins + - coreutils_bins + - erlang-base_modules + - libc6_libs + - libgcc-s1_libs + - libreadline8t64_libs + - libstdc++6_libs + - libsystemd0_libs + - libtinfo6_libs + - zlib1g_libs + contents: + /usr/bin/epmd: + /usr/bin/erl: + /usr/bin/erl_call: + /usr/bin/erlc: + /usr/bin/escript: + /usr/bin/run_erl: + /usr/bin/start_embedded: + /usr/bin/to_erl: + /usr/lib/erlang/bin/**: + /usr/lib/erlang/erts-*/bin/**: + /usr/lib/erlang/lib/erl_interface-*/bin/erl_call: + + modules: + contents: + /usr/lib/erlang/lib/compiler-*/ebin/**: + /usr/lib/erlang/lib/erts-*/ebin/**: + /usr/lib/erlang/lib/kernel-*/ebin/**: + /usr/lib/erlang/lib/kernel-*/include/**: + /usr/lib/erlang/lib/sasl-*/ebin/**: + /usr/lib/erlang/lib/stdlib-*/ebin/**: + /usr/lib/erlang/lib/stdlib-*/include/**: + /usr/lib/erlang/releases/**: + + copyright: + contents: + /usr/share/doc/erlang-base/copyright: diff --git a/slices/erlang-crypto.yaml b/slices/erlang-crypto.yaml new file mode 100644 index 000000000..c6b51ff94 --- /dev/null +++ b/slices/erlang-crypto.yaml @@ -0,0 +1,23 @@ +package: erlang-crypto + +essential: + - erlang-crypto_copyright + +slices: + libs: + essential: + - libc6_libs + - libssl3t64_libs + contents: + /usr/lib/erlang/lib/crypto-*/priv/lib/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/crypto-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-crypto/copyright: diff --git a/slices/erlang-eldap.yaml b/slices/erlang-eldap.yaml new file mode 100644 index 000000000..eb60d367d --- /dev/null +++ b/slices/erlang-eldap.yaml @@ -0,0 +1,19 @@ +package: erlang-eldap + +essential: + - erlang-eldap_copyright + +slices: + modules: + essential: + - erlang-asn1_libs + - erlang-asn1_modules + - erlang-base_bins + - erlang-base_modules + - erlang-ssl_modules + contents: + /usr/lib/erlang/lib/eldap-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-eldap/copyright: diff --git a/slices/erlang-ftp.yaml b/slices/erlang-ftp.yaml new file mode 100644 index 000000000..5542bf431 --- /dev/null +++ b/slices/erlang-ftp.yaml @@ -0,0 +1,19 @@ +package: erlang-ftp + +essential: + - erlang-ftp_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + - erlang-ssl_modules + contents: + /usr/lib/erlang/lib/ftp-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-ftp/copyright: diff --git a/slices/erlang-inets.yaml b/slices/erlang-inets.yaml new file mode 100644 index 000000000..dbaf0072a --- /dev/null +++ b/slices/erlang-inets.yaml @@ -0,0 +1,27 @@ +package: erlang-inets + +essential: + - erlang-inets_copyright + +slices: + scripts: + contents: + /usr/lib/erlang/lib/inets-*/priv/bin/runcgi.sh: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-ftp_modules + - erlang-mnesia_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + - erlang-ssl_modules + - erlang-tftp_modules + contents: + /usr/lib/erlang/lib/inets-*/ebin/**: + /usr/lib/erlang/lib/inets-*/include/**: + + copyright: + contents: + /usr/share/doc/erlang-inets/copyright: diff --git a/slices/erlang-mnesia.yaml b/slices/erlang-mnesia.yaml new file mode 100644 index 000000000..7a4d2d009 --- /dev/null +++ b/slices/erlang-mnesia.yaml @@ -0,0 +1,16 @@ +package: erlang-mnesia + +essential: + - erlang-mnesia_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/mnesia-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-mnesia/copyright: diff --git a/slices/erlang-os-mon.yaml b/slices/erlang-os-mon.yaml new file mode 100644 index 000000000..67aba2b96 --- /dev/null +++ b/slices/erlang-os-mon.yaml @@ -0,0 +1,25 @@ +package: erlang-os-mon + +essential: + - erlang-os-mon_copyright + +slices: + bins: + essential: + - erlang-os-mon_modules + contents: + /usr/lib/erlang/lib/os_mon-*/priv/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-mnesia_modules + - erlang-snmp_bins + - libc6_libs + contents: + /usr/lib/erlang/lib/os_mon-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-os-mon/copyright: diff --git a/slices/erlang-parsetools.yaml b/slices/erlang-parsetools.yaml new file mode 100644 index 000000000..0e54a331d --- /dev/null +++ b/slices/erlang-parsetools.yaml @@ -0,0 +1,16 @@ +package: erlang-parsetools + +essential: + - erlang-parsetools_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/parsetools-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-parsetools/copyright: diff --git a/slices/erlang-public-key.yaml b/slices/erlang-public-key.yaml new file mode 100644 index 000000000..143e72ac0 --- /dev/null +++ b/slices/erlang-public-key.yaml @@ -0,0 +1,20 @@ +package: erlang-public-key + +essential: + - erlang-public-key_copyright + +slices: + modules: + essential: + - erlang-asn1_libs + - erlang-asn1_modules + - erlang-base_bins + - erlang-base_modules + - erlang-crypto_libs + - erlang-crypto_modules + contents: + /usr/lib/erlang/lib/public_key-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-public-key/copyright: diff --git a/slices/erlang-runtime-tools.yaml b/slices/erlang-runtime-tools.yaml new file mode 100644 index 000000000..713f2f0f1 --- /dev/null +++ b/slices/erlang-runtime-tools.yaml @@ -0,0 +1,23 @@ +package: erlang-runtime-tools + +essential: + - erlang-runtime-tools_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/erlang/lib/runtime_tools-*/priv/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-mnesia_modules + contents: + /usr/lib/erlang/lib/runtime_tools-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-runtime-tools/copyright: diff --git a/slices/erlang-snmp.yaml b/slices/erlang-snmp.yaml new file mode 100644 index 000000000..c1fffcc89 --- /dev/null +++ b/slices/erlang-snmp.yaml @@ -0,0 +1,39 @@ +package: erlang-snmp + +essential: + - erlang-snmp_copyright + +slices: + bins: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-crypto_libs + - erlang-crypto_modules + - erlang-mnesia_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + - erlang-snmp_config + - erlang-snmp_data + - erlang-snmp_modules + contents: + /usr/bin/snmpc: + /usr/lib/erlang/lib/snmp-*/bin/snmpc: + + config: + contents: + /usr/lib/erlang/lib/snmp-*/priv/conf/**: + + data: + contents: + /usr/lib/erlang/lib/snmp-*/mibs/**: + /usr/lib/erlang/lib/snmp-*/priv/mibs/**: + + modules: + contents: + /usr/lib/erlang/lib/snmp-*/ebin/**: + /usr/lib/erlang/lib/snmp-*/include/**: + + copyright: + contents: + /usr/share/doc/erlang-snmp/copyright: diff --git a/slices/erlang-ssl.yaml b/slices/erlang-ssl.yaml new file mode 100644 index 000000000..6cffbb6a9 --- /dev/null +++ b/slices/erlang-ssl.yaml @@ -0,0 +1,21 @@ +package: erlang-ssl + +essential: + - erlang-ssl_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-crypto_libs + - erlang-crypto_modules + - erlang-public-key_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + contents: + /usr/lib/erlang/lib/ssl-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-ssl/copyright: diff --git a/slices/erlang-syntax-tools.yaml b/slices/erlang-syntax-tools.yaml new file mode 100644 index 000000000..4cead1b27 --- /dev/null +++ b/slices/erlang-syntax-tools.yaml @@ -0,0 +1,17 @@ +package: erlang-syntax-tools + +essential: + - erlang-syntax-tools_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/syntax_tools-*/ebin/**: + /usr/lib/erlang/lib/syntax_tools-*/include/**: + + copyright: + contents: + /usr/share/doc/erlang-syntax-tools/copyright: diff --git a/slices/erlang-tftp.yaml b/slices/erlang-tftp.yaml new file mode 100644 index 000000000..8b7cca934 --- /dev/null +++ b/slices/erlang-tftp.yaml @@ -0,0 +1,16 @@ +package: erlang-tftp + +essential: + - erlang-tftp_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/tftp-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-tftp/copyright: diff --git a/slices/erlang-tools.yaml b/slices/erlang-tools.yaml new file mode 100644 index 000000000..d3af0cb43 --- /dev/null +++ b/slices/erlang-tools.yaml @@ -0,0 +1,23 @@ +package: erlang-tools + +essential: + - erlang-tools_copyright + +slices: + emacs-plugins: + contents: + /usr/lib/erlang/lib/tools-*/emacs/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + contents: + /usr/lib/erlang/lib/tools-*/ebin/**: + /usr/lib/erlang/lib/tools-*/priv/**: + + copyright: + contents: + /usr/share/doc/erlang-tools/copyright: diff --git a/slices/erlang-xmerl.yaml b/slices/erlang-xmerl.yaml new file mode 100644 index 000000000..f41bc82f8 --- /dev/null +++ b/slices/erlang-xmerl.yaml @@ -0,0 +1,16 @@ +package: erlang-xmerl + +essential: + - erlang-xmerl_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/xmerl-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-xmerl/copyright: diff --git a/tests/spread/integration/erlang/task.yaml b/tests/spread/integration/erlang/task.yaml new file mode 100644 index 000000000..bc4fce22e --- /dev/null +++ b/tests/spread/integration/erlang/task.yaml @@ -0,0 +1,53 @@ +summary: Integration tests for Erlang + +execute: | + # install slices + rootfs="$(install-slices \ + erlang-base_bins \ + erlang-inets_scripts \ + erlang-os-mon_bins \ + erlang-crypto_libs \ + erlang-crypto_modules \ + erlang-eldap_modules \ + erlang-mnesia_modules \ + erlang-parsetools_modules \ + erlang-public-key_modules \ + erlang-runtime-tools_libs \ + erlang-runtime-tools_modules \ + erlang-ssl_modules \ + erlang-syntax-tools_modules \ + erlang-tools_modules \ + erlang-xmerl_modules \ + base-files_base)" + + # preparing the test environment + mkdir -p "$rootfs"/bin "$rootfs"/etc "$rootfs"/dev "$rootfs"/root + cp /bin/sh "$rootfs"/bin/ + cp /etc/resolv.conf "$rootfs"/etc/ + cp /etc/nsswitch.conf "$rootfs"/etc/ + touch "$rootfs"/dev/null + chmod 777 "$rootfs"/dev/null + echo "cookie" > "$rootfs"/root/.erlang.cookie + chroot "$rootfs" chmod 400 /root/.erlang.cookie + + # test epmd daemon + chroot "$rootfs" /usr/bin/epmd -daemon + + # test erl eval + chroot "$rootfs" /usr/bin/erl -noshell -eval 'io:format("Erlang OK~n"), halt().' | grep "Erlang OK" + + # test escript by executing a simple script + echo '#!/usr/bin/escript' > test_script + echo 'main(_) -> io:format("escript OK~n").' >> test_script + chmod +x test_script + mv test_script "$rootfs" + chroot "$rootfs" /usr/bin/escript test_script + + # test start_embedded to start the embedded environment + chroot "$rootfs" /usr/bin/start_embedded + + # test runcgi.sh from erlang-inets + chroot "$rootfs" /usr/lib/erlang/lib/inets-8.3.1.2/priv/bin/runcgi.sh /bin + + # test snmpc + chroot "$rootfs" snmpc /usr/lib/erlang/lib/snmp-5.13.5/mibs/STANDARD-MIB.mib From 1d35ccb50748f44182e84ed46c10422233aba8c5 Mon Sep 17 00:00:00 2001 From: Cristovao Cordeiro Date: Thu, 21 Nov 2024 09:51:49 +0100 Subject: [PATCH 03/23] Revert "feat(24.04): add erlang slices (#384)" (#393) This reverts commit 6ba20f9b3be324c3e13d532bb94136801cff1aff. --- slices/erlang-asn1.yaml | 22 ---------- slices/erlang-base.yaml | 45 ------------------- slices/erlang-crypto.yaml | 23 ---------- slices/erlang-eldap.yaml | 19 -------- slices/erlang-ftp.yaml | 19 -------- slices/erlang-inets.yaml | 27 ------------ slices/erlang-mnesia.yaml | 16 ------- slices/erlang-os-mon.yaml | 25 ----------- slices/erlang-parsetools.yaml | 16 ------- slices/erlang-public-key.yaml | 20 --------- slices/erlang-runtime-tools.yaml | 23 ---------- slices/erlang-snmp.yaml | 39 ----------------- slices/erlang-ssl.yaml | 21 --------- slices/erlang-syntax-tools.yaml | 17 -------- slices/erlang-tftp.yaml | 16 ------- slices/erlang-tools.yaml | 23 ---------- slices/erlang-xmerl.yaml | 16 ------- tests/spread/integration/erlang/task.yaml | 53 ----------------------- 18 files changed, 440 deletions(-) delete mode 100644 slices/erlang-asn1.yaml delete mode 100644 slices/erlang-base.yaml delete mode 100644 slices/erlang-crypto.yaml delete mode 100644 slices/erlang-eldap.yaml delete mode 100644 slices/erlang-ftp.yaml delete mode 100644 slices/erlang-inets.yaml delete mode 100644 slices/erlang-mnesia.yaml delete mode 100644 slices/erlang-os-mon.yaml delete mode 100644 slices/erlang-parsetools.yaml delete mode 100644 slices/erlang-public-key.yaml delete mode 100644 slices/erlang-runtime-tools.yaml delete mode 100644 slices/erlang-snmp.yaml delete mode 100644 slices/erlang-ssl.yaml delete mode 100644 slices/erlang-syntax-tools.yaml delete mode 100644 slices/erlang-tftp.yaml delete mode 100644 slices/erlang-tools.yaml delete mode 100644 slices/erlang-xmerl.yaml delete mode 100644 tests/spread/integration/erlang/task.yaml diff --git a/slices/erlang-asn1.yaml b/slices/erlang-asn1.yaml deleted file mode 100644 index efe9910a6..000000000 --- a/slices/erlang-asn1.yaml +++ /dev/null @@ -1,22 +0,0 @@ -package: erlang-asn1 - -essential: - - erlang-asn1_copyright - -slices: - libs: - essential: - - libc6_libs - contents: - /usr/lib/erlang/lib/asn1-*/priv/**: - - modules: - essential: - - erlang-base_bins - - erlang-base_modules - contents: - /usr/lib/erlang/lib/asn1-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-asn1/copyright: diff --git a/slices/erlang-base.yaml b/slices/erlang-base.yaml deleted file mode 100644 index 8f8c140e0..000000000 --- a/slices/erlang-base.yaml +++ /dev/null @@ -1,45 +0,0 @@ -package: erlang-base - -essential: - - erlang-base_copyright - -slices: - bins: - essential: - - bash_bins - - coreutils_bins - - erlang-base_modules - - libc6_libs - - libgcc-s1_libs - - libreadline8t64_libs - - libstdc++6_libs - - libsystemd0_libs - - libtinfo6_libs - - zlib1g_libs - contents: - /usr/bin/epmd: - /usr/bin/erl: - /usr/bin/erl_call: - /usr/bin/erlc: - /usr/bin/escript: - /usr/bin/run_erl: - /usr/bin/start_embedded: - /usr/bin/to_erl: - /usr/lib/erlang/bin/**: - /usr/lib/erlang/erts-*/bin/**: - /usr/lib/erlang/lib/erl_interface-*/bin/erl_call: - - modules: - contents: - /usr/lib/erlang/lib/compiler-*/ebin/**: - /usr/lib/erlang/lib/erts-*/ebin/**: - /usr/lib/erlang/lib/kernel-*/ebin/**: - /usr/lib/erlang/lib/kernel-*/include/**: - /usr/lib/erlang/lib/sasl-*/ebin/**: - /usr/lib/erlang/lib/stdlib-*/ebin/**: - /usr/lib/erlang/lib/stdlib-*/include/**: - /usr/lib/erlang/releases/**: - - copyright: - contents: - /usr/share/doc/erlang-base/copyright: diff --git a/slices/erlang-crypto.yaml b/slices/erlang-crypto.yaml deleted file mode 100644 index c6b51ff94..000000000 --- a/slices/erlang-crypto.yaml +++ /dev/null @@ -1,23 +0,0 @@ -package: erlang-crypto - -essential: - - erlang-crypto_copyright - -slices: - libs: - essential: - - libc6_libs - - libssl3t64_libs - contents: - /usr/lib/erlang/lib/crypto-*/priv/lib/**: - - modules: - essential: - - erlang-base_bins - - erlang-base_modules - contents: - /usr/lib/erlang/lib/crypto-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-crypto/copyright: diff --git a/slices/erlang-eldap.yaml b/slices/erlang-eldap.yaml deleted file mode 100644 index eb60d367d..000000000 --- a/slices/erlang-eldap.yaml +++ /dev/null @@ -1,19 +0,0 @@ -package: erlang-eldap - -essential: - - erlang-eldap_copyright - -slices: - modules: - essential: - - erlang-asn1_libs - - erlang-asn1_modules - - erlang-base_bins - - erlang-base_modules - - erlang-ssl_modules - contents: - /usr/lib/erlang/lib/eldap-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-eldap/copyright: diff --git a/slices/erlang-ftp.yaml b/slices/erlang-ftp.yaml deleted file mode 100644 index 5542bf431..000000000 --- a/slices/erlang-ftp.yaml +++ /dev/null @@ -1,19 +0,0 @@ -package: erlang-ftp - -essential: - - erlang-ftp_copyright - -slices: - modules: - essential: - - erlang-base_bins - - erlang-base_modules - - erlang-runtime-tools_libs - - erlang-runtime-tools_modules - - erlang-ssl_modules - contents: - /usr/lib/erlang/lib/ftp-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-ftp/copyright: diff --git a/slices/erlang-inets.yaml b/slices/erlang-inets.yaml deleted file mode 100644 index dbaf0072a..000000000 --- a/slices/erlang-inets.yaml +++ /dev/null @@ -1,27 +0,0 @@ -package: erlang-inets - -essential: - - erlang-inets_copyright - -slices: - scripts: - contents: - /usr/lib/erlang/lib/inets-*/priv/bin/runcgi.sh: - - modules: - essential: - - erlang-base_bins - - erlang-base_modules - - erlang-ftp_modules - - erlang-mnesia_modules - - erlang-runtime-tools_libs - - erlang-runtime-tools_modules - - erlang-ssl_modules - - erlang-tftp_modules - contents: - /usr/lib/erlang/lib/inets-*/ebin/**: - /usr/lib/erlang/lib/inets-*/include/**: - - copyright: - contents: - /usr/share/doc/erlang-inets/copyright: diff --git a/slices/erlang-mnesia.yaml b/slices/erlang-mnesia.yaml deleted file mode 100644 index 7a4d2d009..000000000 --- a/slices/erlang-mnesia.yaml +++ /dev/null @@ -1,16 +0,0 @@ -package: erlang-mnesia - -essential: - - erlang-mnesia_copyright - -slices: - modules: - essential: - - erlang-base_bins - - erlang-base_modules - contents: - /usr/lib/erlang/lib/mnesia-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-mnesia/copyright: diff --git a/slices/erlang-os-mon.yaml b/slices/erlang-os-mon.yaml deleted file mode 100644 index 67aba2b96..000000000 --- a/slices/erlang-os-mon.yaml +++ /dev/null @@ -1,25 +0,0 @@ -package: erlang-os-mon - -essential: - - erlang-os-mon_copyright - -slices: - bins: - essential: - - erlang-os-mon_modules - contents: - /usr/lib/erlang/lib/os_mon-*/priv/**: - - modules: - essential: - - erlang-base_bins - - erlang-base_modules - - erlang-mnesia_modules - - erlang-snmp_bins - - libc6_libs - contents: - /usr/lib/erlang/lib/os_mon-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-os-mon/copyright: diff --git a/slices/erlang-parsetools.yaml b/slices/erlang-parsetools.yaml deleted file mode 100644 index 0e54a331d..000000000 --- a/slices/erlang-parsetools.yaml +++ /dev/null @@ -1,16 +0,0 @@ -package: erlang-parsetools - -essential: - - erlang-parsetools_copyright - -slices: - modules: - essential: - - erlang-base_bins - - erlang-base_modules - contents: - /usr/lib/erlang/lib/parsetools-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-parsetools/copyright: diff --git a/slices/erlang-public-key.yaml b/slices/erlang-public-key.yaml deleted file mode 100644 index 143e72ac0..000000000 --- a/slices/erlang-public-key.yaml +++ /dev/null @@ -1,20 +0,0 @@ -package: erlang-public-key - -essential: - - erlang-public-key_copyright - -slices: - modules: - essential: - - erlang-asn1_libs - - erlang-asn1_modules - - erlang-base_bins - - erlang-base_modules - - erlang-crypto_libs - - erlang-crypto_modules - contents: - /usr/lib/erlang/lib/public_key-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-public-key/copyright: diff --git a/slices/erlang-runtime-tools.yaml b/slices/erlang-runtime-tools.yaml deleted file mode 100644 index 713f2f0f1..000000000 --- a/slices/erlang-runtime-tools.yaml +++ /dev/null @@ -1,23 +0,0 @@ -package: erlang-runtime-tools - -essential: - - erlang-runtime-tools_copyright - -slices: - libs: - essential: - - libc6_libs - contents: - /usr/lib/erlang/lib/runtime_tools-*/priv/**: - - modules: - essential: - - erlang-base_bins - - erlang-base_modules - - erlang-mnesia_modules - contents: - /usr/lib/erlang/lib/runtime_tools-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-runtime-tools/copyright: diff --git a/slices/erlang-snmp.yaml b/slices/erlang-snmp.yaml deleted file mode 100644 index c1fffcc89..000000000 --- a/slices/erlang-snmp.yaml +++ /dev/null @@ -1,39 +0,0 @@ -package: erlang-snmp - -essential: - - erlang-snmp_copyright - -slices: - bins: - essential: - - erlang-base_bins - - erlang-base_modules - - erlang-crypto_libs - - erlang-crypto_modules - - erlang-mnesia_modules - - erlang-runtime-tools_libs - - erlang-runtime-tools_modules - - erlang-snmp_config - - erlang-snmp_data - - erlang-snmp_modules - contents: - /usr/bin/snmpc: - /usr/lib/erlang/lib/snmp-*/bin/snmpc: - - config: - contents: - /usr/lib/erlang/lib/snmp-*/priv/conf/**: - - data: - contents: - /usr/lib/erlang/lib/snmp-*/mibs/**: - /usr/lib/erlang/lib/snmp-*/priv/mibs/**: - - modules: - contents: - /usr/lib/erlang/lib/snmp-*/ebin/**: - /usr/lib/erlang/lib/snmp-*/include/**: - - copyright: - contents: - /usr/share/doc/erlang-snmp/copyright: diff --git a/slices/erlang-ssl.yaml b/slices/erlang-ssl.yaml deleted file mode 100644 index 6cffbb6a9..000000000 --- a/slices/erlang-ssl.yaml +++ /dev/null @@ -1,21 +0,0 @@ -package: erlang-ssl - -essential: - - erlang-ssl_copyright - -slices: - modules: - essential: - - erlang-base_bins - - erlang-base_modules - - erlang-crypto_libs - - erlang-crypto_modules - - erlang-public-key_modules - - erlang-runtime-tools_libs - - erlang-runtime-tools_modules - contents: - /usr/lib/erlang/lib/ssl-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-ssl/copyright: diff --git a/slices/erlang-syntax-tools.yaml b/slices/erlang-syntax-tools.yaml deleted file mode 100644 index 4cead1b27..000000000 --- a/slices/erlang-syntax-tools.yaml +++ /dev/null @@ -1,17 +0,0 @@ -package: erlang-syntax-tools - -essential: - - erlang-syntax-tools_copyright - -slices: - modules: - essential: - - erlang-base_bins - - erlang-base_modules - contents: - /usr/lib/erlang/lib/syntax_tools-*/ebin/**: - /usr/lib/erlang/lib/syntax_tools-*/include/**: - - copyright: - contents: - /usr/share/doc/erlang-syntax-tools/copyright: diff --git a/slices/erlang-tftp.yaml b/slices/erlang-tftp.yaml deleted file mode 100644 index 8b7cca934..000000000 --- a/slices/erlang-tftp.yaml +++ /dev/null @@ -1,16 +0,0 @@ -package: erlang-tftp - -essential: - - erlang-tftp_copyright - -slices: - modules: - essential: - - erlang-base_bins - - erlang-base_modules - contents: - /usr/lib/erlang/lib/tftp-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-tftp/copyright: diff --git a/slices/erlang-tools.yaml b/slices/erlang-tools.yaml deleted file mode 100644 index d3af0cb43..000000000 --- a/slices/erlang-tools.yaml +++ /dev/null @@ -1,23 +0,0 @@ -package: erlang-tools - -essential: - - erlang-tools_copyright - -slices: - emacs-plugins: - contents: - /usr/lib/erlang/lib/tools-*/emacs/**: - - modules: - essential: - - erlang-base_bins - - erlang-base_modules - - erlang-runtime-tools_libs - - erlang-runtime-tools_modules - contents: - /usr/lib/erlang/lib/tools-*/ebin/**: - /usr/lib/erlang/lib/tools-*/priv/**: - - copyright: - contents: - /usr/share/doc/erlang-tools/copyright: diff --git a/slices/erlang-xmerl.yaml b/slices/erlang-xmerl.yaml deleted file mode 100644 index f41bc82f8..000000000 --- a/slices/erlang-xmerl.yaml +++ /dev/null @@ -1,16 +0,0 @@ -package: erlang-xmerl - -essential: - - erlang-xmerl_copyright - -slices: - modules: - essential: - - erlang-base_bins - - erlang-base_modules - contents: - /usr/lib/erlang/lib/xmerl-*/ebin/**: - - copyright: - contents: - /usr/share/doc/erlang-xmerl/copyright: diff --git a/tests/spread/integration/erlang/task.yaml b/tests/spread/integration/erlang/task.yaml deleted file mode 100644 index bc4fce22e..000000000 --- a/tests/spread/integration/erlang/task.yaml +++ /dev/null @@ -1,53 +0,0 @@ -summary: Integration tests for Erlang - -execute: | - # install slices - rootfs="$(install-slices \ - erlang-base_bins \ - erlang-inets_scripts \ - erlang-os-mon_bins \ - erlang-crypto_libs \ - erlang-crypto_modules \ - erlang-eldap_modules \ - erlang-mnesia_modules \ - erlang-parsetools_modules \ - erlang-public-key_modules \ - erlang-runtime-tools_libs \ - erlang-runtime-tools_modules \ - erlang-ssl_modules \ - erlang-syntax-tools_modules \ - erlang-tools_modules \ - erlang-xmerl_modules \ - base-files_base)" - - # preparing the test environment - mkdir -p "$rootfs"/bin "$rootfs"/etc "$rootfs"/dev "$rootfs"/root - cp /bin/sh "$rootfs"/bin/ - cp /etc/resolv.conf "$rootfs"/etc/ - cp /etc/nsswitch.conf "$rootfs"/etc/ - touch "$rootfs"/dev/null - chmod 777 "$rootfs"/dev/null - echo "cookie" > "$rootfs"/root/.erlang.cookie - chroot "$rootfs" chmod 400 /root/.erlang.cookie - - # test epmd daemon - chroot "$rootfs" /usr/bin/epmd -daemon - - # test erl eval - chroot "$rootfs" /usr/bin/erl -noshell -eval 'io:format("Erlang OK~n"), halt().' | grep "Erlang OK" - - # test escript by executing a simple script - echo '#!/usr/bin/escript' > test_script - echo 'main(_) -> io:format("escript OK~n").' >> test_script - chmod +x test_script - mv test_script "$rootfs" - chroot "$rootfs" /usr/bin/escript test_script - - # test start_embedded to start the embedded environment - chroot "$rootfs" /usr/bin/start_embedded - - # test runcgi.sh from erlang-inets - chroot "$rootfs" /usr/lib/erlang/lib/inets-8.3.1.2/priv/bin/runcgi.sh /bin - - # test snmpc - chroot "$rootfs" snmpc /usr/lib/erlang/lib/snmp-5.13.5/mibs/STANDARD-MIB.mib From caa9e2c09241b7a8cb1f3e4dd3d42f4468b8efed Mon Sep 17 00:00:00 2001 From: Linostar Date: Fri, 22 Nov 2024 12:54:47 +0200 Subject: [PATCH 04/23] feat(24.04): add python3 slice (#387) --- slices/libpython3-stdlib.yaml | 117 ++++++++++++++++++ slices/python3-minimal.yaml | 38 ++++++ slices/python3.yaml | 57 +++++++++ .../integration/python3-minimal/task.yaml | 15 +++ tests/spread/integration/python3/task.yaml | 14 +++ 5 files changed, 241 insertions(+) create mode 100644 slices/libpython3-stdlib.yaml create mode 100644 slices/python3-minimal.yaml create mode 100644 slices/python3.yaml create mode 100644 tests/spread/integration/python3-minimal/task.yaml create mode 100644 tests/spread/integration/python3/task.yaml diff --git a/slices/libpython3-stdlib.yaml b/slices/libpython3-stdlib.yaml new file mode 100644 index 000000000..536d4f215 --- /dev/null +++ b/slices/libpython3-stdlib.yaml @@ -0,0 +1,117 @@ +package: libpython3-stdlib + +essential: + - libpython3-stdlib_copyright + +slices: + core: + essential: + - libpython3.12-stdlib_core + + aix-support: + essential: + - libpython3.12-stdlib_aix-support + + all-os: + essential: + - libpython3.12-stdlib_all-os + + concurrency: + essential: + - libpython3.12-stdlib_concurrency + + crypto: + essential: + - libpython3.12-stdlib_crypto + + custom-interpreters: + essential: + - libpython3.12-stdlib_custom-interpreters + + data-persistence: + essential: + - libpython3.12-stdlib_data-persistence + + data-types: + essential: + - libpython3.12-stdlib_data-types + + debug: + essential: + - libpython3.12-stdlib_debug + + development-tools: + essential: + - libpython3.12-stdlib_development-tools + + distribution: + essential: + - libpython3.12-stdlib_distribution + + file-formats: + essential: + - libpython3.12-stdlib_file-formats + + filesys: + essential: + - libpython3.12-stdlib_filesys + + frameworks: + essential: + - libpython3.12-stdlib_frameworks + + importing: + essential: + - libpython3.12-stdlib_importing + + internet: + essential: + - libpython3.12-stdlib_internet + + ipc: + essential: + - libpython3.12-stdlib_ipc + + language: + essential: + - libpython3.12-stdlib_language + + markup-tools: + essential: + - libpython3.12-stdlib_markup-tools + + multimedia: + essential: + - libpython3.12-stdlib_multimedia + + net-data: + essential: + - libpython3.12-stdlib_net-data + + numeric: + essential: + - libpython3.12-stdlib_numeric + + osx-support: + essential: + - libpython3.12-stdlib_osx-support + + pydoc: + essential: + - libpython3.12-stdlib_pydoc + + text: + essential: + - libpython3.12-stdlib_text + + unix: + essential: + - libpython3.12-stdlib_unix + + extras: + essential: + - libpython3.12-stdlib_extras + + copyright: + contents: + /usr/share/doc/libpython3-stdlib/copyright: diff --git a/slices/python3-minimal.yaml b/slices/python3-minimal.yaml new file mode 100644 index 000000000..77123860f --- /dev/null +++ b/slices/python3-minimal.yaml @@ -0,0 +1,38 @@ +package: python3-minimal + +essential: + - python3-minimal_copyright + +slices: + bins: + essential: + - python3-minimal_py3compile + - python3-minimal_py3versions + - python3-minimal_python3 + + py3compile: + essential: + - python3-minimal_python3 + contents: + /usr/bin/py3clean: + /usr/bin/py3compile: + /usr/share/python3/debian_defaults: + /usr/share/python3/debpython/*: + + py3versions: + essential: + - python3-minimal_python3 + contents: + /usr/bin/py3versions: + /usr/share/python3/debian_defaults: + /usr/share/python3/py3versions.py: + + python3: + essential: + - python3.12-minimal_bins + contents: + /usr/bin/python3: + + copyright: + contents: + /usr/share/doc/python3-minimal/copyright: diff --git a/slices/python3.yaml b/slices/python3.yaml new file mode 100644 index 000000000..fee3ecb45 --- /dev/null +++ b/slices/python3.yaml @@ -0,0 +1,57 @@ +package: python3 + +essential: + - python3_copyright + +slices: + core: + essential: + - libpython3-stdlib_core + - python3-minimal_python3 + - python3.12_core + + standard: + essential: + - libpython3-stdlib_aix-support + - libpython3-stdlib_all-os + - libpython3-stdlib_concurrency + - libpython3-stdlib_crypto + - libpython3-stdlib_custom-interpreters + - libpython3-stdlib_data-persistence + - libpython3-stdlib_data-types + - libpython3-stdlib_debug + - libpython3-stdlib_development-tools + - libpython3-stdlib_distribution + - libpython3-stdlib_extras + - libpython3-stdlib_file-formats + - libpython3-stdlib_filesys + - libpython3-stdlib_frameworks + - libpython3-stdlib_importing + - libpython3-stdlib_internet + - libpython3-stdlib_ipc + - libpython3-stdlib_language + - libpython3-stdlib_markup-tools + - libpython3-stdlib_multimedia + - libpython3-stdlib_net-data + - libpython3-stdlib_numeric + - libpython3-stdlib_osx-support + - libpython3-stdlib_pydoc + - libpython3-stdlib_text + - libpython3-stdlib_unix + - python3-minimal_bins + - python3.12_standard + - python3_core + + utils: + essential: + - libpython3-stdlib_debug + - libpython3-stdlib_pydoc + - python3.12_utils + contents: + /usr/bin/pdb3: + /usr/bin/pydoc3: + /usr/bin/pygettext3: + + copyright: + contents: + /usr/share/doc/python3/copyright: diff --git a/tests/spread/integration/python3-minimal/task.yaml b/tests/spread/integration/python3-minimal/task.yaml new file mode 100644 index 000000000..6bd051093 --- /dev/null +++ b/tests/spread/integration/python3-minimal/task.yaml @@ -0,0 +1,15 @@ +summary: Integration tests for python3-minimal + +execute: | + # test python3 binary + rootfs_bins="$(install-slices python3-minimal_bins)" + chroot "$rootfs_bins" python3 -c "print('Hello World')" + + # test py3versions + rootfs_py3versions="$(install-slices python3-minimal_py3versions)" + chroot "$rootfs_py3versions" py3versions -d | grep "python3.12" + + # test py3compile + rootfs_py3compile="$(install-slices python3-minimal_py3compile)" + chroot "$rootfs_py3compile" py3compile -h + chroot "$rootfs_py3compile" py3clean -h diff --git a/tests/spread/integration/python3/task.yaml b/tests/spread/integration/python3/task.yaml new file mode 100644 index 000000000..8e4531da6 --- /dev/null +++ b/tests/spread/integration/python3/task.yaml @@ -0,0 +1,14 @@ +summary: Integration tests for Python3 + +environment: + SLICE/core: "core" + SLICE/standard: "standard" + +execute: | + # Test different slice installations + echo "SLICE=${SLICE}" + + rootfs="$(install-slices python3_${SLICE})" + + cp ../python3.12/test_${SLICE}.py "${rootfs}/" + chroot "$rootfs" python3 /test_${SLICE}.py From fe2144ab09f265057829ea65d5a616c4308c0a9d Mon Sep 17 00:00:00 2001 From: Linostar Date: Fri, 22 Nov 2024 13:42:20 +0200 Subject: [PATCH 05/23] feat(24.04): add erlang slices (#394) --- slices/coreutils.yaml | 8 +++- slices/erlang-asn1.yaml | 22 +++++++++ slices/erlang-base.yaml | 44 +++++++++++++++++ slices/erlang-crypto.yaml | 23 +++++++++ slices/erlang-eldap.yaml | 19 ++++++++ slices/erlang-ftp.yaml | 19 ++++++++ slices/erlang-inets.yaml | 27 +++++++++++ slices/erlang-mnesia.yaml | 16 +++++++ slices/erlang-os-mon.yaml | 25 ++++++++++ slices/erlang-parsetools.yaml | 16 +++++++ slices/erlang-public-key.yaml | 20 ++++++++ slices/erlang-runtime-tools.yaml | 23 +++++++++ slices/erlang-snmp.yaml | 39 +++++++++++++++ slices/erlang-ssl.yaml | 21 ++++++++ slices/erlang-syntax-tools.yaml | 17 +++++++ slices/erlang-tftp.yaml | 16 +++++++ slices/erlang-tools.yaml | 23 +++++++++ slices/erlang-xmerl.yaml | 16 +++++++ tests/spread/integration/coreutils/task.yaml | 4 ++ tests/spread/integration/erlang/task.yaml | 50 ++++++++++++++++++++ 20 files changed, 447 insertions(+), 1 deletion(-) create mode 100644 slices/erlang-asn1.yaml create mode 100644 slices/erlang-base.yaml create mode 100644 slices/erlang-crypto.yaml create mode 100644 slices/erlang-eldap.yaml create mode 100644 slices/erlang-ftp.yaml create mode 100644 slices/erlang-inets.yaml create mode 100644 slices/erlang-mnesia.yaml create mode 100644 slices/erlang-os-mon.yaml create mode 100644 slices/erlang-parsetools.yaml create mode 100644 slices/erlang-public-key.yaml create mode 100644 slices/erlang-runtime-tools.yaml create mode 100644 slices/erlang-snmp.yaml create mode 100644 slices/erlang-ssl.yaml create mode 100644 slices/erlang-syntax-tools.yaml create mode 100644 slices/erlang-tftp.yaml create mode 100644 slices/erlang-tools.yaml create mode 100644 slices/erlang-xmerl.yaml create mode 100644 tests/spread/integration/erlang/task.yaml diff --git a/slices/coreutils.yaml b/slices/coreutils.yaml index 38b819b98..cb00c1b61 100644 --- a/slices/coreutils.yaml +++ b/slices/coreutils.yaml @@ -12,6 +12,7 @@ slices: bins: essential: + - coreutils_env - coreutils_expr - coreutils_libs - coreutils_mkdir @@ -49,7 +50,6 @@ slices: /usr/bin/dirname: /usr/bin/du: /usr/bin/echo: - /usr/bin/env: /usr/bin/expand: /usr/bin/factor: /usr/bin/false: @@ -129,6 +129,12 @@ slices: /usr/bin/yes: /usr/sbin/chroot: + env: + essential: + - libc6_libs + contents: + /usr/bin/env: + expr: essential: - libc6_libs diff --git a/slices/erlang-asn1.yaml b/slices/erlang-asn1.yaml new file mode 100644 index 000000000..efe9910a6 --- /dev/null +++ b/slices/erlang-asn1.yaml @@ -0,0 +1,22 @@ +package: erlang-asn1 + +essential: + - erlang-asn1_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/erlang/lib/asn1-*/priv/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/asn1-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-asn1/copyright: diff --git a/slices/erlang-base.yaml b/slices/erlang-base.yaml new file mode 100644 index 000000000..ab093fa53 --- /dev/null +++ b/slices/erlang-base.yaml @@ -0,0 +1,44 @@ +package: erlang-base + +essential: + - erlang-base_copyright + +slices: + bins: + essential: + - bash_bins + - coreutils_env + - erlang-base_modules + - libc6_libs + - libgcc-s1_libs + - libstdc++6_libs + - libsystemd0_libs + - libtinfo6_libs + - zlib1g_libs + contents: + /usr/bin/epmd: + /usr/bin/erl: + /usr/bin/erl_call: + /usr/bin/erlc: + /usr/bin/escript: + /usr/bin/run_erl: + /usr/bin/start_embedded: + /usr/bin/to_erl: + /usr/lib/erlang/bin/**: + /usr/lib/erlang/erts-*/bin/**: + /usr/lib/erlang/lib/erl_interface-*/bin/erl_call: + + modules: + contents: + /usr/lib/erlang/lib/compiler-*/ebin/**: + /usr/lib/erlang/lib/erts-*/ebin/**: + /usr/lib/erlang/lib/kernel-*/ebin/**: + /usr/lib/erlang/lib/kernel-*/include/**: + /usr/lib/erlang/lib/sasl-*/ebin/**: + /usr/lib/erlang/lib/stdlib-*/ebin/**: + /usr/lib/erlang/lib/stdlib-*/include/**: + /usr/lib/erlang/releases/**: + + copyright: + contents: + /usr/share/doc/erlang-base/copyright: diff --git a/slices/erlang-crypto.yaml b/slices/erlang-crypto.yaml new file mode 100644 index 000000000..c6b51ff94 --- /dev/null +++ b/slices/erlang-crypto.yaml @@ -0,0 +1,23 @@ +package: erlang-crypto + +essential: + - erlang-crypto_copyright + +slices: + libs: + essential: + - libc6_libs + - libssl3t64_libs + contents: + /usr/lib/erlang/lib/crypto-*/priv/lib/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/crypto-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-crypto/copyright: diff --git a/slices/erlang-eldap.yaml b/slices/erlang-eldap.yaml new file mode 100644 index 000000000..eb60d367d --- /dev/null +++ b/slices/erlang-eldap.yaml @@ -0,0 +1,19 @@ +package: erlang-eldap + +essential: + - erlang-eldap_copyright + +slices: + modules: + essential: + - erlang-asn1_libs + - erlang-asn1_modules + - erlang-base_bins + - erlang-base_modules + - erlang-ssl_modules + contents: + /usr/lib/erlang/lib/eldap-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-eldap/copyright: diff --git a/slices/erlang-ftp.yaml b/slices/erlang-ftp.yaml new file mode 100644 index 000000000..5542bf431 --- /dev/null +++ b/slices/erlang-ftp.yaml @@ -0,0 +1,19 @@ +package: erlang-ftp + +essential: + - erlang-ftp_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + - erlang-ssl_modules + contents: + /usr/lib/erlang/lib/ftp-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-ftp/copyright: diff --git a/slices/erlang-inets.yaml b/slices/erlang-inets.yaml new file mode 100644 index 000000000..dbaf0072a --- /dev/null +++ b/slices/erlang-inets.yaml @@ -0,0 +1,27 @@ +package: erlang-inets + +essential: + - erlang-inets_copyright + +slices: + scripts: + contents: + /usr/lib/erlang/lib/inets-*/priv/bin/runcgi.sh: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-ftp_modules + - erlang-mnesia_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + - erlang-ssl_modules + - erlang-tftp_modules + contents: + /usr/lib/erlang/lib/inets-*/ebin/**: + /usr/lib/erlang/lib/inets-*/include/**: + + copyright: + contents: + /usr/share/doc/erlang-inets/copyright: diff --git a/slices/erlang-mnesia.yaml b/slices/erlang-mnesia.yaml new file mode 100644 index 000000000..7a4d2d009 --- /dev/null +++ b/slices/erlang-mnesia.yaml @@ -0,0 +1,16 @@ +package: erlang-mnesia + +essential: + - erlang-mnesia_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/mnesia-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-mnesia/copyright: diff --git a/slices/erlang-os-mon.yaml b/slices/erlang-os-mon.yaml new file mode 100644 index 000000000..67aba2b96 --- /dev/null +++ b/slices/erlang-os-mon.yaml @@ -0,0 +1,25 @@ +package: erlang-os-mon + +essential: + - erlang-os-mon_copyright + +slices: + bins: + essential: + - erlang-os-mon_modules + contents: + /usr/lib/erlang/lib/os_mon-*/priv/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-mnesia_modules + - erlang-snmp_bins + - libc6_libs + contents: + /usr/lib/erlang/lib/os_mon-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-os-mon/copyright: diff --git a/slices/erlang-parsetools.yaml b/slices/erlang-parsetools.yaml new file mode 100644 index 000000000..0e54a331d --- /dev/null +++ b/slices/erlang-parsetools.yaml @@ -0,0 +1,16 @@ +package: erlang-parsetools + +essential: + - erlang-parsetools_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/parsetools-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-parsetools/copyright: diff --git a/slices/erlang-public-key.yaml b/slices/erlang-public-key.yaml new file mode 100644 index 000000000..143e72ac0 --- /dev/null +++ b/slices/erlang-public-key.yaml @@ -0,0 +1,20 @@ +package: erlang-public-key + +essential: + - erlang-public-key_copyright + +slices: + modules: + essential: + - erlang-asn1_libs + - erlang-asn1_modules + - erlang-base_bins + - erlang-base_modules + - erlang-crypto_libs + - erlang-crypto_modules + contents: + /usr/lib/erlang/lib/public_key-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-public-key/copyright: diff --git a/slices/erlang-runtime-tools.yaml b/slices/erlang-runtime-tools.yaml new file mode 100644 index 000000000..713f2f0f1 --- /dev/null +++ b/slices/erlang-runtime-tools.yaml @@ -0,0 +1,23 @@ +package: erlang-runtime-tools + +essential: + - erlang-runtime-tools_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/erlang/lib/runtime_tools-*/priv/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-mnesia_modules + contents: + /usr/lib/erlang/lib/runtime_tools-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-runtime-tools/copyright: diff --git a/slices/erlang-snmp.yaml b/slices/erlang-snmp.yaml new file mode 100644 index 000000000..c1fffcc89 --- /dev/null +++ b/slices/erlang-snmp.yaml @@ -0,0 +1,39 @@ +package: erlang-snmp + +essential: + - erlang-snmp_copyright + +slices: + bins: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-crypto_libs + - erlang-crypto_modules + - erlang-mnesia_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + - erlang-snmp_config + - erlang-snmp_data + - erlang-snmp_modules + contents: + /usr/bin/snmpc: + /usr/lib/erlang/lib/snmp-*/bin/snmpc: + + config: + contents: + /usr/lib/erlang/lib/snmp-*/priv/conf/**: + + data: + contents: + /usr/lib/erlang/lib/snmp-*/mibs/**: + /usr/lib/erlang/lib/snmp-*/priv/mibs/**: + + modules: + contents: + /usr/lib/erlang/lib/snmp-*/ebin/**: + /usr/lib/erlang/lib/snmp-*/include/**: + + copyright: + contents: + /usr/share/doc/erlang-snmp/copyright: diff --git a/slices/erlang-ssl.yaml b/slices/erlang-ssl.yaml new file mode 100644 index 000000000..6cffbb6a9 --- /dev/null +++ b/slices/erlang-ssl.yaml @@ -0,0 +1,21 @@ +package: erlang-ssl + +essential: + - erlang-ssl_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-crypto_libs + - erlang-crypto_modules + - erlang-public-key_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + contents: + /usr/lib/erlang/lib/ssl-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-ssl/copyright: diff --git a/slices/erlang-syntax-tools.yaml b/slices/erlang-syntax-tools.yaml new file mode 100644 index 000000000..4cead1b27 --- /dev/null +++ b/slices/erlang-syntax-tools.yaml @@ -0,0 +1,17 @@ +package: erlang-syntax-tools + +essential: + - erlang-syntax-tools_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/syntax_tools-*/ebin/**: + /usr/lib/erlang/lib/syntax_tools-*/include/**: + + copyright: + contents: + /usr/share/doc/erlang-syntax-tools/copyright: diff --git a/slices/erlang-tftp.yaml b/slices/erlang-tftp.yaml new file mode 100644 index 000000000..8b7cca934 --- /dev/null +++ b/slices/erlang-tftp.yaml @@ -0,0 +1,16 @@ +package: erlang-tftp + +essential: + - erlang-tftp_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/tftp-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-tftp/copyright: diff --git a/slices/erlang-tools.yaml b/slices/erlang-tools.yaml new file mode 100644 index 000000000..d3af0cb43 --- /dev/null +++ b/slices/erlang-tools.yaml @@ -0,0 +1,23 @@ +package: erlang-tools + +essential: + - erlang-tools_copyright + +slices: + emacs-plugins: + contents: + /usr/lib/erlang/lib/tools-*/emacs/**: + + modules: + essential: + - erlang-base_bins + - erlang-base_modules + - erlang-runtime-tools_libs + - erlang-runtime-tools_modules + contents: + /usr/lib/erlang/lib/tools-*/ebin/**: + /usr/lib/erlang/lib/tools-*/priv/**: + + copyright: + contents: + /usr/share/doc/erlang-tools/copyright: diff --git a/slices/erlang-xmerl.yaml b/slices/erlang-xmerl.yaml new file mode 100644 index 000000000..f41bc82f8 --- /dev/null +++ b/slices/erlang-xmerl.yaml @@ -0,0 +1,16 @@ +package: erlang-xmerl + +essential: + - erlang-xmerl_copyright + +slices: + modules: + essential: + - erlang-base_bins + - erlang-base_modules + contents: + /usr/lib/erlang/lib/xmerl-*/ebin/**: + + copyright: + contents: + /usr/share/doc/erlang-xmerl/copyright: diff --git a/tests/spread/integration/coreutils/task.yaml b/tests/spread/integration/coreutils/task.yaml index 7b1641393..32cd0d624 100644 --- a/tests/spread/integration/coreutils/task.yaml +++ b/tests/spread/integration/coreutils/task.yaml @@ -9,3 +9,7 @@ execute: | rootfs_mkdir="$(install-slices coreutils_mkdir)" chroot "$rootfs_mkdir" mkdir test_dir test -d "$rootfs_mkdir/test_dir" + + # test env + rootfs_env="$(install-slices coreutils_env)" + chroot "$rootfs_env" env --version diff --git a/tests/spread/integration/erlang/task.yaml b/tests/spread/integration/erlang/task.yaml new file mode 100644 index 000000000..2b873f8d2 --- /dev/null +++ b/tests/spread/integration/erlang/task.yaml @@ -0,0 +1,50 @@ +summary: Integration tests for Erlang + +execute: | + # install slices + rootfs="$(install-slices \ + erlang-base_bins \ + erlang-inets_scripts \ + erlang-os-mon_bins \ + erlang-crypto_libs \ + erlang-crypto_modules \ + erlang-eldap_modules \ + erlang-mnesia_modules \ + erlang-parsetools_modules \ + erlang-public-key_modules \ + erlang-runtime-tools_libs \ + erlang-runtime-tools_modules \ + erlang-ssl_modules \ + erlang-syntax-tools_modules \ + erlang-tools_modules \ + erlang-xmerl_modules \ + base-files_base)" + + # preparing the test environment + mkdir -p "$rootfs"/bin "$rootfs"/etc "$rootfs"/dev "$rootfs"/root + cp /bin/sh "$rootfs"/bin/ + cp /etc/resolv.conf "$rootfs"/etc/ + cp /etc/nsswitch.conf "$rootfs"/etc/ + touch "$rootfs"/dev/null + echo "cookie" > "$rootfs"/root/.erlang.cookie + + # test epmd daemon + chroot "$rootfs" /usr/bin/epmd -daemon + + # test erl eval + chroot "$rootfs" /usr/bin/erl -noshell -eval 'io:format("Erlang OK~n"), halt().' | grep "Erlang OK" + + # test escript by executing a simple script + echo '#!/usr/bin/escript' > test_script + echo 'main(_) -> io:format("escript OK~n").' >> test_script + mv test_script "$rootfs" + chroot "$rootfs" /usr/bin/escript test_script + + # test start_embedded to start the embedded environment + chroot "$rootfs" /usr/bin/start_embedded + + # test runcgi.sh from erlang-inets + chroot "$rootfs" /usr/lib/erlang/lib/inets-8.3.1.2/priv/bin/runcgi.sh /bin + + # test snmpc + chroot "$rootfs" snmpc /usr/lib/erlang/lib/snmp-5.13.5/mibs/STANDARD-MIB.mib From 514345175957bd0027db1de2c3e2d24ccaed64fa Mon Sep 17 00:00:00 2001 From: Adrian Clay Lake Date: Mon, 25 Nov 2024 15:26:42 +0100 Subject: [PATCH 06/23] feat: add new slice definitions for 'git' and dependancies (#282) Co-authored-by: Alex Lowe --- slices/git.yaml | 59 +++++++ slices/libcurl3t64-gnutls.yaml | 27 +++ slices/python3-pyftpdlib.yaml | 15 ++ tests/spread/integration/git/task.yaml | 157 ++++++++++++++++++ .../integration/python3-pyftpdlib/task.yaml | 64 +++++++ 5 files changed, 322 insertions(+) create mode 100644 slices/git.yaml create mode 100644 slices/libcurl3t64-gnutls.yaml create mode 100644 slices/python3-pyftpdlib.yaml create mode 100644 tests/spread/integration/git/task.yaml create mode 100644 tests/spread/integration/python3-pyftpdlib/task.yaml diff --git a/slices/git.yaml b/slices/git.yaml new file mode 100644 index 000000000..8d69e074a --- /dev/null +++ b/slices/git.yaml @@ -0,0 +1,59 @@ +package: git + +essential: + - git_copyright + +slices: + bins: + # Basic functionality including: + # - add + # - blame + # - branch + # - checkout + # - commit + # - config + # - diff + # - fetch + # - init + # - log + # - merge + # - rev-list + # - status + essential: + - libc6_libs + - libpcre2-8-0_libs + - zlib1g_libs + contents: + # /usr/bin/git is a regular file in the package, but shares + # the same hash of /usr/lib/git-core/git. That's why this + # is added as a symlink to reduce space. + /usr/bin/git: { symlink: /usr/lib/git-core/git } + /usr/lib/git-core/git: + + daemon: + # Adds support for cloning over git daemon + essential: + - git_bins + contents: + /usr/lib/git-core/git-daemon: + + http-support: + # Adds support for cloning over HTTP e.g. git clone https://... + essential: + - git_bins + - libcurl3t64-gnutls_libs + - libexpat1_libs + contents: + /usr/lib/git-core/git-remote-http: + /usr/lib/git-core/git-remote-https: # link pointing to git-remote-http + + ftp-support: + # Adds support for cloning over FTP e.g. git clone ftp://... + essential: + - git_http-support + contents: + /usr/lib/git-core/git-remote-ftp: + + copyright: + contents: + /usr/share/doc/git/copyright: diff --git a/slices/libcurl3t64-gnutls.yaml b/slices/libcurl3t64-gnutls.yaml new file mode 100644 index 000000000..e4452ae20 --- /dev/null +++ b/slices/libcurl3t64-gnutls.yaml @@ -0,0 +1,27 @@ +package: libcurl3t64-gnutls + +essential: + - libcurl3t64-gnutls_copyright + +slices: + libs: + essential: + - libbrotli1_libs + - libc6_libs + - libgnutls30t64_libs + - libgssapi-krb5-2_libs + - libidn2-0_libs + - libldap2_libs + - libnettle8t64_libs + - libnghttp2-14_libs + - libpsl5t64_libs + - librtmp1_libs + - libssh-4_libs + - libzstd1_libs + - zlib1g_libs + contents: + /usr/lib/*-linux-*/libcurl-gnutls.so.*: + + copyright: + contents: + /usr/share/doc/libcurl3t64-gnutls/copyright: diff --git a/slices/python3-pyftpdlib.yaml b/slices/python3-pyftpdlib.yaml new file mode 100644 index 000000000..380da1b73 --- /dev/null +++ b/slices/python3-pyftpdlib.yaml @@ -0,0 +1,15 @@ +package: python3-pyftpdlib + +essential: + - python3-pyftpdlib_copyright + +slices: + libs: + essential: + - python3_standard + contents: + /usr/lib/python3/dist-packages/pyftpdlib/*.py: + + copyright: + contents: + /usr/share/doc/python3-pyftpdlib/copyright: diff --git a/tests/spread/integration/git/task.yaml b/tests/spread/integration/git/task.yaml new file mode 100644 index 000000000..26a99eab3 --- /dev/null +++ b/tests/spread/integration/git/task.yaml @@ -0,0 +1,157 @@ +summary: Integration tests for git + +environment: + EXTRA_SLICES: "" # No extra slices by default. + # test git_bins + RUN/bins: test_bins + SLICE/bins: git_bins + # test git_http-support + RUN/http_support: test_http_support + SLICE/http_support: git_http-support + EXTRA_SLICES/http_support: ca-certificates_data + # test git_ftp-support + RUN/ftp_support: test_ftp_support + SLICE/ftp_support: git_ftp-support + # test git_daemon + RUN/daemon_support: test_daemon_support + SLICE/daemon_support: git_daemon + +execute: | + + git_rootfs="/" + function chroot_git(){ + # execute git within chroot. We use -C to cd since + # we have no $SHELL to navigate with. + repo="$(realpath -e --relative-to="$git_rootfs" "$PWD")" + chroot "$git_rootfs" /usr/bin/git -C "$repo" "$@" + } + + function setup(){ + mkdir -p "$1/dev/" + mkdir -p "$1/etc/" + + # fake essentials + touch "$1/dev/null" + head -c 500 /dev/urandom > "$1/dev/urandom" + cp /etc/resolv.conf $1/etc/ + mkdir "$1/root" + + # configure + git_rootfs="$1" + pushd "$1" + + } + + function cleanup(){ + popd + } + + function test_bins(){ + chroot_git init + chroot_git config user.email "root@localhost" + chroot_git config user.name "Test Runner" + + echo "Test" > "$1/test.txt" + chroot_git add test.txt + chroot_git commit -m 'test commit' + + chroot_git --no-pager status + chroot_git --no-pager log + + chroot_git blame -L 1,1 test.txt + [[ $(chroot_git ls-files) == "test.txt" ]] + + chroot_git checkout -b test + + chroot_git --no-pager diff master + chroot_git branch + chroot_git checkout master + chroot_git merge test + } + + function test_http_support(){ + chroot_git clone --depth 1 https://git.launchpad.net/ubuntu/+source/hello hello + cd $_ + + chroot_git --no-pager log + chroot_git fetch origin + chroot_git --no-pager branch --remotes --contains $(chroot_git rev-list -n 1 HEAD) + } + + function test_ftp_support(){ + ftp_root=$(install-slices python3-pyftpdlib_libs) + + mkdir -p srv/git/ftp-src + pushd $_ + chroot_git init --bare + chroot_git update-server-info + popd + + cp -r $1/srv $ftp_root + + pushd $ftp_root/srv/git + chroot $ftp_root /usr/bin/python3 -m pyftpdlib -V -p 2121 -d /srv/git & + pyftpdlib_pid=$! + popd + + # wait for server port to become available + while ! fuser 2121/tcp > /dev/null 2>&1 + do + if ! test -d /proc/$pyftpdlib_pid + then + echo "pyftpdlib exited early" + exit 1 + fi + sleep 1 + done + + # Test cloning the repo + chroot_git clone ftp://localhost:2121/ftp-src ftp-dst + + # cleanup + kill -TERM $(fuser 2121/tcp 2>/dev/null) + } + + function test_daemon_support(){ + mkdir -p $1/srv/git/daemon-src + + pushd $1/srv/git/daemon-src + git init + touch test-file + chroot_git add test-file + chroot_git config user.email "root@localhost" + chroot_git config user.name "Test Runner" + chroot_git commit -m "Hello daemon" + popd + + chroot_git daemon \ + --base-path=/srv/git \ + --reuseaddr \ + --listen=127.0.0.1 \ + --verbose \ + --export-all & + daemon_pid=$! + + + # Wait for daemon to start + while ! fuser 9418/tcp > /dev/null 2>&1 + do + if ! test -d /proc/$daemon_pid + then + echo "daemon exited early" + exit 1 + fi + sleep 1 + done + + # Test cloning the repo + chroot_git clone git://localhost/daemon-src daemon-dst + + # Cleanup. TERM or KILL cause git to return an en error. + kill -INT $(fuser 9418/tcp 2>/dev/null) + } + + rootfs=$(install-slices $SLICE $EXTRA_SLICES) + setup $rootfs + $RUN $rootfs + cleanup diff --git a/tests/spread/integration/python3-pyftpdlib/task.yaml b/tests/spread/integration/python3-pyftpdlib/task.yaml new file mode 100644 index 000000000..0bea14e88 --- /dev/null +++ b/tests/spread/integration/python3-pyftpdlib/task.yaml @@ -0,0 +1,64 @@ +summary: Integration tests for python3-pyftpdlib + +execute: | + function wait_for_ftp(){ + sleep 0.3 + while ! nc -z 127.0.0.1 2121 + do + test -d /proc/$pyftpdlib_pid || (echo "pyftpdlib exited early"; exit 1) + sleep 1 + done + } + function cleanup(){ + while [[ -d /proc/$pyftpdlib_pid ]]; do + kill $pyftpdlib_pid || true + sleep 0.1 + done + } + # Still run the cleanup even on test failure. + trap cleanup EXIT + + rootfs="$(install-slices python3-pyftpdlib_libs)" + mkdir "${rootfs}/dev" + mount --bind /dev "${rootfs}/dev" + mkdir -p "${rootfs}"/srv/subdir + echo "Test file" > "${rootfs}"/srv/subdir/test-file + + # Basic install smoke test + + chroot "${rootfs}" python3 -m pyftpdlib --help + + # Anonymous hosting + + chroot "${rootfs}" /usr/bin/python3 -m pyftpdlib \ + --verbose \ + --interface=127.0.0.1 \ + --port=2121 \ + --directory=/srv & + export pyftpdlib_pid=$! + wait_for_ftp + + [[ "$(curl ftp://127.0.0.1:2121/subdir/test-file)" == "Test file" ]] + + cleanup + + # With login and file upload. + + chroot "${rootfs}" /usr/bin/python3 -m pyftpdlib \ + --verbose \ + --interface=127.0.0.1 \ + --port=2121 \ + --directory=/srv \ + --write \ + --username=testy \ + --password=testy & + export pyftpdlib_pid=$! + wait_for_ftp + + [[ "$(curl ftp://testy:testy@127.0.0.1:2121/subdir/test-file)" == "Test file" ]] + + echo "Test upload" > test-upload + curl -T test-upload ftp://testy:testy@127.0.0.1:2121/test-upload + [[ "$(cat "${rootfs}/srv/test-upload")" == "$(cat test-upload)" ]] + + cleanup From de9b7109265d0e632f79955eb67512eeef9dab7d Mon Sep 17 00:00:00 2001 From: Cristovao Cordeiro Date: Mon, 25 Nov 2024 17:16:37 +0100 Subject: [PATCH 07/23] fix(libsubid4): typo in essential (#397) Co-authored-by: letfunny --- slices/libsubid4.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slices/libsubid4.yaml b/slices/libsubid4.yaml index 010e04451..b70909624 100644 --- a/slices/libsubid4.yaml +++ b/slices/libsubid4.yaml @@ -1,6 +1,6 @@ package: libsubid4 -esential: +essential: - libsubid4_copyright slices: From ce2e33379a460678aeb5f5f33d1e2490f976d625 Mon Sep 17 00:00:00 2001 From: Hadrien Patte Date: Tue, 26 Nov 2024 08:57:07 +0100 Subject: [PATCH 08/23] feat(24.04): Add SDF for librdkafka++1 (#399) --- slices/librdkafka++1.yaml | 18 ++++++++++++++++++ slices/librdkafka1.yaml | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 slices/librdkafka++1.yaml create mode 100644 slices/librdkafka1.yaml diff --git a/slices/librdkafka++1.yaml b/slices/librdkafka++1.yaml new file mode 100644 index 000000000..5b682ec30 --- /dev/null +++ b/slices/librdkafka++1.yaml @@ -0,0 +1,18 @@ +package: librdkafka++1 + +essential: + - librdkafka++1_copyright + +slices: + libs: + essential: + - libc6_libs + - libgcc-s1_libs + - librdkafka1_libs + - libstdc++6_libs + contents: + /usr/lib/*-linux-*/librdkafka++.so.1: + + copyright: + contents: + /usr/share/doc/librdkafka++1/copyright: diff --git a/slices/librdkafka1.yaml b/slices/librdkafka1.yaml new file mode 100644 index 000000000..7cbb479d7 --- /dev/null +++ b/slices/librdkafka1.yaml @@ -0,0 +1,20 @@ +package: librdkafka1 + +essential: + - librdkafka1_copyright + +slices: + libs: + essential: + - libc6_libs + - liblz4-1_libs + - libsasl2-2_libs + - libssl3t64_libs + - libzstd1_libs + - zlib1g_libs + contents: + /usr/lib/*-linux-*/librdkafka.so.1: + + copyright: + contents: + /usr/share/doc/librdkafka1/copyright: From 4bed3dcee0850ef9ff78942dd8941252afde8322 Mon Sep 17 00:00:00 2001 From: Rafid Bin Mostofa Date: Tue, 26 Nov 2024 15:03:37 +0100 Subject: [PATCH 09/23] fix(24.04/libnss3): libs should contain all libraries (#395) forward porting from 22.04 --- slices/libnss3.yaml | 22 +++++++++++++++++++ slices/openjdk-11-jre-headless.yaml | 2 +- slices/openjdk-17-jre-headless.yaml | 2 +- slices/openjdk-21-jre-headless.yaml | 2 +- slices/openjdk-8-jre-headless.yaml | 2 +- .../openjdk-11-jdk-headless/task.yaml | 3 +++ .../openjdk-11-jre-headless/task.yaml | 5 +++++ .../openjdk-17-jdk-headless/task.yaml | 3 +++ .../openjdk-17-jre-headless/task.yaml | 5 +++++ .../openjdk-21-jdk-headless/task.yaml | 3 +++ .../openjdk-21-jre-headless/task.yaml | 5 +++++ 11 files changed, 50 insertions(+), 4 deletions(-) diff --git a/slices/libnss3.yaml b/slices/libnss3.yaml index d7e4bb813..db5c002e5 100644 --- a/slices/libnss3.yaml +++ b/slices/libnss3.yaml @@ -1,10 +1,25 @@ +# Network Security Service libraries. +# +# This is a set of libraries designed to support cross-platform development of +# security-enabled client and server applications. It can support SSLv2 and v4, +# TLS, PKCS #5, #7, #11, #12, S/MIME, X.509 v3 certificates and other security +# standards. package: libnss3 essential: - libnss3_copyright slices: + # The libs slice contains all the libraries coming from this package. libs: + essential: + # This package still has many other libraries which are not part of any + # slices yet. Upon creation of new slices containing those libraries, + # make sure to add those slices in this list. + - libnss3_nss + - libnss3_smime + + nss: essential: - libc6_libs - libnspr4_libs @@ -13,6 +28,13 @@ slices: /usr/lib/*-linux-*/libnss3.so: /usr/lib/*-linux-*/libnssutil3.so: + smime: + essential: + - libc6_libs + - libnspr4_libs + contents: + /usr/lib/*-linux-*/libsmime3.so: + copyright: contents: /usr/share/doc/libnss3/copyright: diff --git a/slices/openjdk-11-jre-headless.yaml b/slices/openjdk-11-jre-headless.yaml index 3b2d5c77d..be246c315 100644 --- a/slices/openjdk-11-jre-headless.yaml +++ b/slices/openjdk-11-jre-headless.yaml @@ -131,7 +131,7 @@ slices: # Security configuration files and native libraries security: essential: - - libnss3_libs + - libnss3_nss - libpcsclite1_libs - openjdk-11-jre-headless_core contents: diff --git a/slices/openjdk-17-jre-headless.yaml b/slices/openjdk-17-jre-headless.yaml index 45d5c1b1c..89f32df2f 100644 --- a/slices/openjdk-17-jre-headless.yaml +++ b/slices/openjdk-17-jre-headless.yaml @@ -118,7 +118,7 @@ slices: # Security configuration files and native libraries security: essential: - - libnss3_libs + - libnss3_nss - libpcsclite1_libs - openjdk-17-jre-headless_core contents: diff --git a/slices/openjdk-21-jre-headless.yaml b/slices/openjdk-21-jre-headless.yaml index 659afe8b3..6408968ab 100644 --- a/slices/openjdk-21-jre-headless.yaml +++ b/slices/openjdk-21-jre-headless.yaml @@ -130,7 +130,7 @@ slices: # Security configuration files and native libraries security: essential: - - libnss3_libs + - libnss3_nss - libpcsclite1_libs - openjdk-21-jre-headless_core contents: diff --git a/slices/openjdk-8-jre-headless.yaml b/slices/openjdk-8-jre-headless.yaml index 2d247c955..8796e3733 100644 --- a/slices/openjdk-8-jre-headless.yaml +++ b/slices/openjdk-8-jre-headless.yaml @@ -80,7 +80,7 @@ slices: # of the runtime. security: essential: - - libnss3_libs + - libnss3_nss - libpcsclite1_libs - openjdk-8-jre-headless_core contents: diff --git a/tests/spread/integration/openjdk-11-jdk-headless/task.yaml b/tests/spread/integration/openjdk-11-jdk-headless/task.yaml index b5afd1f02..0dc30f86a 100644 --- a/tests/spread/integration/openjdk-11-jdk-headless/task.yaml +++ b/tests/spread/integration/openjdk-11-jdk-headless/task.yaml @@ -11,11 +11,14 @@ execute: | for pid in "${pids[@]}"; do kill "$pid" || true done + apt remove --purge -y openjdk-11-jdk-headless } for sig in INT QUIT HUP TERM; do trap "cleanup; trap - $sig EXIT; kill -s $sig "'"$$"' "$sig"; done trap cleanup EXIT apt install --update -y openjdk-11-jdk-headless + # Need to ensure we're using the right java version + update-java-alternatives --set /usr/lib/jvm/java-1.11.0* # Test different slice installations echo "SLICE=${SLICE}" diff --git a/tests/spread/integration/openjdk-11-jre-headless/task.yaml b/tests/spread/integration/openjdk-11-jre-headless/task.yaml index 114d3387a..9be2aaf70 100644 --- a/tests/spread/integration/openjdk-11-jre-headless/task.yaml +++ b/tests/spread/integration/openjdk-11-jre-headless/task.yaml @@ -16,6 +16,8 @@ execute: | echo "SLICE=${SLICE}" rootfs="$(install-slices openjdk-11-jre-headless_${SLICE} dash_bins)" apt install --update -y openjdk-11-jdk-headless + # Need to ensure we're using the right java version + update-java-alternatives --set /usr/lib/jvm/java-1.11.0* javac *.java jar cvf test.jar *.java cp *.jar ${rootfs}/ @@ -61,3 +63,6 @@ execute: | ;; esac done + +restore: | + apt remove -y --purge openjdk-11-jdk-headless diff --git a/tests/spread/integration/openjdk-17-jdk-headless/task.yaml b/tests/spread/integration/openjdk-17-jdk-headless/task.yaml index a25411f91..7a0f813ba 100644 --- a/tests/spread/integration/openjdk-17-jdk-headless/task.yaml +++ b/tests/spread/integration/openjdk-17-jdk-headless/task.yaml @@ -11,11 +11,14 @@ execute: | for pid in "${pids[@]}"; do kill "$pid" || true done + apt remove --purge -y openjdk-17-jdk-headless } for sig in INT QUIT HUP TERM; do trap "cleanup; trap - $sig EXIT; kill -s $sig "'"$$"' "$sig"; done trap cleanup EXIT apt install --update -y openjdk-17-jdk-headless + # Need to ensure we're using the right java version + update-java-alternatives --set /usr/lib/jvm/java-1.17.0* # Test different slice installations echo "SLICE=${SLICE}" diff --git a/tests/spread/integration/openjdk-17-jre-headless/task.yaml b/tests/spread/integration/openjdk-17-jre-headless/task.yaml index 275c4a6a1..2a2a31dac 100644 --- a/tests/spread/integration/openjdk-17-jre-headless/task.yaml +++ b/tests/spread/integration/openjdk-17-jre-headless/task.yaml @@ -16,6 +16,8 @@ execute: | echo "SLICE=${SLICE}" rootfs="$(install-slices openjdk-17-jre-headless_${SLICE} dash_bins)" apt install --update -y openjdk-11-jdk-headless + # Need to ensure we're using the right java version + update-java-alternatives --set /usr/lib/jvm/java-1.11.0* javac *.java jar cvf test.jar *.java cp *.jar ${rootfs}/ @@ -60,3 +62,6 @@ execute: | ;; esac done + +restore: | + apt remove -y --purge openjdk-11-jdk-headless diff --git a/tests/spread/integration/openjdk-21-jdk-headless/task.yaml b/tests/spread/integration/openjdk-21-jdk-headless/task.yaml index 83023e6fb..e0f6133c0 100644 --- a/tests/spread/integration/openjdk-21-jdk-headless/task.yaml +++ b/tests/spread/integration/openjdk-21-jdk-headless/task.yaml @@ -11,11 +11,14 @@ execute: | for pid in "${pids[@]}"; do kill "$pid" 2>/dev/null done + apt remove -y --purge openjdk-21-jdk-headless } for sig in INT QUIT HUP TERM; do trap "cleanup; trap - $sig EXIT; kill -s $sig "'"$$"' "$sig"; done trap cleanup EXIT apt install --update -y openjdk-21-jdk-headless curl + # Need to ensure we're using the right java version + update-java-alternatives --set /usr/lib/jvm/java-1.21.0* nohup java MonitoringTest.java & pid=$! pids+=("$pid") diff --git a/tests/spread/integration/openjdk-21-jre-headless/task.yaml b/tests/spread/integration/openjdk-21-jre-headless/task.yaml index 00910ca1a..c4772b99c 100644 --- a/tests/spread/integration/openjdk-21-jre-headless/task.yaml +++ b/tests/spread/integration/openjdk-21-jre-headless/task.yaml @@ -17,6 +17,8 @@ execute: | echo "SLICE=${SLICE}" rootfs="$(install-slices openjdk-21-jre-headless_${SLICE})" apt install --update -y openjdk-21-jdk-headless + # Need to ensure we're using the right java version + update-java-alternatives --set /usr/lib/jvm/java-1.21.0* javac *.java cp *.java ${rootfs}/ cp *.class ${rootfs}/ @@ -57,3 +59,6 @@ execute: | ;; esac done + +restore: | + apt remove -y --purge openjdk-21-jdk-headless From 60cab2a98d81031e25d475ff41d9cdb3dec1626e Mon Sep 17 00:00:00 2001 From: Cristovao Cordeiro Date: Fri, 29 Nov 2024 08:20:21 +0100 Subject: [PATCH 10/23] fix(sbsigntool): missing top-level essential (#402) --- slices/sbsigntool.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/slices/sbsigntool.yaml b/slices/sbsigntool.yaml index c330f9c61..717ae1bd3 100644 --- a/slices/sbsigntool.yaml +++ b/slices/sbsigntool.yaml @@ -1,5 +1,8 @@ package: sbsigntool +essential: + - sbsigntool_copyright + slices: bins: essential: From be702e65aeb6094615ee90340ce2525458e681ba Mon Sep 17 00:00:00 2001 From: Hadrien Patte Date: Fri, 29 Nov 2024 08:21:46 +0100 Subject: [PATCH 11/23] feat(24.04): Add SDF for librocksdb8.9 and dependencies (#401) --- slices/libgflags2.2.yaml | 18 ++++++++++++++++++ slices/librocksdb8.9.yaml | 23 +++++++++++++++++++++++ slices/libsnappy1v5.yaml | 18 ++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 slices/libgflags2.2.yaml create mode 100644 slices/librocksdb8.9.yaml create mode 100644 slices/libsnappy1v5.yaml diff --git a/slices/libgflags2.2.yaml b/slices/libgflags2.2.yaml new file mode 100644 index 000000000..97d17de0b --- /dev/null +++ b/slices/libgflags2.2.yaml @@ -0,0 +1,18 @@ +package: libgflags2.2 + +essential: + - libgflags2.2_copyright + +slices: + libs: + essential: + - libc6_libs + - libgcc-s1_libs + - libstdc++6_libs + contents: + /usr/lib/*-linux-*/libgflags.so.2.2*: + /usr/lib/*-linux-*/libgflags_nothreads.so.2.2*: + + copyright: + contents: + /usr/share/doc/libgflags2.2/copyright: diff --git a/slices/librocksdb8.9.yaml b/slices/librocksdb8.9.yaml new file mode 100644 index 000000000..ee9f5ff0a --- /dev/null +++ b/slices/librocksdb8.9.yaml @@ -0,0 +1,23 @@ +package: librocksdb8.9 + +essential: + - librocksdb8.9_copyright + +slices: + libs: + essential: + - libbz2-1.0_libs + - libc6_libs + - libgcc-s1_libs + - libgflags2.2_libs + - liblz4-1_libs + - libsnappy1v5_libs + - libstdc++6_libs + - libzstd1_libs + - zlib1g_libs + contents: + /usr/lib/*-linux-*/librocksdb.so.8.9*: + + copyright: + contents: + /usr/share/doc/librocksdb8.9/copyright: diff --git a/slices/libsnappy1v5.yaml b/slices/libsnappy1v5.yaml new file mode 100644 index 000000000..f19020f62 --- /dev/null +++ b/slices/libsnappy1v5.yaml @@ -0,0 +1,18 @@ +package: libsnappy1v5 + +essential: + - libsnappy1v5_copyright + +slices: + libs: + essential: + - libc6_libs + # libsnappy1v5 depends on libgcc-s1 on riscv64 and armhf + - libgcc-s1_libs + - libstdc++6_libs + contents: + /usr/lib/*-linux-*/libsnappy.so.1*: + + copyright: + contents: + /usr/share/doc/libsnappy1v5/copyright: From 09fa490d0d68227961f19f6a7a2c87d45a935e20 Mon Sep 17 00:00:00 2001 From: Cristovao Cordeiro Date: Wed, 4 Dec 2024 15:29:37 +0100 Subject: [PATCH 12/23] fix: typo in essential name (#406) --- slices/xfonts-encodings.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slices/xfonts-encodings.yaml b/slices/xfonts-encodings.yaml index 6edbe5388..bd3e7f078 100644 --- a/slices/xfonts-encodings.yaml +++ b/slices/xfonts-encodings.yaml @@ -1,7 +1,7 @@ package: xfonts-encodings essential: - - xfonts-utils_copyright + - xfonts-encodings_copyright slices: encodings: From cf4ea74ffb2bc8fd23953bfa4a86b00cb76bf967 Mon Sep 17 00:00:00 2001 From: Jeremy Norris Date: Mon, 9 Dec 2024 09:19:25 -0600 Subject: [PATCH 13/23] feat(24.04): forward port slices for NGINX (#421) --- slices/nginx-common.yaml | 70 ++++++++++++++++++++++++ slices/nginx.yaml | 23 ++++++++ tests/spread/integration/nginx/task.yaml | 8 +++ 3 files changed, 101 insertions(+) create mode 100644 slices/nginx-common.yaml create mode 100644 slices/nginx.yaml create mode 100644 tests/spread/integration/nginx/task.yaml diff --git a/slices/nginx-common.yaml b/slices/nginx-common.yaml new file mode 100644 index 000000000..e12c763af --- /dev/null +++ b/slices/nginx-common.yaml @@ -0,0 +1,70 @@ +package: nginx-common + +essential: + - nginx-common_copyright + +slices: + # Leaving the debconf dependency out as we don't currently need pkg mgmt. + # Also, debconf is especially used for the maintainer scripts, which are + # handled differently in Chisel. + # There's also no need (yet) for any init- and systemd-related files. + config: + contents: + /etc/logrotate.d/nginx: + /etc/nginx/fastcgi.conf: + /etc/nginx/fastcgi_params: + /etc/nginx/koi-utf: + /etc/nginx/koi-win: + /etc/nginx/mime.types: + /etc/nginx/nginx.conf: + /etc/nginx/proxy_params: + /etc/nginx/scgi_params: + /etc/nginx/sites-available/default: + # This symlink is created by the maintainer scipts + /etc/nginx/sites-enabled/default: + symlink: /etc/nginx/sites-available/default + /etc/nginx/snippets/fastcgi-php.conf: + /etc/nginx/snippets/snakeoil.conf: + /etc/nginx/uwsgi_params: + /etc/nginx/win-utf: + # Following are created by the maintainer scripts + /var/lib/nginx/: {make: true} + /var/log/nginx/: {make: true, mode: 0755} + /var/log/nginx/access.log: {text: "", mode: 0640} + /var/log/nginx/error.log: {text: "", mode: 0640} + /var/www/html/: {make: true} + + ufw-config: + contents: + /etc/ufw/applications.d/nginx: + + apport: + contents: + /usr/share/apport/package-hooks/source_nginx.py: + + index: + contents: + /usr/share/nginx/html/index.html: + /var/www/html/index.nginx-debian.html: + copy: /usr/share/nginx/html/index.html + + modules: + contents: + /usr/share/nginx/modules: + + vim-addons: + essential: + - nginx-common_vim-config + contents: + /usr/share/vim/addons/ftdetect/nginx.vim: + /usr/share/vim/addons/ftplugin/nginx.vim: + /usr/share/vim/addons/indent/nginx.vim: + /usr/share/vim/addons/syntax/nginx.vim: + + vim-config: + contents: + /usr/share/vim/registry/nginx.yaml: + + copyright: + contents: + /usr/share/doc/nginx-common/copyright: diff --git a/slices/nginx.yaml b/slices/nginx.yaml new file mode 100644 index 000000000..7d1482506 --- /dev/null +++ b/slices/nginx.yaml @@ -0,0 +1,23 @@ +package: nginx + +essential: + - nginx_copyright + +slices: + bins: + essential: + # iproute2 seems to only be required for executing the maintainer + # scripts, which is something that is handled differently in Chisel. + # - iproute2_bins + - libc6_libs + - libcrypt1_libs + - libpcre2-8-0_libs + - libssl3t64_libs + - nginx-common_config + - zlib1g_libs + contents: + /usr/sbin/nginx: + + copyright: + contents: + /usr/share/doc/nginx/copyright: diff --git a/tests/spread/integration/nginx/task.yaml b/tests/spread/integration/nginx/task.yaml new file mode 100644 index 000000000..e8920a514 --- /dev/null +++ b/tests/spread/integration/nginx/task.yaml @@ -0,0 +1,8 @@ +summary: Integration tests for nginx + +execute: | + # Chisel a minimum number of slices to give us a runnable system that we can + # test in. + rootfs="$(install-slices base-files_var base-passwd_data nginx_bins)" + + chroot "${rootfs}/" nginx -t From 375c3bac45982519e48503191430ceac99b29583 Mon Sep 17 00:00:00 2001 From: Alexander Houben Date: Mon, 9 Dec 2024 16:34:37 +0100 Subject: [PATCH 14/23] fix(24.04): libncursesw6 slice, fix copyright (#419) Co-authored-by: Alexander Houben --- slices/libncursesw6.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/slices/libncursesw6.yaml b/slices/libncursesw6.yaml index ed91d9f90..5aa0b4608 100644 --- a/slices/libncursesw6.yaml +++ b/slices/libncursesw6.yaml @@ -1,5 +1,8 @@ package: libncursesw6 +essential: + - libncursesw6_copyright + slices: libs: essential: @@ -10,3 +13,8 @@ slices: /usr/lib/*-linux-*/libmenuw.so.6*: /usr/lib/*-linux-*/libncursesw.so.6*: /usr/lib/*-linux-*/libpanelw.so.6*: + copyright: + essential: + - libtinfo6_copyright + contents: + /usr/share/doc/libncursesw6: From 65138b938ed660f8dea8f19891cfe5ac7d1e0459 Mon Sep 17 00:00:00 2001 From: Rafid Bin Mostofa Date: Wed, 11 Dec 2024 03:34:58 -0500 Subject: [PATCH 15/23] feat(24.04): add tzdata-legacy slices (#412) * feat: add tzdata-legacy slices In 24.04, the tzdata package was split into tzdata, tzdata-icu, and tzdata-legacy. The tzdata package ships only timezones that follow the current rules of geographical region (continent or ocean) and city name. All legacy timezone symlinks (old or merged timezones mentioned in the upstream backward file) were moved to tzdata-legacy. This includes the US/* timezones. [1] This commit adds the slice definitions for tzdata-legacy to provide the legacy timezones. It also changes the tzdata slice definitions to include explicit paths instead of globs to avoid conflicting paths across tzdata and tzdata-legacy slices. References: - [1] https://discourse.ubuntu.com/t/ubuntu-24-04-lts-noble-numbat-release-notes/39890#p-99950-tzdata-package-split Resolves #405. --- slices/tzdata-legacy.yaml | 271 +++++++++++ slices/tzdata.yaml | 433 +++++++++++++++++- .../spread/integration/tzdata-legacy/smoke.sh | 24 + .../integration/tzdata-legacy/task.yaml | 16 + 4 files changed, 736 insertions(+), 8 deletions(-) create mode 100644 slices/tzdata-legacy.yaml create mode 100755 tests/spread/integration/tzdata-legacy/smoke.sh create mode 100644 tests/spread/integration/tzdata-legacy/task.yaml diff --git a/slices/tzdata-legacy.yaml b/slices/tzdata-legacy.yaml new file mode 100644 index 000000000..f0ae32978 --- /dev/null +++ b/slices/tzdata-legacy.yaml @@ -0,0 +1,271 @@ +package: tzdata-legacy + +essential: + - tzdata-legacy_copyright + +slices: + # The "base" slice contains Canonical timezone abbreviations. These are + # primary, preferred zone names that are often used as abbreviations for + # location-specific timezones across the globe. Example: Europe/Sofia observes + # EET. + base: + essential: + - tzdata_base + contents: + /usr/share/zoneinfo/right/CET: + /usr/share/zoneinfo/right/CST6CDT: + /usr/share/zoneinfo/right/EET: + /usr/share/zoneinfo/right/EST: + /usr/share/zoneinfo/right/EST5EDT: + /usr/share/zoneinfo/right/Factory: + /usr/share/zoneinfo/right/HST: + /usr/share/zoneinfo/right/MET: + /usr/share/zoneinfo/right/MST: + /usr/share/zoneinfo/right/MST7MDT: + /usr/share/zoneinfo/right/PST8PDT: + /usr/share/zoneinfo/right/WET: + + africa: + essential: + - tzdata_africa + contents: + /usr/share/zoneinfo/Africa/Asmera: + /usr/share/zoneinfo/Egypt: + /usr/share/zoneinfo/Libya: + /usr/share/zoneinfo/right/Africa/**: + /usr/share/zoneinfo/right/Egypt: + /usr/share/zoneinfo/right/Libya: + + america: + essential: + - tzdata_america + contents: + /usr/share/zoneinfo/America/Argentina/ComodRivadavia: + /usr/share/zoneinfo/America/Buenos_Aires: + /usr/share/zoneinfo/America/Catamarca: + /usr/share/zoneinfo/America/Cordoba: + /usr/share/zoneinfo/America/Fort_Wayne: + /usr/share/zoneinfo/America/Godthab: + /usr/share/zoneinfo/America/Indianapolis: + /usr/share/zoneinfo/America/Jujuy: + /usr/share/zoneinfo/America/Knox_IN: + /usr/share/zoneinfo/America/Louisville: + /usr/share/zoneinfo/America/Mendoza: + /usr/share/zoneinfo/America/Rosario: + /usr/share/zoneinfo/Cuba: + /usr/share/zoneinfo/Jamaica: + /usr/share/zoneinfo/Navajo: + /usr/share/zoneinfo/right/America/**: + /usr/share/zoneinfo/right/Cuba: + /usr/share/zoneinfo/right/Jamaica: + /usr/share/zoneinfo/right/Navajo: + + antarctica: + essential: + - tzdata_antarctica + contents: + /usr/share/zoneinfo/Antarctica/South_Pole: + /usr/share/zoneinfo/right/Antarctica/**: + + arctic: + essential: + - tzdata-legacy_eurasia + - tzdata_arctic + contents: + /usr/share/zoneinfo/right/Arctic/*: + + atlantic: + essential: + - tzdata-legacy_eurasia + - tzdata_atlantic + contents: + /usr/share/zoneinfo/Atlantic/Faeroe: + /usr/share/zoneinfo/right/Atlantic/**: + + australia: + essential: + - tzdata_australia + contents: + /usr/share/zoneinfo/Australia/ACT: + /usr/share/zoneinfo/Australia/LHI: + /usr/share/zoneinfo/Australia/NSW: + /usr/share/zoneinfo/Australia/North: + /usr/share/zoneinfo/Australia/Queensland: + /usr/share/zoneinfo/Australia/South: + /usr/share/zoneinfo/Australia/Tasmania: + /usr/share/zoneinfo/Australia/Victoria: + /usr/share/zoneinfo/Australia/West: + /usr/share/zoneinfo/right/Australia/**: + + # Some countries, although geographically belonging to a continent, are kept + # in their own slice since that is how they are structured in the tzdata deb. + brazil: + essential: + - tzdata-legacy_america + contents: + /usr/share/zoneinfo/Brazil/Acre: + /usr/share/zoneinfo/Brazil/DeNoronha: + /usr/share/zoneinfo/Brazil/East: + /usr/share/zoneinfo/Brazil/West: + /usr/share/zoneinfo/right/Brazil/**: + + canada: + essential: + - tzdata-legacy_america + contents: + /usr/share/zoneinfo/Canada/**: + /usr/share/zoneinfo/right/Canada/**: + + chile: + essential: + - tzdata-legacy_america + - tzdata-legacy_pacific + contents: + /usr/share/zoneinfo/Chile/**: + /usr/share/zoneinfo/right/Chile/**: + + # "Etc" is meant to provide "timezones" that don't fit with the standard + # timezones. As an example, UTC isn't actually a timezone, but a standard. + # Like Zulu and others, most of these can be used for time information, but + # derive from different domains (like the military). Same for others. + etc: + essential: + - tzdata_etc + contents: + /usr/share/zoneinfo/GMT+0: + /usr/share/zoneinfo/GMT-0: + /usr/share/zoneinfo/GMT0: + /usr/share/zoneinfo/Greenwich: + /usr/share/zoneinfo/UCT: + /usr/share/zoneinfo/Universal: + /usr/share/zoneinfo/Zulu: + /usr/share/zoneinfo/right/Etc/**: + /usr/share/zoneinfo/right/GMT: + /usr/share/zoneinfo/right/GMT+0: + /usr/share/zoneinfo/right/GMT-0: + /usr/share/zoneinfo/right/GMT0: + /usr/share/zoneinfo/right/Greenwich: + /usr/share/zoneinfo/right/UCT: + /usr/share/zoneinfo/right/UTC: + /usr/share/zoneinfo/right/Universal: + /usr/share/zoneinfo/right/Zulu: + + eurasia: + essential: + - tzdata_eurasia + contents: + /usr/share/zoneinfo/Asia/Ashkhabad: + /usr/share/zoneinfo/Asia/Calcutta: + /usr/share/zoneinfo/Asia/Chungking: + /usr/share/zoneinfo/Asia/Dacca: + /usr/share/zoneinfo/Asia/Katmandu: + /usr/share/zoneinfo/Asia/Macao: + /usr/share/zoneinfo/Asia/Rangoon: + /usr/share/zoneinfo/Asia/Saigon: + /usr/share/zoneinfo/Asia/Thimbu: + /usr/share/zoneinfo/Asia/Ujung_Pandang: + /usr/share/zoneinfo/Asia/Ulan_Bator: + /usr/share/zoneinfo/Eire: + /usr/share/zoneinfo/Europe/Kiev: + /usr/share/zoneinfo/Europe/Uzhgorod: + /usr/share/zoneinfo/Europe/Zaporozhye: + /usr/share/zoneinfo/GB: + /usr/share/zoneinfo/GB-Eire: + /usr/share/zoneinfo/Hongkong: + /usr/share/zoneinfo/Iran: + /usr/share/zoneinfo/Israel: + /usr/share/zoneinfo/Japan: + /usr/share/zoneinfo/PRC: + /usr/share/zoneinfo/Poland: + /usr/share/zoneinfo/Portugal: + /usr/share/zoneinfo/ROC: + /usr/share/zoneinfo/ROK: + /usr/share/zoneinfo/Singapore: + /usr/share/zoneinfo/Turkey: + /usr/share/zoneinfo/W-SU: + /usr/share/zoneinfo/right/Asia/**: + /usr/share/zoneinfo/right/Eire: + /usr/share/zoneinfo/right/Europe/**: + /usr/share/zoneinfo/right/GB: + /usr/share/zoneinfo/right/GB-Eire: + /usr/share/zoneinfo/right/Hongkong: + /usr/share/zoneinfo/right/Iran: + /usr/share/zoneinfo/right/Israel: + /usr/share/zoneinfo/right/Japan: + /usr/share/zoneinfo/right/PRC: + /usr/share/zoneinfo/right/Poland: + /usr/share/zoneinfo/right/Portugal: + /usr/share/zoneinfo/right/ROC: + /usr/share/zoneinfo/right/ROK: + /usr/share/zoneinfo/right/Singapore: + /usr/share/zoneinfo/right/Turkey: + /usr/share/zoneinfo/right/W-SU: + + iceland: + essential: + - tzdata-legacy_atlantic + contents: + /usr/share/zoneinfo/Iceland: + /usr/share/zoneinfo/right/Iceland: + + indian: + essential: + - tzdata_indian + contents: + /usr/share/zoneinfo/right/Indian/**: + + mexico: + essential: + - tzdata-legacy_america + contents: + /usr/share/zoneinfo/Mexico/*: + /usr/share/zoneinfo/right/Mexico/*: + + pacific: + essential: + - tzdata_pacific + contents: + /usr/share/zoneinfo/Kwajalein: + /usr/share/zoneinfo/NZ: + /usr/share/zoneinfo/NZ-CHAT: + /usr/share/zoneinfo/Pacific/Enderbury: + /usr/share/zoneinfo/Pacific/Ponape: + /usr/share/zoneinfo/Pacific/Truk: + /usr/share/zoneinfo/right/Kwajalein: + /usr/share/zoneinfo/right/NZ: + /usr/share/zoneinfo/right/NZ-CHAT: + /usr/share/zoneinfo/right/Pacific/**: + + united-states: + essential: + - tzdata-legacy_america + - tzdata-legacy_pacific + contents: + /usr/share/zoneinfo/US/*: + /usr/share/zoneinfo/right/US/*: + + # Install all timezones. + zoneinfo: + essential: + - tzdata-legacy_africa + - tzdata-legacy_america + - tzdata-legacy_antarctica + - tzdata-legacy_arctic + - tzdata-legacy_atlantic + - tzdata-legacy_australia + - tzdata-legacy_base + - tzdata-legacy_brazil + - tzdata-legacy_canada + - tzdata-legacy_chile + - tzdata-legacy_etc + - tzdata-legacy_eurasia + - tzdata-legacy_iceland + - tzdata-legacy_indian + - tzdata-legacy_mexico + - tzdata-legacy_pacific + - tzdata-legacy_united-states + - tzdata_zoneinfo + + copyright: + contents: + /usr/share/doc/tzdata-legacy/copyright: diff --git a/slices/tzdata.yaml b/slices/tzdata.yaml index 737ee0624..b7f0eed72 100644 --- a/slices/tzdata.yaml +++ b/slices/tzdata.yaml @@ -32,20 +32,227 @@ slices: essential: - tzdata_config contents: - /usr/share/zoneinfo/Africa/**: + /usr/share/zoneinfo/Africa/Abidjan: + /usr/share/zoneinfo/Africa/Accra: + /usr/share/zoneinfo/Africa/Addis_Ababa: + /usr/share/zoneinfo/Africa/Algiers: + /usr/share/zoneinfo/Africa/Asmara: + /usr/share/zoneinfo/Africa/Bamako: + /usr/share/zoneinfo/Africa/Bangui: + /usr/share/zoneinfo/Africa/Banjul: + /usr/share/zoneinfo/Africa/Bissau: + /usr/share/zoneinfo/Africa/Blantyre: + /usr/share/zoneinfo/Africa/Brazzaville: + /usr/share/zoneinfo/Africa/Bujumbura: + /usr/share/zoneinfo/Africa/Cairo: + /usr/share/zoneinfo/Africa/Casablanca: + /usr/share/zoneinfo/Africa/Ceuta: + /usr/share/zoneinfo/Africa/Conakry: + /usr/share/zoneinfo/Africa/Dakar: + /usr/share/zoneinfo/Africa/Dar_es_Salaam: + /usr/share/zoneinfo/Africa/Djibouti: + /usr/share/zoneinfo/Africa/Douala: + /usr/share/zoneinfo/Africa/El_Aaiun: + /usr/share/zoneinfo/Africa/Freetown: + /usr/share/zoneinfo/Africa/Gaborone: + /usr/share/zoneinfo/Africa/Harare: + /usr/share/zoneinfo/Africa/Johannesburg: + /usr/share/zoneinfo/Africa/Juba: + /usr/share/zoneinfo/Africa/Kampala: + /usr/share/zoneinfo/Africa/Khartoum: + /usr/share/zoneinfo/Africa/Kigali: + /usr/share/zoneinfo/Africa/Kinshasa: + /usr/share/zoneinfo/Africa/Lagos: + /usr/share/zoneinfo/Africa/Libreville: + /usr/share/zoneinfo/Africa/Lome: + /usr/share/zoneinfo/Africa/Luanda: + /usr/share/zoneinfo/Africa/Lubumbashi: + /usr/share/zoneinfo/Africa/Lusaka: + /usr/share/zoneinfo/Africa/Malabo: + /usr/share/zoneinfo/Africa/Maputo: + /usr/share/zoneinfo/Africa/Maseru: + /usr/share/zoneinfo/Africa/Mbabane: + /usr/share/zoneinfo/Africa/Mogadishu: + /usr/share/zoneinfo/Africa/Monrovia: + /usr/share/zoneinfo/Africa/Nairobi: + /usr/share/zoneinfo/Africa/Ndjamena: + /usr/share/zoneinfo/Africa/Niamey: + /usr/share/zoneinfo/Africa/Nouakchott: + /usr/share/zoneinfo/Africa/Ouagadougou: + /usr/share/zoneinfo/Africa/Porto-Novo: + /usr/share/zoneinfo/Africa/Sao_Tome: + /usr/share/zoneinfo/Africa/Timbuktu: + /usr/share/zoneinfo/Africa/Tripoli: + /usr/share/zoneinfo/Africa/Tunis: + /usr/share/zoneinfo/Africa/Windhoek: america: essential: - tzdata_config contents: - /usr/share/zoneinfo/America/**: + /usr/share/zoneinfo/America/Adak: + /usr/share/zoneinfo/America/Anchorage: + /usr/share/zoneinfo/America/Anguilla: + /usr/share/zoneinfo/America/Antigua: + /usr/share/zoneinfo/America/Araguaina: + /usr/share/zoneinfo/America/Argentina/Buenos_Aires: + /usr/share/zoneinfo/America/Argentina/Catamarca: + /usr/share/zoneinfo/America/Argentina/Cordoba: + /usr/share/zoneinfo/America/Argentina/Jujuy: + /usr/share/zoneinfo/America/Argentina/La_Rioja: + /usr/share/zoneinfo/America/Argentina/Mendoza: + /usr/share/zoneinfo/America/Argentina/Rio_Gallegos: + /usr/share/zoneinfo/America/Argentina/Salta: + /usr/share/zoneinfo/America/Argentina/San_Juan: + /usr/share/zoneinfo/America/Argentina/San_Luis: + /usr/share/zoneinfo/America/Argentina/Tucuman: + /usr/share/zoneinfo/America/Argentina/Ushuaia: + /usr/share/zoneinfo/America/Aruba: + /usr/share/zoneinfo/America/Asuncion: + /usr/share/zoneinfo/America/Atikokan: + /usr/share/zoneinfo/America/Atka: + /usr/share/zoneinfo/America/Bahia: + /usr/share/zoneinfo/America/Bahia_Banderas: + /usr/share/zoneinfo/America/Barbados: + /usr/share/zoneinfo/America/Belem: + /usr/share/zoneinfo/America/Belize: + /usr/share/zoneinfo/America/Blanc-Sablon: + /usr/share/zoneinfo/America/Boa_Vista: + /usr/share/zoneinfo/America/Bogota: + /usr/share/zoneinfo/America/Boise: + /usr/share/zoneinfo/America/Cambridge_Bay: + /usr/share/zoneinfo/America/Campo_Grande: + /usr/share/zoneinfo/America/Cancun: + /usr/share/zoneinfo/America/Caracas: + /usr/share/zoneinfo/America/Cayenne: + /usr/share/zoneinfo/America/Cayman: + /usr/share/zoneinfo/America/Chicago: + /usr/share/zoneinfo/America/Chihuahua: + /usr/share/zoneinfo/America/Ciudad_Juarez: + /usr/share/zoneinfo/America/Coral_Harbour: + /usr/share/zoneinfo/America/Costa_Rica: + /usr/share/zoneinfo/America/Creston: + /usr/share/zoneinfo/America/Cuiaba: + /usr/share/zoneinfo/America/Curacao: + /usr/share/zoneinfo/America/Danmarkshavn: + /usr/share/zoneinfo/America/Dawson: + /usr/share/zoneinfo/America/Dawson_Creek: + /usr/share/zoneinfo/America/Denver: + /usr/share/zoneinfo/America/Detroit: + /usr/share/zoneinfo/America/Dominica: + /usr/share/zoneinfo/America/Edmonton: + /usr/share/zoneinfo/America/Eirunepe: + /usr/share/zoneinfo/America/El_Salvador: + /usr/share/zoneinfo/America/Ensenada: + /usr/share/zoneinfo/America/Fort_Nelson: + /usr/share/zoneinfo/America/Fortaleza: + /usr/share/zoneinfo/America/Glace_Bay: + /usr/share/zoneinfo/America/Goose_Bay: + /usr/share/zoneinfo/America/Grand_Turk: + /usr/share/zoneinfo/America/Grenada: + /usr/share/zoneinfo/America/Guadeloupe: + /usr/share/zoneinfo/America/Guatemala: + /usr/share/zoneinfo/America/Guayaquil: + /usr/share/zoneinfo/America/Guyana: + /usr/share/zoneinfo/America/Halifax: + /usr/share/zoneinfo/America/Havana: + /usr/share/zoneinfo/America/Hermosillo: + /usr/share/zoneinfo/America/Indiana/**: + /usr/share/zoneinfo/America/Inuvik: + /usr/share/zoneinfo/America/Iqaluit: + /usr/share/zoneinfo/America/Jamaica: + /usr/share/zoneinfo/America/Juneau: + /usr/share/zoneinfo/America/Kentucky/**: + /usr/share/zoneinfo/America/Kralendijk: + /usr/share/zoneinfo/America/La_Paz: + /usr/share/zoneinfo/America/Lima: + /usr/share/zoneinfo/America/Los_Angeles: + /usr/share/zoneinfo/America/Lower_Princes: + /usr/share/zoneinfo/America/Maceio: + /usr/share/zoneinfo/America/Managua: + /usr/share/zoneinfo/America/Manaus: + /usr/share/zoneinfo/America/Marigot: + /usr/share/zoneinfo/America/Martinique: + /usr/share/zoneinfo/America/Matamoros: + /usr/share/zoneinfo/America/Mazatlan: + /usr/share/zoneinfo/America/Menominee: + /usr/share/zoneinfo/America/Merida: + /usr/share/zoneinfo/America/Metlakatla: + /usr/share/zoneinfo/America/Mexico_City: + /usr/share/zoneinfo/America/Miquelon: + /usr/share/zoneinfo/America/Moncton: + /usr/share/zoneinfo/America/Monterrey: + /usr/share/zoneinfo/America/Montevideo: + /usr/share/zoneinfo/America/Montreal: + /usr/share/zoneinfo/America/Montserrat: + /usr/share/zoneinfo/America/Nassau: + /usr/share/zoneinfo/America/New_York: + /usr/share/zoneinfo/America/Nipigon: + /usr/share/zoneinfo/America/Nome: + /usr/share/zoneinfo/America/Noronha: + /usr/share/zoneinfo/America/North_Dakota/**: + /usr/share/zoneinfo/America/Nuuk: + /usr/share/zoneinfo/America/Ojinaga: + /usr/share/zoneinfo/America/Panama: + /usr/share/zoneinfo/America/Pangnirtung: + /usr/share/zoneinfo/America/Paramaribo: + /usr/share/zoneinfo/America/Phoenix: + /usr/share/zoneinfo/America/Port-au-Prince: + /usr/share/zoneinfo/America/Port_of_Spain: + /usr/share/zoneinfo/America/Porto_Acre: + /usr/share/zoneinfo/America/Porto_Velho: + /usr/share/zoneinfo/America/Puerto_Rico: + /usr/share/zoneinfo/America/Punta_Arenas: + /usr/share/zoneinfo/America/Rainy_River: + /usr/share/zoneinfo/America/Rankin_Inlet: + /usr/share/zoneinfo/America/Recife: + /usr/share/zoneinfo/America/Regina: + /usr/share/zoneinfo/America/Resolute: + /usr/share/zoneinfo/America/Rio_Branco: + /usr/share/zoneinfo/America/Santa_Isabel: + /usr/share/zoneinfo/America/Santarem: + /usr/share/zoneinfo/America/Santiago: + /usr/share/zoneinfo/America/Santo_Domingo: + /usr/share/zoneinfo/America/Sao_Paulo: + /usr/share/zoneinfo/America/Scoresbysund: + /usr/share/zoneinfo/America/Shiprock: + /usr/share/zoneinfo/America/Sitka: + /usr/share/zoneinfo/America/St_Barthelemy: + /usr/share/zoneinfo/America/St_Johns: + /usr/share/zoneinfo/America/St_Kitts: + /usr/share/zoneinfo/America/St_Lucia: + /usr/share/zoneinfo/America/St_Thomas: + /usr/share/zoneinfo/America/St_Vincent: + /usr/share/zoneinfo/America/Swift_Current: + /usr/share/zoneinfo/America/Tegucigalpa: + /usr/share/zoneinfo/America/Thule: + /usr/share/zoneinfo/America/Thunder_Bay: + /usr/share/zoneinfo/America/Tijuana: + /usr/share/zoneinfo/America/Toronto: + /usr/share/zoneinfo/America/Tortola: + /usr/share/zoneinfo/America/Vancouver: + /usr/share/zoneinfo/America/Virgin: + /usr/share/zoneinfo/America/Whitehorse: + /usr/share/zoneinfo/America/Winnipeg: + /usr/share/zoneinfo/America/Yakutat: + /usr/share/zoneinfo/America/Yellowknife: /usr/share/zoneinfo/posixrules: antarctica: essential: - tzdata_config contents: - /usr/share/zoneinfo/Antarctica/**: + /usr/share/zoneinfo/Antarctica/Casey: + /usr/share/zoneinfo/Antarctica/Davis: + /usr/share/zoneinfo/Antarctica/DumontDUrville: + /usr/share/zoneinfo/Antarctica/Macquarie: + /usr/share/zoneinfo/Antarctica/Mawson: + /usr/share/zoneinfo/Antarctica/McMurdo: + /usr/share/zoneinfo/Antarctica/Palmer: + /usr/share/zoneinfo/Antarctica/Rothera: + /usr/share/zoneinfo/Antarctica/Syowa: + /usr/share/zoneinfo/Antarctica/Troll: + /usr/share/zoneinfo/Antarctica/Vostok: arctic: essential: @@ -59,13 +266,36 @@ slices: - tzdata_config - tzdata_eurasia contents: - /usr/share/zoneinfo/Atlantic/**: + /usr/share/zoneinfo/Atlantic/Azores: + /usr/share/zoneinfo/Atlantic/Bermuda: + /usr/share/zoneinfo/Atlantic/Canary: + /usr/share/zoneinfo/Atlantic/Cape_Verde: + /usr/share/zoneinfo/Atlantic/Faroe: + /usr/share/zoneinfo/Atlantic/Jan_Mayen: + /usr/share/zoneinfo/Atlantic/Madeira: + /usr/share/zoneinfo/Atlantic/Reykjavik: + /usr/share/zoneinfo/Atlantic/South_Georgia: + /usr/share/zoneinfo/Atlantic/St_Helena: + /usr/share/zoneinfo/Atlantic/Stanley: australia: essential: - tzdata_config contents: - /usr/share/zoneinfo/Australia/**: + /usr/share/zoneinfo/Australia/Adelaide: + /usr/share/zoneinfo/Australia/Brisbane: + /usr/share/zoneinfo/Australia/Broken_Hill: + /usr/share/zoneinfo/Australia/Canberra: + /usr/share/zoneinfo/Australia/Currie: + /usr/share/zoneinfo/Australia/Darwin: + /usr/share/zoneinfo/Australia/Eucla: + /usr/share/zoneinfo/Australia/Hobart: + /usr/share/zoneinfo/Australia/Lindeman: + /usr/share/zoneinfo/Australia/Lord_Howe: + /usr/share/zoneinfo/Australia/Melbourne: + /usr/share/zoneinfo/Australia/Perth: + /usr/share/zoneinfo/Australia/Sydney: + /usr/share/zoneinfo/Australia/Yancowinna: config: contents: @@ -89,8 +319,155 @@ slices: essential: - tzdata_config contents: - /usr/share/zoneinfo/Asia/**: - /usr/share/zoneinfo/Europe/**: + /usr/share/zoneinfo/Asia/Aden: + /usr/share/zoneinfo/Asia/Almaty: + /usr/share/zoneinfo/Asia/Amman: + /usr/share/zoneinfo/Asia/Anadyr: + /usr/share/zoneinfo/Asia/Aqtau: + /usr/share/zoneinfo/Asia/Aqtobe: + /usr/share/zoneinfo/Asia/Ashgabat: + /usr/share/zoneinfo/Asia/Atyrau: + /usr/share/zoneinfo/Asia/Baghdad: + /usr/share/zoneinfo/Asia/Bahrain: + /usr/share/zoneinfo/Asia/Baku: + /usr/share/zoneinfo/Asia/Bangkok: + /usr/share/zoneinfo/Asia/Barnaul: + /usr/share/zoneinfo/Asia/Beirut: + /usr/share/zoneinfo/Asia/Bishkek: + /usr/share/zoneinfo/Asia/Brunei: + /usr/share/zoneinfo/Asia/Chita: + /usr/share/zoneinfo/Asia/Choibalsan: + /usr/share/zoneinfo/Asia/Chongqing: + /usr/share/zoneinfo/Asia/Colombo: + /usr/share/zoneinfo/Asia/Damascus: + /usr/share/zoneinfo/Asia/Dhaka: + /usr/share/zoneinfo/Asia/Dili: + /usr/share/zoneinfo/Asia/Dubai: + /usr/share/zoneinfo/Asia/Dushanbe: + /usr/share/zoneinfo/Asia/Famagusta: + /usr/share/zoneinfo/Asia/Gaza: + /usr/share/zoneinfo/Asia/Harbin: + /usr/share/zoneinfo/Asia/Hebron: + /usr/share/zoneinfo/Asia/Ho_Chi_Minh: + /usr/share/zoneinfo/Asia/Hong_Kong: + /usr/share/zoneinfo/Asia/Hovd: + /usr/share/zoneinfo/Asia/Irkutsk: + /usr/share/zoneinfo/Asia/Istanbul: + /usr/share/zoneinfo/Asia/Jakarta: + /usr/share/zoneinfo/Asia/Jayapura: + /usr/share/zoneinfo/Asia/Jerusalem: + /usr/share/zoneinfo/Asia/Kabul: + /usr/share/zoneinfo/Asia/Kamchatka: + /usr/share/zoneinfo/Asia/Karachi: + /usr/share/zoneinfo/Asia/Kashgar: + /usr/share/zoneinfo/Asia/Kathmandu: + /usr/share/zoneinfo/Asia/Khandyga: + /usr/share/zoneinfo/Asia/Kolkata: + /usr/share/zoneinfo/Asia/Krasnoyarsk: + /usr/share/zoneinfo/Asia/Kuala_Lumpur: + /usr/share/zoneinfo/Asia/Kuching: + /usr/share/zoneinfo/Asia/Kuwait: + /usr/share/zoneinfo/Asia/Macau: + /usr/share/zoneinfo/Asia/Magadan: + /usr/share/zoneinfo/Asia/Makassar: + /usr/share/zoneinfo/Asia/Manila: + /usr/share/zoneinfo/Asia/Muscat: + /usr/share/zoneinfo/Asia/Nicosia: + /usr/share/zoneinfo/Asia/Novokuznetsk: + /usr/share/zoneinfo/Asia/Novosibirsk: + /usr/share/zoneinfo/Asia/Omsk: + /usr/share/zoneinfo/Asia/Oral: + /usr/share/zoneinfo/Asia/Phnom_Penh: + /usr/share/zoneinfo/Asia/Pontianak: + /usr/share/zoneinfo/Asia/Pyongyang: + /usr/share/zoneinfo/Asia/Qatar: + /usr/share/zoneinfo/Asia/Qostanay: + /usr/share/zoneinfo/Asia/Qyzylorda: + /usr/share/zoneinfo/Asia/Riyadh: + /usr/share/zoneinfo/Asia/Sakhalin: + /usr/share/zoneinfo/Asia/Samarkand: + /usr/share/zoneinfo/Asia/Seoul: + /usr/share/zoneinfo/Asia/Shanghai: + /usr/share/zoneinfo/Asia/Singapore: + /usr/share/zoneinfo/Asia/Srednekolymsk: + /usr/share/zoneinfo/Asia/Taipei: + /usr/share/zoneinfo/Asia/Tashkent: + /usr/share/zoneinfo/Asia/Tbilisi: + /usr/share/zoneinfo/Asia/Tehran: + /usr/share/zoneinfo/Asia/Tel_Aviv: + /usr/share/zoneinfo/Asia/Thimphu: + /usr/share/zoneinfo/Asia/Tokyo: + /usr/share/zoneinfo/Asia/Tomsk: + /usr/share/zoneinfo/Asia/Ulaanbaatar: + /usr/share/zoneinfo/Asia/Urumqi: + /usr/share/zoneinfo/Asia/Ust-Nera: + /usr/share/zoneinfo/Asia/Vientiane: + /usr/share/zoneinfo/Asia/Vladivostok: + /usr/share/zoneinfo/Asia/Yakutsk: + /usr/share/zoneinfo/Asia/Yangon: + /usr/share/zoneinfo/Asia/Yekaterinburg: + /usr/share/zoneinfo/Asia/Yerevan: + /usr/share/zoneinfo/Europe/Amsterdam: + /usr/share/zoneinfo/Europe/Andorra: + /usr/share/zoneinfo/Europe/Astrakhan: + /usr/share/zoneinfo/Europe/Athens: + /usr/share/zoneinfo/Europe/Belfast: + /usr/share/zoneinfo/Europe/Belgrade: + /usr/share/zoneinfo/Europe/Berlin: + /usr/share/zoneinfo/Europe/Bratislava: + /usr/share/zoneinfo/Europe/Brussels: + /usr/share/zoneinfo/Europe/Bucharest: + /usr/share/zoneinfo/Europe/Budapest: + /usr/share/zoneinfo/Europe/Busingen: + /usr/share/zoneinfo/Europe/Chisinau: + /usr/share/zoneinfo/Europe/Copenhagen: + /usr/share/zoneinfo/Europe/Dublin: + /usr/share/zoneinfo/Europe/Gibraltar: + /usr/share/zoneinfo/Europe/Guernsey: + /usr/share/zoneinfo/Europe/Helsinki: + /usr/share/zoneinfo/Europe/Isle_of_Man: + /usr/share/zoneinfo/Europe/Istanbul: + /usr/share/zoneinfo/Europe/Jersey: + /usr/share/zoneinfo/Europe/Kaliningrad: + /usr/share/zoneinfo/Europe/Kirov: + /usr/share/zoneinfo/Europe/Kyiv: + /usr/share/zoneinfo/Europe/Lisbon: + /usr/share/zoneinfo/Europe/Ljubljana: + /usr/share/zoneinfo/Europe/London: + /usr/share/zoneinfo/Europe/Luxembourg: + /usr/share/zoneinfo/Europe/Madrid: + /usr/share/zoneinfo/Europe/Malta: + /usr/share/zoneinfo/Europe/Mariehamn: + /usr/share/zoneinfo/Europe/Minsk: + /usr/share/zoneinfo/Europe/Monaco: + /usr/share/zoneinfo/Europe/Moscow: + /usr/share/zoneinfo/Europe/Nicosia: + /usr/share/zoneinfo/Europe/Oslo: + /usr/share/zoneinfo/Europe/Paris: + /usr/share/zoneinfo/Europe/Podgorica: + /usr/share/zoneinfo/Europe/Prague: + /usr/share/zoneinfo/Europe/Riga: + /usr/share/zoneinfo/Europe/Rome: + /usr/share/zoneinfo/Europe/Samara: + /usr/share/zoneinfo/Europe/San_Marino: + /usr/share/zoneinfo/Europe/Sarajevo: + /usr/share/zoneinfo/Europe/Saratov: + /usr/share/zoneinfo/Europe/Simferopol: + /usr/share/zoneinfo/Europe/Skopje: + /usr/share/zoneinfo/Europe/Sofia: + /usr/share/zoneinfo/Europe/Stockholm: + /usr/share/zoneinfo/Europe/Tallinn: + /usr/share/zoneinfo/Europe/Tirane: + /usr/share/zoneinfo/Europe/Tiraspol: + /usr/share/zoneinfo/Europe/Ulyanovsk: + /usr/share/zoneinfo/Europe/Vaduz: + /usr/share/zoneinfo/Europe/Vatican: + /usr/share/zoneinfo/Europe/Vienna: + /usr/share/zoneinfo/Europe/Vilnius: + /usr/share/zoneinfo/Europe/Volgograd: + /usr/share/zoneinfo/Europe/Warsaw: + /usr/share/zoneinfo/Europe/Zagreb: + /usr/share/zoneinfo/Europe/Zurich: indian: essential: @@ -102,7 +479,47 @@ slices: essential: - tzdata_config contents: - /usr/share/zoneinfo/Pacific/**: + /usr/share/zoneinfo/Pacific/Apia: + /usr/share/zoneinfo/Pacific/Auckland: + /usr/share/zoneinfo/Pacific/Bougainville: + /usr/share/zoneinfo/Pacific/Chatham: + /usr/share/zoneinfo/Pacific/Chuuk: + /usr/share/zoneinfo/Pacific/Easter: + /usr/share/zoneinfo/Pacific/Efate: + /usr/share/zoneinfo/Pacific/Fakaofo: + /usr/share/zoneinfo/Pacific/Fiji: + /usr/share/zoneinfo/Pacific/Funafuti: + /usr/share/zoneinfo/Pacific/Galapagos: + /usr/share/zoneinfo/Pacific/Gambier: + /usr/share/zoneinfo/Pacific/Guadalcanal: + /usr/share/zoneinfo/Pacific/Guam: + /usr/share/zoneinfo/Pacific/Honolulu: + /usr/share/zoneinfo/Pacific/Johnston: + /usr/share/zoneinfo/Pacific/Kanton: + /usr/share/zoneinfo/Pacific/Kiritimati: + /usr/share/zoneinfo/Pacific/Kosrae: + /usr/share/zoneinfo/Pacific/Kwajalein: + /usr/share/zoneinfo/Pacific/Majuro: + /usr/share/zoneinfo/Pacific/Marquesas: + /usr/share/zoneinfo/Pacific/Midway: + /usr/share/zoneinfo/Pacific/Nauru: + /usr/share/zoneinfo/Pacific/Niue: + /usr/share/zoneinfo/Pacific/Norfolk: + /usr/share/zoneinfo/Pacific/Noumea: + /usr/share/zoneinfo/Pacific/Pago_Pago: + /usr/share/zoneinfo/Pacific/Palau: + /usr/share/zoneinfo/Pacific/Pitcairn: + /usr/share/zoneinfo/Pacific/Pohnpei: + /usr/share/zoneinfo/Pacific/Port_Moresby: + /usr/share/zoneinfo/Pacific/Rarotonga: + /usr/share/zoneinfo/Pacific/Saipan: + /usr/share/zoneinfo/Pacific/Samoa: + /usr/share/zoneinfo/Pacific/Tahiti: + /usr/share/zoneinfo/Pacific/Tarawa: + /usr/share/zoneinfo/Pacific/Tongatapu: + /usr/share/zoneinfo/Pacific/Wake: + /usr/share/zoneinfo/Pacific/Wallis: + /usr/share/zoneinfo/Pacific/Yap: # Install all timezones. zoneinfo: diff --git a/tests/spread/integration/tzdata-legacy/smoke.sh b/tests/spread/integration/tzdata-legacy/smoke.sh new file mode 100755 index 000000000..f62e45ce4 --- /dev/null +++ b/tests/spread/integration/tzdata-legacy/smoke.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# +# This script smoke tests each tzdata-legacy slice and it simply checks if all +# symbolic link targets are present. + +set -eu + +PKG="tzdata-legacy" +SDF="${PROJECT_PATH}/slices/${PKG}.yaml" + +slices=$(yq '.slices | keys | .[]' "${SDF}") +for s in ${slices[@]}; do + slice="${PKG}_$s" + echo "Testing $slice ..." + rootfs="$(install-slices "$slice")" + + find "$rootfs" -type l -printf "%P\0" | while IFS= read -r -d $'\0' file; do + if [[ ! -e "$rootfs/$file" ]]; then + target="$(readlink "$rootfs/$file")" + echo "symlink /$file -> $target broken" + exit 1 + fi + done +done diff --git a/tests/spread/integration/tzdata-legacy/task.yaml b/tests/spread/integration/tzdata-legacy/task.yaml new file mode 100644 index 000000000..280d1506b --- /dev/null +++ b/tests/spread/integration/tzdata-legacy/task.yaml @@ -0,0 +1,16 @@ +summary: Integration tests for tzdata-legacy + +prepare: | + # Deb arch to GOARCH. + arch="$(dpkg --print-architecture | sed -e 's/armhf/arm/g' -e 's/ppc64el/ppc64le/g')" + # Install yq. + wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_${arch} \ + -O /usr/bin/yq + chmod +x /usr/bin/yq + yq --version + # The smoke.sh script needs find and readlink binaries. + apt install -y findutils coreutils + +execute: | + # Run smoke tests. + ./smoke.sh From 6f8882421d1c91744134dad4584e97f9ac821385 Mon Sep 17 00:00:00 2001 From: Alexander Houben Date: Wed, 11 Dec 2024 12:17:09 +0100 Subject: [PATCH 16/23] feat(24.04): add slices file for package libtbb12 and missing dependencies (#424) --------- Co-authored-by: Alexander Houben --- slices/libhwloc15.yaml | 16 ++++++++++++++++ slices/libtbb12.yaml | 19 +++++++++++++++++++ slices/libtbbbind-2-5.yaml | 18 ++++++++++++++++++ slices/libtbbmalloc2.yaml | 18 ++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 slices/libhwloc15.yaml create mode 100644 slices/libtbb12.yaml create mode 100644 slices/libtbbbind-2-5.yaml create mode 100644 slices/libtbbmalloc2.yaml diff --git a/slices/libhwloc15.yaml b/slices/libhwloc15.yaml new file mode 100644 index 000000000..5b581b44c --- /dev/null +++ b/slices/libhwloc15.yaml @@ -0,0 +1,16 @@ +package: libhwloc15 + +essential: + - libhwloc15_copyright + +slices: + libs: + essential: + - libc6_libs + - libudev1_libs + contents: + /usr/lib/*-linux-*/libhwloc.so.15*: + + copyright: + contents: + /usr/share/doc/libhwloc15/copyright: diff --git a/slices/libtbb12.yaml b/slices/libtbb12.yaml new file mode 100644 index 000000000..adbff5249 --- /dev/null +++ b/slices/libtbb12.yaml @@ -0,0 +1,19 @@ +package: libtbb12 + +essential: + - libtbb12_copyright + +slices: + libs: + essential: + - libc6_libs + - libgcc-s1_libs + - libstdc++6_libs + - libtbbbind-2-5_libs + - libtbbmalloc2_libs + contents: + /usr/lib/*-linux-*/libtbb.so.12*: + + copyright: + contents: + /usr/share/doc/libtbb12/copyright: diff --git a/slices/libtbbbind-2-5.yaml b/slices/libtbbbind-2-5.yaml new file mode 100644 index 000000000..3ac1dc255 --- /dev/null +++ b/slices/libtbbbind-2-5.yaml @@ -0,0 +1,18 @@ +package: libtbbbind-2-5 + +essential: + - libtbbbind-2-5_copyright + +slices: + libs: + essential: + - libc6_libs + - libgcc-s1_libs + - libhwloc15_libs + - libstdc++6_libs + contents: + /usr/lib/*-linux-*/libtbbbind_2_5.so.3*: + + copyright: + contents: + /usr/share/doc/libtbbbind-2-5/copyright: diff --git a/slices/libtbbmalloc2.yaml b/slices/libtbbmalloc2.yaml new file mode 100644 index 000000000..88f6cd100 --- /dev/null +++ b/slices/libtbbmalloc2.yaml @@ -0,0 +1,18 @@ +package: libtbbmalloc2 + +essential: + - libtbbmalloc2_copyright + +slices: + libs: + essential: + - libc6_libs + - libgcc-s1_libs + - libstdc++6_libs + contents: + /usr/lib/*-linux-*/libtbbmalloc.so.2*: + /usr/lib/*-linux-*/libtbbmalloc_proxy.so.2*: + + copyright: + contents: + /usr/share/doc/libtbbmalloc2/copyright: From e7a2ccf6549cdc9d7bb266dbd55d622339a70a81 Mon Sep 17 00:00:00 2001 From: Rafid Bin Mostofa Date: Wed, 11 Dec 2024 10:45:03 -0500 Subject: [PATCH 17/23] feat(24.04): add python3-pip slices (#356) --- slices/python3-pip.yaml | 26 +++++++++++++++++++ slices/python3-pkg-resources.yaml | 15 +++++++++++ slices/python3-setuptools.yaml | 18 +++++++++++++ slices/python3-wheel.yaml | 16 ++++++++++++ .../spread/integration/python3-pip/task.yaml | 8 ++++++ 5 files changed, 83 insertions(+) create mode 100644 slices/python3-pip.yaml create mode 100644 slices/python3-pkg-resources.yaml create mode 100644 slices/python3-setuptools.yaml create mode 100644 slices/python3-wheel.yaml create mode 100644 tests/spread/integration/python3-pip/task.yaml diff --git a/slices/python3-pip.yaml b/slices/python3-pip.yaml new file mode 100644 index 000000000..8b2a70498 --- /dev/null +++ b/slices/python3-pip.yaml @@ -0,0 +1,26 @@ +package: python3-pip + +essential: + - python3-pip_copyright + +slices: + bins: + essential: + - python3-pip_libs + contents: + /usr/bin/pip: + /usr/bin/pip3: + + libs: + essential: + - ca-certificates_data + - python3-setuptools_libs + - python3-wheel_libs + - python3_standard + contents: + /usr/lib/python3/dist-packages/pip-*.dist-info/**: + /usr/lib/python3/dist-packages/pip/**: + + copyright: + contents: + /usr/share/doc/python3-pip/copyright: diff --git a/slices/python3-pkg-resources.yaml b/slices/python3-pkg-resources.yaml new file mode 100644 index 000000000..e46753b74 --- /dev/null +++ b/slices/python3-pkg-resources.yaml @@ -0,0 +1,15 @@ +package: python3-pkg-resources + +essential: + - python3-pkg-resources_copyright + +slices: + libs: + essential: + - python3_standard + contents: + /usr/lib/python3/dist-packages/pkg_resources/**: + + copyright: + contents: + /usr/share/doc/python3-pkg-resources/copyright: diff --git a/slices/python3-setuptools.yaml b/slices/python3-setuptools.yaml new file mode 100644 index 000000000..0d8bb4bd2 --- /dev/null +++ b/slices/python3-setuptools.yaml @@ -0,0 +1,18 @@ +package: python3-setuptools + +essential: + - python3-setuptools_copyright + +slices: + libs: + essential: + - python3-pkg-resources_libs + - python3_standard + contents: + /usr/lib/python3/dist-packages/_distutils_hack/**: + /usr/lib/python3/dist-packages/setuptools-*.egg-info/**: + /usr/lib/python3/dist-packages/setuptools/**: + + copyright: + contents: + /usr/share/doc/python3-setuptools/copyright: diff --git a/slices/python3-wheel.yaml b/slices/python3-wheel.yaml new file mode 100644 index 000000000..22efca184 --- /dev/null +++ b/slices/python3-wheel.yaml @@ -0,0 +1,16 @@ +package: python3-wheel + +essential: + - python3-wheel_copyright + +slices: + libs: + essential: + - python3_standard + contents: + /usr/lib/python3/dist-packages/wheel-*.dist-info/**: + /usr/lib/python3/dist-packages/wheel/**: + + copyright: + contents: + /usr/share/doc/python3-wheel/copyright: diff --git a/tests/spread/integration/python3-pip/task.yaml b/tests/spread/integration/python3-pip/task.yaml new file mode 100644 index 000000000..d84b8a457 --- /dev/null +++ b/tests/spread/integration/python3-pip/task.yaml @@ -0,0 +1,8 @@ +summary: Integration tests for python3-pip + +execute: | + rootfs="$(install-slices python3-pip_bins)" + + # Smoke tests. + chroot ${rootfs} /usr/bin/pip --version + chroot ${rootfs} /usr/bin/pip install --upgrade setuptools From 32317657fe493ce911146ebd3fe9c74c414c9faa Mon Sep 17 00:00:00 2001 From: Jeremy Norris Date: Thu, 12 Dec 2024 10:07:53 -0600 Subject: [PATCH 18/23] feat(24.04): add slices for Redis and dependencies (#426) --- slices/libjemalloc2.yaml | 17 ++++++++++++ slices/liblzf1.yaml | 15 +++++++++++ slices/redis-server.yaml | 27 +++++++++++++++++++ slices/redis-tools.yaml | 26 ++++++++++++++++++ .../spread/integration/redis-server/task.yaml | 8 ++++++ .../spread/integration/redis-tools/task.yaml | 13 +++++++++ 6 files changed, 106 insertions(+) create mode 100644 slices/libjemalloc2.yaml create mode 100644 slices/liblzf1.yaml create mode 100644 slices/redis-server.yaml create mode 100644 slices/redis-tools.yaml create mode 100644 tests/spread/integration/redis-server/task.yaml create mode 100644 tests/spread/integration/redis-tools/task.yaml diff --git a/slices/libjemalloc2.yaml b/slices/libjemalloc2.yaml new file mode 100644 index 000000000..26b9d5c06 --- /dev/null +++ b/slices/libjemalloc2.yaml @@ -0,0 +1,17 @@ +package: libjemalloc2 + +essential: + - libjemalloc2_copyright + +slices: + libs: + essential: + - libc6_libs + - libgcc-s1_libs + - libstdc++6_libs + contents: + /usr/lib/*-linux-*/libjemalloc.so.2: + + copyright: + contents: + /usr/share/doc/libjemalloc2/copyright: diff --git a/slices/liblzf1.yaml b/slices/liblzf1.yaml new file mode 100644 index 000000000..a75c88e0e --- /dev/null +++ b/slices/liblzf1.yaml @@ -0,0 +1,15 @@ +package: liblzf1 + +essential: + - liblzf1_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/*-linux-*/liblzf.so.1*: + + copyright: + contents: + /usr/share/doc/liblzf1/copyright: diff --git a/slices/redis-server.yaml b/slices/redis-server.yaml new file mode 100644 index 000000000..4eea25cd1 --- /dev/null +++ b/slices/redis-server.yaml @@ -0,0 +1,27 @@ +package: redis-server + +essential: + - redis-server_copyright + +slices: + bins: + essential: + - redis-server_config + - redis-tools_bins + contents: + /usr/bin/redis-server: + + config: + contents: + /etc/redis/redis.conf: + + services: + essential: + - redis-server_bins + contents: + /usr/lib/systemd/system/redis-server.service: + /usr/lib/systemd/system/redis-server@.service: + + copyright: + contents: + /usr/share/doc/redis-server/copyright: diff --git a/slices/redis-tools.yaml b/slices/redis-tools.yaml new file mode 100644 index 000000000..69970dd72 --- /dev/null +++ b/slices/redis-tools.yaml @@ -0,0 +1,26 @@ +package: redis-tools + +essential: + - redis-tools_copyright + +slices: + bins: + # redis-tools actually depends on adduser as well to create and remove + # a user during package install/removal - however we don't support this + # currently so adduser is not added here. + essential: + - libatomic1_libs + - libc6_libs + - libjemalloc2_libs + - liblzf1_libs + - libssl3t64_libs + - libsystemd0_libs + contents: + /usr/bin/redis-benchmark: + /usr/bin/redis-check-aof: + /usr/bin/redis-check-rdb: + /usr/bin/redis-cli: + + copyright: + contents: + /usr/share/doc/redis-tools/copyright: diff --git a/tests/spread/integration/redis-server/task.yaml b/tests/spread/integration/redis-server/task.yaml new file mode 100644 index 000000000..9cfe7426b --- /dev/null +++ b/tests/spread/integration/redis-server/task.yaml @@ -0,0 +1,8 @@ +summary: Integration tests for redis-server + +execute: | + # Chisel a minimum number of slices to give us a runnable system that we can + # test in. + rootfs="$(install-slices redis-server_bins)" + + chroot "${rootfs}/" redis-server -v diff --git a/tests/spread/integration/redis-tools/task.yaml b/tests/spread/integration/redis-tools/task.yaml new file mode 100644 index 000000000..2fb3a0da1 --- /dev/null +++ b/tests/spread/integration/redis-tools/task.yaml @@ -0,0 +1,13 @@ +summary: Integration tests for redis-tools + +execute: | + # Chisel a minimum number of slices to give us a runnable system that we can + # test in. + rootfs="$(install-slices redis-tools_bins)" + + touch "${rootfs}/foo" + + chroot "${rootfs}/" redis-benchmark -v + chroot "${rootfs}/" redis-cli -v + chroot "${rootfs}/" redis-check-aof /foo + chroot "${rootfs}/" redis-check-rdb -v From af12f840dd907f3352d61ffee9c08bd36a818a4f Mon Sep 17 00:00:00 2001 From: Jeremy Norris Date: Mon, 16 Dec 2024 11:10:18 -0600 Subject: [PATCH 19/23] feat(24.04): add slice for gosu (#430) --- slices/gosu.yaml | 13 +++++++++++++ tests/spread/integration/gosu/task.yaml | 11 +++++++++++ 2 files changed, 24 insertions(+) create mode 100644 slices/gosu.yaml create mode 100644 tests/spread/integration/gosu/task.yaml diff --git a/slices/gosu.yaml b/slices/gosu.yaml new file mode 100644 index 000000000..91939ebc3 --- /dev/null +++ b/slices/gosu.yaml @@ -0,0 +1,13 @@ +package: gosu + +essential: + - gosu_copyright + +slices: + bins: + contents: + /usr/sbin/gosu: + + copyright: + contents: + /usr/share/doc/gosu/copyright: diff --git a/tests/spread/integration/gosu/task.yaml b/tests/spread/integration/gosu/task.yaml new file mode 100644 index 000000000..dcb1fd837 --- /dev/null +++ b/tests/spread/integration/gosu/task.yaml @@ -0,0 +1,11 @@ +summary: Integration tests for gosu + +execute: | + # Chisel a minimum number of slices to give us a runnable system that we can + # test in. + rootfs="$(install-slices gosu_bins)" + + mkdir -p "${rootfs}"/proc/self + ln -sf /usr/sbin/gosu "${rootfs}"/proc/self/exe + + chroot "${rootfs}/" gosu -h From c9d7bd0be623caf2b3e62fe3ea02e7bb0dceb318 Mon Sep 17 00:00:00 2001 From: Rafid Bin Mostofa Date: Tue, 17 Dec 2024 11:49:07 -0500 Subject: [PATCH 20/23] feat(24.04): add pro archives definition (#409) * fix: remove "default" field from "ubuntu" archive If "default" is set, newer versions of Chisel will not fetch from other archives unless explicitly pinned by the slice definition file. We do not want that. Chisel <= v1.0.0 will continue to work, nonetheless, with this change. --- chisel.yaml | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/chisel.yaml b/chisel.yaml index d5aa55478..dc4ee8a97 100644 --- a/chisel.yaml +++ b/chisel.yaml @@ -1,13 +1,34 @@ format: v1 archives: + # archive.ubuntu.com/ubuntu/ (amd64, i386) + # ports.ubuntu.com/ubuntu-ports/ (other arch) ubuntu: - default: true + priority: 10 version: 24.04 components: [main, universe] suites: [noble, noble-security, noble-updates] public-keys: [ubuntu-archive-key-2018] +v2-archives: + # esm.ubuntu.com/apps/ubuntu/ + ubuntu-esm-apps: + pro: esm-apps + priority: 16 + version: 24.04 + components: [main] + suites: [noble-apps-security, noble-apps-updates] + public-keys: [ubuntu-apps-key] + + # esm.ubuntu.com/infra/ubuntu/ + ubuntu-esm-infra: + pro: esm-infra + priority: 15 + version: 24.04 + components: [main] + suites: [noble-infra-security, noble-infra-updates] + public-keys: [ubuntu-esm-key-v2] + public-keys: # Ubuntu Archive Automatic Signing Key (2018) # rsa4096/f6ecb3762474eda9d21b7022871920d1991bc93c 2018-09-17T15:01:46Z @@ -43,3 +64,73 @@ public-keys: uOgcXny1UlwtCUzlrSaP =9AdM -----END PGP PUBLIC KEY BLOCK----- + + # Ubuntu Apps Automatic Signing Key . + # rsa4096/e8a443ce358113d187bee0e6ab01a101db53907b 2019-11-21T09:08:30Z + ubuntu-apps-key: + id: "AB01A101DB53907B" + armor: | + -----BEGIN PGP PUBLIC KEY BLOCK----- + + mQINBF3WVA4BEAC7MDr8HClfKptSd4VeB12Vy+Ao/4NpY2ITdkRed4vfh/4eBWWn + 3+in6So2ekweifACSxScB/M9zVObsI1cab7QPMkIiATNUfIyOEP7iNWLX4+AytM1 + LP3bZo8OpghnLZNstCGbiRUO4CDNmCI04DOPCu9EVEO4WWNuWIMRwCLShDSf7Cid + J2fn2TT/7vsmA4eI3YnAne+u8g4X2zMHQFkHANhylB0lPyThXo5jaxHImzm4wf/2 + LF8f1Y1nRQObS2jcvYc3fm9B7iOGpyNAw3h6hrPKH5T9tY/ZoMtFHqn66J1CBSHb + hDkEvA46X50su4yAHeSiEG/hMYG7SoHzmAsjEXnvkTIE41WhmxlidQnRs2uWy34U + 7VmOpaidWn3R99fNHYOtSOB6bpIvls8snWSQ63jcFXnt05nVZsp/Ixzl0Oqitynx + DFwoxEwt3ZuCHwxbx2vZ+FiZXVFN7I0IyBDOEL6XS27FNaMCZ7Q/6z/ckdWto55E + 264OWf9lnw31bXFXHWSusRXWzD6FK8dqWgjtrWwRxlvF4jm688lqpjac6fFES3UK + BhjyHXFGL/+HHZ9CNxlLYF5QnXq1mGR0Ykw975u8KoOFSLBqsx+1a21m6dfzujY7 + 2Gq6Sju+9Yo1aOF+CNvTMYdRBoDL4sFj6VAmUsszMA5aAb+82pOCaDvGJQARAQAB + tDVVYnVudHUgQXBwcyBBdXRvbWF0aWMgU2lnbmluZyBLZXkgPGVzbUBjYW5vbmlj + YWwuY29tPokCOAQTAQIAIgUCXdZUDgIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgEC + F4AACgkQqwGhAdtTkHuTOw/8Czv42TSpwHz+eNtl3ZFyxta9rR/qWC3h+vMu0R/l + 5KU3aQQOygWOoUcr1QTPSSg3v/H+v/8vqVq2UuUxSIfpMxBj2kIX2vqskv6Roez7 + xR8lVDa0a47z/NYMfKpxrEJxOLh/c7I6aAsa597bTqDHtucHL/22BvfUJJqw6jq1 + 7SswP5lqKPBFz7x+E2hgfJE7Vn7h0ICm29FkWnOeTKfj8VwTAeKXKUI9Hw6+aqr9 + 29Y2NdLsYZ57mpivRLNM9sBZoF3avP1pUC2k0IwP3dwh4AxUMXjRRPh173iXBfR2 + yAf1lWET/5+8dSBrfFIZSo+FF/EEBmqIVtJpHkq8+YxUbCLbkoikRi2kwrgyXLEn + FqxSU2Ab0xurFHiHcJoCGVD38xjznO5cQl7H4K9+B/rFpTTowOHbOcFpKAzpYqB5 + 8rnR1yRSsB33zac8xesUIfzYWRtLc5/VIb5mOkWlb62d8emILx2XuRFVjKq6mKki + oGckhDUOuEFrjW1cQq+PWBBxyJoXcy6wGSoPJ/ELeaf9zg8SF0jwuN6BPHVBeJ/E + W53zR5iV0N9fRT+M2JN5tc5HenO92xLgPAh+GPWLYmPdTmHu+kFozqsHx/NUw2iP + PBL6Q1VZytt2Uf6qLPUx7GpYMKf42Vldb0feFo/YA/lzOgPlY29pDLKXbse6o+Sr + kmk= + =AEEr + -----END PGP PUBLIC KEY BLOCK----- + + # Ubuntu Extended Security Maintenance Automatic Signing Key v2 . + # rsa4096/56f7650a24c9e9ecf87c4d8d4067e40313cb4b13 2019-04-17T02:33:33Z + ubuntu-esm-key-v2: + id: "4067E40313CB4B13" + armor: | + -----BEGIN PGP PUBLIC KEY BLOCK----- + + mQINBFy2kH0BEADl/2e2pULZaSRovd3E1i1cVk3zebzndHZm/hK8/Srx69ivw3pY + 680gFE/N3s3R/C5Jh9ThdD1zpGmxVdqcABSPmW1FczdFZY2E37HMH7Uijs4CsnFs + 8nrNGQaqX/T1g2fQqjia3zkabMeehUEZC5GPYjpeeFW6Wy1O1A1Tzu7/Wjc+uF/t + YYe/ZPXea74QZphu/N+8dy/ts/IzL2VtXuxiegGLfBFqzgZuBmlxXHVhftKvcis9 + t2ko65uVyDcLtItMhSJokKBsIYJliqOXjUbQf5dz8vLXkku94arBMgsxDWT4K/xI + OTsaI/GMlSIKQ6Ucd/GKrBEsy5O8RDtD9A2klV7YeEwPEgqL+RhpdxAs/xUeTOZG + JKwuvlBjzIhJF9bIfbyzx7DdcGFqRE+a8eBIUMQjVkt9Yk7jj0eV3oVTE7XNhb53 + rHuPL+zJVkiharxiTgYvkow3Nlbg3oURx9Ln67ni9pUtI1HbortGZsAkyOcpep58 + K9cYvUePJWzjkY+bjcGKR19CWPl7KaUalIf2Tao5OwtqjrblTsXdtV7eG45ys0MT + Kl/DeqTJ0w6+i4eq4ZUfOCL/DIwS5zUB9j1KMUgEfocjYIdHWI8TSrA8jLYNPbVE + 6+WjekHMB9liNrEQoESWBddS+bglPxuVwy2paGTUYJW1GnRZOTD+CG4ETQARAQAB + tFFVYnVudHUgRXh0ZW5kZWQgU2VjdXJpdHkgTWFpbnRlbmFuY2UgQXV0b21hdGlj + IFNpZ25pbmcgS2V5IHYyIDxlc21AY2Fub25pY2FsLmNvbT6JAjgEEwECACIFAly2 + kH0CGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEEBn5AMTy0sTo/8QAJ1C + NhAkZ+Xq/BZ8UzAFCQn6GlIYg/ueY216xcQdDX1uN8hNOlPTNmftroIvohFAfFtB + m5galzY3DBPU8eZr8Y8XgiGD97wkR4zfhfh1EK/6diMG/HG00kdcWquFXMRB7E7S + nDTpyuPfkAzm9n6l69UB3UA53CaEUuVJ7qFfZsWgiQeUJpvqD0MIVsWr+T/paSx7 + 1JE9BVatFefq0egErv1sa2uYgcH9TRZMLw6gYxWtXeGA08Cpp0+OEvIzmJOHo5/F + EpJ3hGk87Of77BC7FbqSDpeYkcjnlI2i0QAxxFygKhPOMLuA4XVn3TDuqCgTFIFC + puupzIX/Up51FJmo64V9GZ/uF0jZy4tDxsCRJnEV+4Kv2sU5uMlmNchZMBjXYGiG + tpH9CqJkSZjFvB6bk+Ot98KI6+CuNWn1N0sXFKpEUGdJLuOKfJ9+xI5plo8Bct5C + DM9s4l0IuAPCsyayXrSmlyOAHzxDUeRMCEUnXWfycCUyqdyYIcCMPLV44Ccg9NyS + 89dEauSCPuyCSxm5UYEHQdsSI/+rxRdS9IzoKs4za2L7fhY8PfdPlmghmXc/chz1 + RtgjPfAsUHUPRr0h//TzxRm5dbYdUyqMPzZcDO8wYBT/4xrwnFkSHZhnVxpw7PDi + JYK4SVVc4ZO20PE1+RZc5oSbt4hRbFTCSb31Pydc + =KWLs + -----END PGP PUBLIC KEY BLOCK----- From 7388765d3255a92e7fdc9559280a4376d18c48e7 Mon Sep 17 00:00:00 2001 From: Jeremy Norris Date: Wed, 18 Dec 2024 05:17:47 -0600 Subject: [PATCH 21/23] feat(24.04): add slice for libnginx-mod-http-headers-more-filter (#437) --- ...libnginx-mod-http-headers-more-filter.yaml | 26 +++++++++++++++++++ slices/nginx.yaml | 1 + .../task.yaml | 9 +++++++ 3 files changed, 36 insertions(+) create mode 100644 slices/libnginx-mod-http-headers-more-filter.yaml create mode 100644 tests/spread/integration/libnginx-mod-http-headers-more-filter/task.yaml diff --git a/slices/libnginx-mod-http-headers-more-filter.yaml b/slices/libnginx-mod-http-headers-more-filter.yaml new file mode 100644 index 000000000..54c28022f --- /dev/null +++ b/slices/libnginx-mod-http-headers-more-filter.yaml @@ -0,0 +1,26 @@ +package: libnginx-mod-http-headers-more-filter + +essential: + - libnginx-mod-http-headers-more-filter_copyright + +slices: + modules: + essential: + # libnginx-mod-http-headers-more-filter depends on nginx-abi, which is + # a virtual package provided by nginx, hence the dependency on nginx_bins. + - libc6_libs + - libnginx-mod-http-headers-more-filter_config + - nginx_bins + contents: + /usr/lib/nginx/modules/ngx_http_headers_more_filter_module.so: + + config: + contents: + # This symlink is created by the maintainer scipts + /etc/nginx/modules-enabled/50-mod-http-headers-more-filter.conf: + symlink: /usr/share/nginx/modules-available/mod-http-headers-more-filter.conf + /usr/share/nginx/modules-available/mod-http-headers-more-filter.conf: + + copyright: + contents: + /usr/share/doc/libnginx-mod-http-headers-more-filter/copyright: diff --git a/slices/nginx.yaml b/slices/nginx.yaml index 7d1482506..2399e0a5c 100644 --- a/slices/nginx.yaml +++ b/slices/nginx.yaml @@ -14,6 +14,7 @@ slices: - libpcre2-8-0_libs - libssl3t64_libs - nginx-common_config + - nginx-common_modules - zlib1g_libs contents: /usr/sbin/nginx: diff --git a/tests/spread/integration/libnginx-mod-http-headers-more-filter/task.yaml b/tests/spread/integration/libnginx-mod-http-headers-more-filter/task.yaml new file mode 100644 index 000000000..62b0b23dc --- /dev/null +++ b/tests/spread/integration/libnginx-mod-http-headers-more-filter/task.yaml @@ -0,0 +1,9 @@ +summary: Integration tests for libnginx-mod-http-headers-more-filter + +execute: | + # Chisel a minimum number of slices to give us a runnable system that we can + # test in. + rootfs="$(install-slices base-files_var base-passwd_data libnginx-mod-http-headers-more-filter_modules)" + + # This will fail if loading of the NGINX module fails. + chroot "${rootfs}/" nginx -t From 3d929dafedfa38b695233e5ad9e949cd80192e8b Mon Sep 17 00:00:00 2001 From: Hadrien Patte Date: Wed, 18 Dec 2024 15:05:21 +0100 Subject: [PATCH 22/23] feat(24.04): Add SDF for libtheora0 and libx11-xcb1 (#433) --- slices/libtheora0.yaml | 19 +++++++++++++++++++ slices/libx11-xcb1.yaml | 15 +++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 slices/libtheora0.yaml create mode 100644 slices/libx11-xcb1.yaml diff --git a/slices/libtheora0.yaml b/slices/libtheora0.yaml new file mode 100644 index 000000000..4bf066e15 --- /dev/null +++ b/slices/libtheora0.yaml @@ -0,0 +1,19 @@ +package: libtheora0 + +essential: + - libtheora0_copyright + +slices: + libs: + essential: + - libc6_libs + - libcairo2_libs + - libogg0_libs + contents: + /usr/lib/*-linux-*/libtheora.so.0*: + /usr/lib/*-linux-*/libtheoradec.so.1*: + /usr/lib/*-linux-*/libtheoraenc.so.1*: + + copyright: + contents: + /usr/share/doc/libtheora0/copyright: diff --git a/slices/libx11-xcb1.yaml b/slices/libx11-xcb1.yaml new file mode 100644 index 000000000..2bc188ba1 --- /dev/null +++ b/slices/libx11-xcb1.yaml @@ -0,0 +1,15 @@ +package: libx11-xcb1 + +essential: + - libx11-xcb1_copyright + +slices: + libs: + essential: + - libx11-6_libs + contents: + /usr/lib/*-linux-*/libX11-xcb.so.1*: + + copyright: + contents: + /usr/share/doc/libx11-xcb1/copyright: From 3801300c9acfe6e5bc7f445503a810c0c9f5c659 Mon Sep 17 00:00:00 2001 From: Philip Meulengracht Date: Thu, 19 Dec 2024 09:31:03 +0100 Subject: [PATCH 23/23] feat(24.04): add iptables, sudo and add mutation script for pam-auth-update (#306) --------- Co-authored-by: Cristovao Cordeiro Co-authored-by: Rafid Bin Mostofa Co-authored-by: zhijie-yang --- slices/iptables.yaml | 204 ++++++++++++++++++ slices/libip4tc2.yaml | 15 ++ slices/libip6tc2.yaml | 15 ++ slices/libmnl0.yaml | 15 ++ slices/libnetfilter-conntrack3.yaml | 17 ++ slices/libnfnetlink0.yaml | 15 ++ slices/libnftnl11.yaml | 16 ++ slices/libpam-runtime.yaml | 127 +++++++++-- slices/libxtables12.yaml | 15 ++ slices/sudo.yaml | 56 +++++ tests/spread/integration/iptables/task.yaml | 23 ++ .../integration/libpam-runtime/task.yaml | 13 ++ tests/spread/integration/sudo/task.yaml | 12 ++ 13 files changed, 531 insertions(+), 12 deletions(-) create mode 100644 slices/iptables.yaml create mode 100644 slices/libip4tc2.yaml create mode 100644 slices/libip6tc2.yaml create mode 100644 slices/libmnl0.yaml create mode 100644 slices/libnetfilter-conntrack3.yaml create mode 100644 slices/libnfnetlink0.yaml create mode 100644 slices/libnftnl11.yaml create mode 100644 slices/libxtables12.yaml create mode 100644 slices/sudo.yaml create mode 100644 tests/spread/integration/iptables/task.yaml create mode 100644 tests/spread/integration/libpam-runtime/task.yaml create mode 100644 tests/spread/integration/sudo/task.yaml diff --git a/slices/iptables.yaml b/slices/iptables.yaml new file mode 100644 index 000000000..843340bb8 --- /dev/null +++ b/slices/iptables.yaml @@ -0,0 +1,204 @@ +package: iptables + +essential: + - iptables_copyright + +slices: + bins: + essential: + - iptables_libs + - iptables_links + - libc6_libs + - libip4tc2_libs + - libip6tc2_libs + - libmnl0_libs + - libnetfilter-conntrack3_libs + - libnfnetlink0_libs + - libnftnl11_libs + - libxtables12_libs + - netbase_default-hosts + - netbase_default-networks + contents: + /usr/sbin/arptables-nft: + /usr/sbin/arptables-nft-restore: + /usr/sbin/arptables-nft-save: + /usr/sbin/ebtables-nft: + /usr/sbin/ebtables-nft-restore: + /usr/sbin/ebtables-nft-save: + /usr/sbin/ebtables-translate: + /usr/sbin/ip6tables-apply: + /usr/sbin/ip6tables-legacy: + /usr/sbin/ip6tables-legacy-restore: + /usr/sbin/ip6tables-legacy-save: + /usr/sbin/ip6tables-nft: + /usr/sbin/ip6tables-nft-restore: + /usr/sbin/ip6tables-nft-save: + /usr/sbin/ip6tables-restore-translate: + /usr/sbin/ip6tables-translate: + /usr/sbin/iptables-apply: + /usr/sbin/iptables-legacy: + /usr/sbin/iptables-legacy-restore: + /usr/sbin/iptables-legacy-save: + /usr/sbin/iptables-nft: + /usr/sbin/iptables-nft-restore: + /usr/sbin/iptables-nft-save: + /usr/sbin/iptables-restore-translate: + /usr/sbin/iptables-translate: + /usr/sbin/nfnl_osf: + /usr/sbin/xtables-legacy-multi: + /usr/sbin/xtables-monitor: + /usr/sbin/xtables-nft-multi: + + # The xlst is used to convert XML configuration into something + # iptables can understand, and vice-versa. + converters: + contents: + /usr/bin/iptables-xml: + /usr/share/iptables/iptables.xslt: + + libs: + contents: + /usr/lib/*-linux-*/xtables/libarpt_mangle.so: + /usr/lib/*-linux-*/xtables/libebt_802_3.so: + /usr/lib/*-linux-*/xtables/libebt_among.so: + /usr/lib/*-linux-*/xtables/libebt_arp.so: + /usr/lib/*-linux-*/xtables/libebt_arpreply.so: + /usr/lib/*-linux-*/xtables/libebt_dnat.so: + /usr/lib/*-linux-*/xtables/libebt_ip.so: + /usr/lib/*-linux-*/xtables/libebt_ip6.so: + /usr/lib/*-linux-*/xtables/libebt_log.so: + /usr/lib/*-linux-*/xtables/libebt_mark.so: + /usr/lib/*-linux-*/xtables/libebt_mark_m.so: + /usr/lib/*-linux-*/xtables/libebt_nflog.so: + /usr/lib/*-linux-*/xtables/libebt_pkttype.so: + /usr/lib/*-linux-*/xtables/libebt_redirect.so: + /usr/lib/*-linux-*/xtables/libebt_snat.so: + /usr/lib/*-linux-*/xtables/libebt_stp.so: + /usr/lib/*-linux-*/xtables/libebt_vlan.so: + /usr/lib/*-linux-*/xtables/libip6t_DNPT.so: + /usr/lib/*-linux-*/xtables/libip6t_HL.so: + /usr/lib/*-linux-*/xtables/libip6t_NETMAP.so: + /usr/lib/*-linux-*/xtables/libip6t_REJECT.so: + /usr/lib/*-linux-*/xtables/libip6t_SNPT.so: + /usr/lib/*-linux-*/xtables/libip6t_ah.so: + /usr/lib/*-linux-*/xtables/libip6t_dst.so: + /usr/lib/*-linux-*/xtables/libip6t_eui64.so: + /usr/lib/*-linux-*/xtables/libip6t_frag.so: + /usr/lib/*-linux-*/xtables/libip6t_hbh.so: + /usr/lib/*-linux-*/xtables/libip6t_hl.so: + /usr/lib/*-linux-*/xtables/libip6t_icmp6.so: + /usr/lib/*-linux-*/xtables/libip6t_ipv6header.so: + /usr/lib/*-linux-*/xtables/libip6t_mh.so: + /usr/lib/*-linux-*/xtables/libip6t_rt.so: + /usr/lib/*-linux-*/xtables/libip6t_srh.so: + /usr/lib/*-linux-*/xtables/libipt_CLUSTERIP.so: + /usr/lib/*-linux-*/xtables/libipt_ECN.so: + /usr/lib/*-linux-*/xtables/libipt_NETMAP.so: + /usr/lib/*-linux-*/xtables/libipt_REJECT.so: + /usr/lib/*-linux-*/xtables/libipt_TTL.so: + /usr/lib/*-linux-*/xtables/libipt_ULOG.so: + /usr/lib/*-linux-*/xtables/libipt_ah.so: + /usr/lib/*-linux-*/xtables/libipt_icmp.so: + /usr/lib/*-linux-*/xtables/libipt_realm.so: + /usr/lib/*-linux-*/xtables/libipt_ttl.so: + /usr/lib/*-linux-*/xtables/libxt_AUDIT.so: + /usr/lib/*-linux-*/xtables/libxt_CHECKSUM.so: + /usr/lib/*-linux-*/xtables/libxt_CLASSIFY.so: + /usr/lib/*-linux-*/xtables/libxt_CONNMARK.so: + /usr/lib/*-linux-*/xtables/libxt_CONNSECMARK.so: + /usr/lib/*-linux-*/xtables/libxt_CT.so: + /usr/lib/*-linux-*/xtables/libxt_DNAT.so: + /usr/lib/*-linux-*/xtables/libxt_DSCP.so: + /usr/lib/*-linux-*/xtables/libxt_HMARK.so: + /usr/lib/*-linux-*/xtables/libxt_IDLETIMER.so: + /usr/lib/*-linux-*/xtables/libxt_LED.so: + /usr/lib/*-linux-*/xtables/libxt_LOG.so: + /usr/lib/*-linux-*/xtables/libxt_MARK.so: + /usr/lib/*-linux-*/xtables/libxt_MASQUERADE.so: + /usr/lib/*-linux-*/xtables/libxt_NAT.so: + /usr/lib/*-linux-*/xtables/libxt_NFLOG.so: + /usr/lib/*-linux-*/xtables/libxt_NFQUEUE.so: + /usr/lib/*-linux-*/xtables/libxt_NOTRACK.so: + /usr/lib/*-linux-*/xtables/libxt_RATEEST.so: + /usr/lib/*-linux-*/xtables/libxt_REDIRECT.so: + /usr/lib/*-linux-*/xtables/libxt_SECMARK.so: + /usr/lib/*-linux-*/xtables/libxt_SET.so: + /usr/lib/*-linux-*/xtables/libxt_SNAT.so: + /usr/lib/*-linux-*/xtables/libxt_SYNPROXY.so: + /usr/lib/*-linux-*/xtables/libxt_TCPMSS.so: + /usr/lib/*-linux-*/xtables/libxt_TCPOPTSTRIP.so: + /usr/lib/*-linux-*/xtables/libxt_TEE.so: + /usr/lib/*-linux-*/xtables/libxt_TOS.so: + /usr/lib/*-linux-*/xtables/libxt_TPROXY.so: + /usr/lib/*-linux-*/xtables/libxt_TRACE.so: + /usr/lib/*-linux-*/xtables/libxt_addrtype.so: + /usr/lib/*-linux-*/xtables/libxt_bpf.so: + /usr/lib/*-linux-*/xtables/libxt_cgroup.so: + /usr/lib/*-linux-*/xtables/libxt_cluster.so: + /usr/lib/*-linux-*/xtables/libxt_comment.so: + /usr/lib/*-linux-*/xtables/libxt_connbytes.so: + /usr/lib/*-linux-*/xtables/libxt_connlabel.so: + /usr/lib/*-linux-*/xtables/libxt_connlimit.so: + /usr/lib/*-linux-*/xtables/libxt_connmark.so: + /usr/lib/*-linux-*/xtables/libxt_conntrack.so: + /usr/lib/*-linux-*/xtables/libxt_cpu.so: + /usr/lib/*-linux-*/xtables/libxt_dccp.so: + /usr/lib/*-linux-*/xtables/libxt_devgroup.so: + /usr/lib/*-linux-*/xtables/libxt_dscp.so: + /usr/lib/*-linux-*/xtables/libxt_ecn.so: + /usr/lib/*-linux-*/xtables/libxt_esp.so: + /usr/lib/*-linux-*/xtables/libxt_hashlimit.so: + /usr/lib/*-linux-*/xtables/libxt_helper.so: + /usr/lib/*-linux-*/xtables/libxt_ipcomp.so: + /usr/lib/*-linux-*/xtables/libxt_iprange.so: + /usr/lib/*-linux-*/xtables/libxt_ipvs.so: + /usr/lib/*-linux-*/xtables/libxt_length.so: + /usr/lib/*-linux-*/xtables/libxt_limit.so: + /usr/lib/*-linux-*/xtables/libxt_mac.so: + /usr/lib/*-linux-*/xtables/libxt_mark.so: + /usr/lib/*-linux-*/xtables/libxt_multiport.so: + /usr/lib/*-linux-*/xtables/libxt_nfacct.so: + /usr/lib/*-linux-*/xtables/libxt_osf.so: + /usr/lib/*-linux-*/xtables/libxt_owner.so: + /usr/lib/*-linux-*/xtables/libxt_physdev.so: + /usr/lib/*-linux-*/xtables/libxt_pkttype.so: + /usr/lib/*-linux-*/xtables/libxt_policy.so: + /usr/lib/*-linux-*/xtables/libxt_quota.so: + /usr/lib/*-linux-*/xtables/libxt_rateest.so: + /usr/lib/*-linux-*/xtables/libxt_recent.so: + /usr/lib/*-linux-*/xtables/libxt_rpfilter.so: + /usr/lib/*-linux-*/xtables/libxt_sctp.so: + /usr/lib/*-linux-*/xtables/libxt_set.so: + /usr/lib/*-linux-*/xtables/libxt_socket.so: + /usr/lib/*-linux-*/xtables/libxt_standard.so: + /usr/lib/*-linux-*/xtables/libxt_state.so: + /usr/lib/*-linux-*/xtables/libxt_statistic.so: + /usr/lib/*-linux-*/xtables/libxt_string.so: + /usr/lib/*-linux-*/xtables/libxt_tcp.so: + /usr/lib/*-linux-*/xtables/libxt_tcpmss.so: + /usr/lib/*-linux-*/xtables/libxt_time.so: + /usr/lib/*-linux-*/xtables/libxt_tos.so: + /usr/lib/*-linux-*/xtables/libxt_u32.so: + /usr/lib/*-linux-*/xtables/libxt_udp.so: + + # These are created by the post-inst script and sets up + # defaults for some of the binaries. Emulate this by creating + # the expected symlinks. + links: + contents: + /usr/sbin/arptables: {symlink: /usr/sbin/arptables-nft} + /usr/sbin/arptables-restore: {symlink: /usr/sbin/arptables-nft-restore} + /usr/sbin/arptables-save: {symlink: /usr/sbin/arptables-nft-save} + /usr/sbin/ebtables: {symlink: /usr/sbin/ebtables-nft} + /usr/sbin/ebtables-restore: {symlink: /usr/sbin/ebtables-nft-restore} + /usr/sbin/ebtables-save: {symlink: /usr/sbin/ebtables-nft-save} + /usr/sbin/ip6tables: {symlink: /usr/sbin/ip6tables-nft} + /usr/sbin/ip6tables-restore: {symlink: /usr/sbin/ip6tables-nft-restore} + /usr/sbin/ip6tables-save: {symlink: /usr/sbin/ip6tables-nft-save} + /usr/sbin/iptables: {symlink: /usr/sbin/iptables-nft} + /usr/sbin/iptables-restore: {symlink: /usr/sbin/iptables-nft-restore} + /usr/sbin/iptables-save: {symlink: /usr/sbin/iptables-nft-save} + + copyright: + contents: + /usr/share/doc/iptables/copyright: diff --git a/slices/libip4tc2.yaml b/slices/libip4tc2.yaml new file mode 100644 index 000000000..d4eeb744c --- /dev/null +++ b/slices/libip4tc2.yaml @@ -0,0 +1,15 @@ +package: libip4tc2 + +essential: + - libip4tc2_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/*-linux-*/libip4tc.so.2*: + + copyright: + contents: + /usr/share/doc/libip4tc2/copyright: diff --git a/slices/libip6tc2.yaml b/slices/libip6tc2.yaml new file mode 100644 index 000000000..8fd178ef5 --- /dev/null +++ b/slices/libip6tc2.yaml @@ -0,0 +1,15 @@ +package: libip6tc2 + +essential: + - libip6tc2_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/*-linux-*/libip6tc.so.2*: + + copyright: + contents: + /usr/share/doc/libip6tc2/copyright: diff --git a/slices/libmnl0.yaml b/slices/libmnl0.yaml new file mode 100644 index 000000000..6a4a337fd --- /dev/null +++ b/slices/libmnl0.yaml @@ -0,0 +1,15 @@ +package: libmnl0 + +essential: + - libmnl0_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/*-linux-*/libmnl.so.0*: + + copyright: + contents: + /usr/share/doc/libmnl0/copyright: diff --git a/slices/libnetfilter-conntrack3.yaml b/slices/libnetfilter-conntrack3.yaml new file mode 100644 index 000000000..757f37619 --- /dev/null +++ b/slices/libnetfilter-conntrack3.yaml @@ -0,0 +1,17 @@ +package: libnetfilter-conntrack3 + +essential: + - libnetfilter-conntrack3_copyright + +slices: + libs: + essential: + - libc6_libs + - libmnl0_libs + - libnfnetlink0_libs + contents: + /usr/lib/*-linux-*/libnetfilter_conntrack.so.3*: + + copyright: + contents: + /usr/share/doc/libnetfilter-conntrack3/copyright: diff --git a/slices/libnfnetlink0.yaml b/slices/libnfnetlink0.yaml new file mode 100644 index 000000000..ecf4abda5 --- /dev/null +++ b/slices/libnfnetlink0.yaml @@ -0,0 +1,15 @@ +package: libnfnetlink0 + +essential: + - libnfnetlink0_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/*-linux-*/libnfnetlink.so.0*: + + copyright: + contents: + /usr/share/doc/libnfnetlink0/copyright: diff --git a/slices/libnftnl11.yaml b/slices/libnftnl11.yaml new file mode 100644 index 000000000..aa2a0620b --- /dev/null +++ b/slices/libnftnl11.yaml @@ -0,0 +1,16 @@ +package: libnftnl11 + +essential: + - libnftnl11_copyright + +slices: + libs: + essential: + - libc6_libs + - libmnl0_libs + contents: + /usr/lib/*-linux-*/libnftnl.so.11*: + + copyright: + contents: + /usr/share/doc/libnftnl11/copyright: diff --git a/slices/libpam-runtime.yaml b/slices/libpam-runtime.yaml index 58562cea9..91f3943bd 100644 --- a/slices/libpam-runtime.yaml +++ b/slices/libpam-runtime.yaml @@ -18,28 +18,126 @@ slices: # pam-config and pam-defaults slices are only used for generation, and are useless # for anything else. - # Applications that need libpam for now should just rely on the config and var slices for now - - # until appropriate solution for emulating what pam-auth-update can do (or maybe something else). + # Emulate in part what pam-auth-update does. There is a short coming right now, we + # cannot include other files from other slices that install into + # /usr/share/pam-configs/* + # since this mutation script wont be able to access them as of writing. config: + essential: + - libpam-runtime_var contents: /etc/pam.conf: + /etc/pam.d/common-account: { text: "", mutable: true } + /etc/pam.d/common-auth: { text: "", mutable: true } + /etc/pam.d/common-password: { text: "", mutable: true } + /etc/pam.d/common-session: { text: "", mutable: true } + /etc/pam.d/common-session-noninteractive: { text: "", mutable: true } /etc/pam.d/other: + /usr/share/pam-configs/unix: { until: mutate } + /usr/share/pam/common-account: { until: mutate } + /usr/share/pam/common-auth: { until: mutate } + /usr/share/pam/common-password: { until: mutate } + /usr/share/pam/common-session: { until: mutate } + /usr/share/pam/common-session-noninteractive: { until: mutate } + mutate: | + def parse_type(t): + strippedValue = t[1].strip() + if t[0] == "Auth-Type": + return ["auth", strippedValue] + elif t[0] == "Account-Type": + return ["account", strippedValue] + elif t[0] == "Session-Type": + return ["session-noninteractive", strippedValue] + elif t[0] == "Password-Type": + return ["password", strippedValue] + return [] - # folders expected by libpam to exist - var: - contents: - /var/lib/pam/: + confs_dir = "/usr/share/pam-configs/" + confs = content.list(confs_dir) + confdata = {} + for x in confs: + conf = content.read(confs_dir + x) + lines = conf.splitlines() + + m = "" + p = "" + t = "" + for i in range(len(lines)): + vals = lines[i].split(":") + if vals[0] == "Priority": + p = vals[1].strip() + elif vals[0] in ["Auth-Type", "Account-Type", "Session-Type", "Password-Type"]: + m, t = parse_type(vals) + elif vals[0] == "Session-Interactive-Only": + if vals[1].strip() == "yes": + m = "session" + elif vals[0] in ["Auth-Initial", "Account-Initial", + "Session-Initial", "Password-Initial"]: + d = [] + for j in range(i + 1, len(lines)): + if ":" in lines[j]: + break + d.append(lines[j]) + confdata[m] = {t: {p: d}} + + def reconfigure_data_line(section, line, i): + res = "" + upd = line.replace("success=end", "success=" + str(i)) + if section == "session-noninteractive": + res += "session" + upd + "\n" + else: + res += section + upd + "\n" + return res + + def build_block(data, section, block, existing): + si = 1 + res = existing + if section in data: + types = data[section] + if block in types: + # get the keys (which are the priorities) and + # then reverse sort them to get the highest priority + # first + itemsByPriority = types[block] + keys = itemsByPriority.keys() + keys = sorted(keys, reverse=True) + for p in keys: + for d in itemsByPriority[p]: + res = reconfigure_data_line(section, d, si) + "\n" + si += 1 + + # no primary block, so output a stock pam_permit line + # to keep the stack intact + if res == "" and block == "Primary": + return reconfigure_data_line(section, "\t[default=1]\t\t\tpam_permit.so\n", 1); + return res + + fnames = ["account", "auth", "password", "session", "session-noninteractive"] + idnames = ["$account", "$auth", "$password", "$session", "$session_nonint"] - # Used by pam-auth-update to generate the pam.d/ config - # files inside etc. However pam-auth-update relies on - # debconf to actually work and discover these packages. + for i in range(len(fnames)): + fn = fnames[i] + template = content.read("/usr/share/pam/common-" + fn) + pb = build_block(confdata, fn, "Primary", "") + ab = build_block(confdata, fn, "Additional", "") + + # session also includes settings from the session-noninteractive, + # but not the other way around + if fn == "session": + pb = build_block(confdata, "session-noninteractive", "Primary", pb) + ab = build_block(confdata, "session-noninteractive", "Additional", ab) + + template = template.replace(idnames[i] + "_primary", pb) + template = template.replace(idnames[i] + "_additional", ab) + content.write("/etc/pam.d/common-" + fn, template) + + # The following two slices are kept for backwards compatibility. + # However, the pam-defaults have been modified to deliver correct + # files instead of templates. pam-config: contents: /usr/share/pam-configs/unix: - # default templates for the /etc/pam.d files that are used by - # pam-auth-update to generate the /etc/pam.d versions based on - # additional plugs in /usr/share/pam-configs/*. pam-defaults: contents: /usr/share/pam/common-account: @@ -53,6 +151,11 @@ slices: /usr/share/pam/common-session-noninteractive.md5sums: /usr/share/pam/common-session.md5sums: + # folders expected by libpam to exist + var: + contents: + /var/lib/pam/: + copyright: contents: /usr/share/doc/libpam-runtime/copyright: diff --git a/slices/libxtables12.yaml b/slices/libxtables12.yaml new file mode 100644 index 000000000..bd8d1d699 --- /dev/null +++ b/slices/libxtables12.yaml @@ -0,0 +1,15 @@ +package: libxtables12 + +essential: + - libxtables12_copyright + +slices: + libs: + essential: + - libc6_libs + contents: + /usr/lib/*-linux-*/libxtables.so.12*: + + copyright: + contents: + /usr/share/doc/libxtables12/copyright: diff --git a/slices/sudo.yaml b/slices/sudo.yaml new file mode 100644 index 000000000..6e9507472 --- /dev/null +++ b/slices/sudo.yaml @@ -0,0 +1,56 @@ +package: sudo + +essential: + - sudo_copyright + +slices: + bins: + essential: + - libapparmor1_libs + - libaudit1_libs + - libc6_libs + - libpam-modules_libs + - libpam0g_libs + - libselinux1_libs + - libssl3t64_libs + - sudo_config + - sudo_libs + - zlib1g_libs + contents: + /usr/bin/cvtsudoers: + /usr/bin/sudo: + /usr/bin/sudoedit: + /usr/bin/sudoreplay: + /usr/libexec/sudo/sesh: + /usr/sbin/sudo_logsrvd: + /usr/sbin/sudo_sendlog: + /usr/sbin/visudo: + + config: + contents: + /etc/pam.d/sudo: + /etc/pam.d/sudo-i: + /etc/sudo.conf: + /etc/sudo_logsrvd.conf: + /etc/sudoers: + /usr/lib/tmpfiles.d/sudo.conf: + + services: + essential: + - sudo_bins + contents: + /usr/lib/systemd/system/sudo.service: + + libs: + contents: + /usr/libexec/sudo/audit_json.so: + /usr/libexec/sudo/group_file.so: + /usr/libexec/sudo/libsudo_util.so*: + /usr/libexec/sudo/sudo_intercept.so: + /usr/libexec/sudo/sudo_noexec.so: + /usr/libexec/sudo/sudoers.so: + /usr/libexec/sudo/system_group.so: + + copyright: + contents: + /usr/share/doc/sudo/copyright: diff --git a/tests/spread/integration/iptables/task.yaml b/tests/spread/integration/iptables/task.yaml new file mode 100644 index 000000000..f89381d1a --- /dev/null +++ b/tests/spread/integration/iptables/task.yaml @@ -0,0 +1,23 @@ +summary: Integration tests for iptables + +execute: | + rootfs="$(install-slices passwd_config libpam-runtime_config netbase_default-hosts sudo_bins iptables_bins)" + host=$(hostname) + + # setup /etc/hosts for the current hostname, otherwise + # sudo will be confused + sed -i "/127.0.0.1\slocalhost/a 127.0.0.1\s$host" "$rootfs"/etc/hosts + + mkdir "$rootfs"/run + + # ensure the command spits something out we can recognize + chroot "$rootfs" sudo iptables-legacy -t filter --list | grep "Chain INPUT" + + # try to check if there is an input rule for this random IP + chroot "$rootfs" sudo iptables-legacy -t filter --check INPUT -s 192.168.1.123 -j DROP 2>&1 | grep "Bad rule" + + # append a random rule + chroot "$rootfs" sudo iptables-legacy -t filter -A INPUT -s 192.168.1.230 -j ACCEPT + + # check it appears + chroot "$rootfs" sudo iptables-legacy --list | grep "192.168.1.230" diff --git a/tests/spread/integration/libpam-runtime/task.yaml b/tests/spread/integration/libpam-runtime/task.yaml new file mode 100644 index 000000000..a49243338 --- /dev/null +++ b/tests/spread/integration/libpam-runtime/task.yaml @@ -0,0 +1,13 @@ +summary: Integration tests for libpam-runtime + +execute: | + rootfs="$(install-slices passwd_config libpam-runtime_config netbase_default-hosts coreutils_bins sudo_bins)" + + # test that libpam correctly generated things + cat "$rootfs"/etc/pam.d/common-account | grep -E "account\s+\[success=1 new_authtok_reqd=done default=ignore\]\s+pam_unix\.so" + cat "$rootfs"/etc/pam.d/common-auth | grep -E "auth\s+\[success=1 default=ignore\]\s+pam_unix\.so\s+nullok" + cat "$rootfs"/etc/pam.d/common-password | grep -E "password\s+\[success=1 default=ignore\]\s+pam_unix\.so\s+obscure\s+yescrypt" + cat "$rootfs"/etc/pam.d/common-session | grep -E "session\s+\[default=1\]\s+pam_permit\.so" + cat "$rootfs"/etc/pam.d/common-session | grep -E "session\s+required\s+pam_unix\.so" + cat "$rootfs"/etc/pam.d/common-session-noninteractive | grep -E "session\s+\[default=1\]\s+pam_permit\.so" + cat "$rootfs"/etc/pam.d/common-session-noninteractive | grep -E "session\s+required\s+pam_unix\.so" diff --git a/tests/spread/integration/sudo/task.yaml b/tests/spread/integration/sudo/task.yaml new file mode 100644 index 000000000..92b7c30bf --- /dev/null +++ b/tests/spread/integration/sudo/task.yaml @@ -0,0 +1,12 @@ +summary: Integration tests for sudo + +execute: | + rootfs="$(install-slices passwd_config libpam-runtime_config netbase_default-hosts coreutils_bins sudo_bins)" + host=$(hostname) + + # setup /etc/hosts for the current hostname, otherwise + # sudo will be confused + sed -i "/127.0.0.1\tlocalhost/a 127.0.0.1\t$host" "$rootfs"/etc/hosts + + # ensure sudo correctly runs and provides the output "root" + chroot "$rootfs" sudo whoami | grep "root"