Blame SPECS/authselect.spec

623fc6
# Do not terminate build if language files are empty.
623fc6
%define _empty_manifest_terminate_build 0
623fc6
623fc6
Name:           authselect
ba2b3d
Version:        1.2.5
ba2b3d
Release:        1%{?dist}
623fc6
Summary:        Configures authentication and identity sources from supported profiles
d5e762
URL:            https://github.com/authselect/authselect
623fc6
623fc6
License:        GPLv3+
623fc6
Source0:        %{url}/archive/%{version}/%{name}-%{version}.tar.gz
623fc6
623fc6
%global makedir %{_builddir}/%{name}-%{version}
623fc6
623fc6
# Downstream only
623fc6
Patch0901: 0901-rhel8-remove-mention-of-Fedora-Change-page-in-compat.patch
623fc6
Patch0902: 0902-rhel8-remove-ecryptfs-support.patch
3ba6b9
Patch0903: 0903-rhel8-Revert-profiles-add-support-for-resolved.patch
623fc6
623fc6
BuildRequires:  autoconf
623fc6
BuildRequires:  automake
623fc6
BuildRequires:  findutils
623fc6
BuildRequires:  libtool
623fc6
BuildRequires:  m4
623fc6
BuildRequires:  gcc
623fc6
BuildRequires:  pkgconfig
623fc6
BuildRequires:  pkgconfig(popt)
623fc6
BuildRequires:  gettext-devel
623fc6
BuildRequires:  po4a
623fc6
BuildRequires:  %{_bindir}/a2x
623fc6
BuildRequires:  libcmocka-devel >= 1.0.0
623fc6
BuildRequires:  libselinux-devel
ba2b3d
BuildRequires: python3-devel
623fc6
Requires: authselect-libs%{?_isa} = %{version}-%{release}
623fc6
Suggests: sssd
623fc6
Suggests: samba-winbind
623fc6
Suggests: fprintd-pam
623fc6
Suggests: oddjob-mkhomedir
623fc6
623fc6
%description
623fc6
Authselect is designed to be a replacement for authconfig but it takes
623fc6
a different approach to configure the system. Instead of letting
623fc6
the administrator build the PAM stack with a tool (which may potentially
623fc6
end up with a broken configuration), it would ship several tested stacks
623fc6
(profiles) that solve a use-case and are well tested and supported.
623fc6
At the same time, some obsolete features of authconfig are not
623fc6
supported by authselect.
623fc6
623fc6
%package libs
623fc6
Summary: Utility library used by the authselect tool
623fc6
# Required by scriptlets
623fc6
Requires: coreutils
623fc6
Requires: findutils
623fc6
Requires: gawk
623fc6
Requires: grep
623fc6
Requires: sed
623fc6
Requires: systemd
d5e762
Requires: pam >= 1.3.1-9
623fc6
623fc6
%description libs
623fc6
Common library files for authselect. This package is used by the authselect
623fc6
command line tool and any other potential front-ends.
623fc6
623fc6
%package compat
623fc6
Summary: Tool to provide minimum backwards compatibility with authconfig
623fc6
Obsoletes: authconfig < 7.0.1-6
623fc6
Provides: authconfig
623fc6
Requires: authselect%{?_isa} = %{version}-%{release}
623fc6
Recommends: oddjob-mkhomedir
623fc6
Suggests: sssd
623fc6
Suggests: realmd
623fc6
Suggests: samba-winbind
623fc6
# Required by scriptlets
623fc6
Requires: sed
623fc6
623fc6
%description compat
623fc6
This package will replace %{_sbindir}/authconfig with a tool that will
623fc6
translate some of the authconfig calls into authselect calls. It provides
623fc6
only minimum backward compatibility and users are encouraged to migrate
623fc6
to authselect completely.
623fc6
623fc6
%package devel
623fc6
Summary: Development libraries and headers for authselect
623fc6
Requires: authselect-libs%{?_isa} = %{version}-%{release}
623fc6
623fc6
%description devel
623fc6
System header files and development libraries for authselect. Useful if
623fc6
you develop a front-end for the authselect library.
623fc6
623fc6
623fc6
%prep
623fc6
%setup -q
623fc6
623fc6
for p in %patches ; do
623fc6
    %__patch -p1 -i $p
623fc6
done
623fc6
623fc6
%build
623fc6
autoreconf -if
ba2b3d
%configure --with-pythonbin="%{__python3}" --with-compat
623fc6
%make_build
623fc6
623fc6
%check
623fc6
%make_build check
623fc6
623fc6
%install
623fc6
%make_install
623fc6
623fc6
# Find translations
623fc6
%find_lang %{name}
623fc6
%find_lang %{name} %{name}.8.lang --with-man
623fc6
%find_lang %{name}-migration %{name}-migration.7.lang --with-man
623fc6
%find_lang %{name}-profiles %{name}-profiles.5.lang --with-man
623fc6
623fc6
# We want this file to contain only manual page translations
623fc6
%__sed -i '/LC_MESSAGES/d' %{name}.8.lang
623fc6
623fc6
# Remove .la and .a files created by libtool
623fc6
find $RPM_BUILD_ROOT -name "*.la" -exec %__rm -f {} \;
623fc6
find $RPM_BUILD_ROOT -name "*.a" -exec %__rm -f {} \;
623fc6
623fc6
%ldconfig_scriptlets libs
623fc6
623fc6
%files libs -f %{name}.lang -f %{name}-profiles.5.lang
623fc6
%dir %{_sysconfdir}/authselect
623fc6
%dir %{_sysconfdir}/authselect/custom
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/authselect.conf
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/dconf-db
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/dconf-locks
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/fingerprint-auth
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/nsswitch.conf
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/password-auth
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/postlogin
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/smartcard-auth
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/system-auth
3ba6b9
%ghost %attr(0644,root,root) %{_sysconfdir}/authselect/user-nsswitch.conf
623fc6
%dir %{_localstatedir}/lib/authselect
623fc6
%ghost %attr(0755,root,root) %{_localstatedir}/lib/authselect/backups/
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/dconf-db
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/dconf-locks
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/fingerprint-auth
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/nsswitch.conf
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/password-auth
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/postlogin
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/smartcard-auth
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/system-auth
623fc6
%ghost %attr(0644,root,root) %{_localstatedir}/lib/authselect/user-nsswitch-created
623fc6
%dir %{_datadir}/authselect
623fc6
%dir %{_datadir}/authselect/vendor
623fc6
%dir %{_datadir}/authselect/default
d5e762
%dir %{_datadir}/authselect/default/minimal/
623fc6
%dir %{_datadir}/authselect/default/nis/
623fc6
%dir %{_datadir}/authselect/default/sssd/
623fc6
%dir %{_datadir}/authselect/default/winbind/
ba2b3d
%{_datadir}/authselect/default/minimal/dconf-db
ba2b3d
%{_datadir}/authselect/default/minimal/dconf-locks
ba2b3d
%{_datadir}/authselect/default/minimal/fingerprint-auth
d5e762
%{_datadir}/authselect/default/minimal/nsswitch.conf
d5e762
%{_datadir}/authselect/default/minimal/password-auth
d5e762
%{_datadir}/authselect/default/minimal/postlogin
d5e762
%{_datadir}/authselect/default/minimal/README
d5e762
%{_datadir}/authselect/default/minimal/REQUIREMENTS
ba2b3d
%{_datadir}/authselect/default/minimal/smartcard-auth
d5e762
%{_datadir}/authselect/default/minimal/system-auth
623fc6
%{_datadir}/authselect/default/nis/dconf-db
623fc6
%{_datadir}/authselect/default/nis/dconf-locks
623fc6
%{_datadir}/authselect/default/nis/fingerprint-auth
623fc6
%{_datadir}/authselect/default/nis/nsswitch.conf
623fc6
%{_datadir}/authselect/default/nis/password-auth
623fc6
%{_datadir}/authselect/default/nis/postlogin
623fc6
%{_datadir}/authselect/default/nis/README
623fc6
%{_datadir}/authselect/default/nis/REQUIREMENTS
ba2b3d
%{_datadir}/authselect/default/nis/smartcard-auth
623fc6
%{_datadir}/authselect/default/nis/system-auth
623fc6
%{_datadir}/authselect/default/sssd/dconf-db
623fc6
%{_datadir}/authselect/default/sssd/dconf-locks
623fc6
%{_datadir}/authselect/default/sssd/fingerprint-auth
623fc6
%{_datadir}/authselect/default/sssd/nsswitch.conf
623fc6
%{_datadir}/authselect/default/sssd/password-auth
623fc6
%{_datadir}/authselect/default/sssd/postlogin
623fc6
%{_datadir}/authselect/default/sssd/README
623fc6
%{_datadir}/authselect/default/sssd/REQUIREMENTS
623fc6
%{_datadir}/authselect/default/sssd/smartcard-auth
623fc6
%{_datadir}/authselect/default/sssd/system-auth
623fc6
%{_datadir}/authselect/default/winbind/dconf-db
623fc6
%{_datadir}/authselect/default/winbind/dconf-locks
623fc6
%{_datadir}/authselect/default/winbind/fingerprint-auth
623fc6
%{_datadir}/authselect/default/winbind/nsswitch.conf
623fc6
%{_datadir}/authselect/default/winbind/password-auth
623fc6
%{_datadir}/authselect/default/winbind/postlogin
623fc6
%{_datadir}/authselect/default/winbind/README
623fc6
%{_datadir}/authselect/default/winbind/REQUIREMENTS
ba2b3d
%{_datadir}/authselect/default/winbind/smartcard-auth
623fc6
%{_datadir}/authselect/default/winbind/system-auth
623fc6
%{_libdir}/libauthselect.so.*
623fc6
%{_mandir}/man5/authselect-profiles.5*
623fc6
%{_datadir}/doc/authselect/COPYING
623fc6
%{_datadir}/doc/authselect/README.md
623fc6
%license COPYING
623fc6
%doc README.md
623fc6
623fc6
%files compat
623fc6
%{_sbindir}/authconfig
623fc6
%{python3_sitelib}/authselect/
623fc6
623fc6
%files devel
623fc6
%{_includedir}/authselect.h
623fc6
%{_libdir}/libauthselect.so
623fc6
%{_libdir}/pkgconfig/authselect.pc
623fc6
623fc6
%files  -f %{name}.8.lang  -f %{name}-migration.7.lang
623fc6
%{_bindir}/authselect
623fc6
%{_mandir}/man8/authselect.8*
623fc6
%{_mandir}/man7/authselect-migration.7*
623fc6
%{_sysconfdir}/bash_completion.d/authselect-completion.sh
623fc6
623fc6
%global validfile %{_localstatedir}/lib/rpm-state/%{name}.config-valid
623fc6
3ba6b9
%preun
3ba6b9
if [ $1 == 0 ] ; then
3ba6b9
    # Remove authselect symbolic links so all authselect files can be
3ba6b9
    # deleted safely. If this fail, the uninstallation must fail to avoid
3ba6b9
    # breaking the system by removing PAM files. However, the command can
3ba6b9
    # only fail if it can not write to the file system.
3ba6b9
    %{_bindir}/authselect uninstall
3ba6b9
fi
3ba6b9
623fc6
%pre libs
623fc6
%__rm -f %{validfile}
623fc6
if [ $1 -gt 1 ] ; then
623fc6
    # Remember if the current configuration is valid
623fc6
    %{_bindir}/authselect check &> /dev/null
623fc6
    if [ $? -eq 0 ]; then
623fc6
        touch %{validfile}
623fc6
    fi
623fc6
fi
623fc6
623fc6
exit 0
623fc6
623fc6
%posttrans libs
623fc6
# Copy nsswitch.conf to user-nsswitch.conf if it was not yet created
623fc6
if [ ! -f %{_localstatedir}/lib/authselect/user-nsswitch-created ]; then
623fc6
    %__cp -n %{_sysconfdir}/nsswitch.conf %{_sysconfdir}/authselect/user-nsswitch.conf &> /dev/null
623fc6
    touch %{_localstatedir}/lib/authselect/user-nsswitch-created &> /dev/null
623fc6
623fc6
    # If we are upgrading from older version, we want to remove these comments.
623fc6
    %__sed -i '/^# Generated by authselect on .*$/{$!{
623fc6
      N;N # Read also next two lines
623fc6
      /# Generated by authselect on .*\n# Do not modify this file manually.\n/d
623fc6
    }}' %{_sysconfdir}/authselect/user-nsswitch.conf &> /dev/null
623fc6
fi
623fc6
623fc6
# If the configuration is valid and we are upgrading from older version
623fc6
# we need to create these files since they were added in 1.0.
623fc6
if [ -f %{validfile} ]; then
623fc6
    FILES="nsswitch.conf system-auth password-auth fingerprint-auth \
623fc6
           smartcard-auth postlogin dconf-db dconf-locks"
623fc6
623fc6
    for FILE in $FILES ; do
623fc6
        %__cp -n %{_sysconfdir}/authselect/$FILE \
623fc6
               %{_localstatedir}/lib/authselect/$FILE &> /dev/null
623fc6
    done
623fc6
623fc6
    %__rm -f %{validfile}
623fc6
fi
623fc6
623fc6
# Apply any changes to profiles (validates configuration first internally)
623fc6
%{_bindir}/authselect apply-changes &> /dev/null
623fc6
623fc6
# Enable with-sudo feature if sssd-sudo responder is enabled. RHBZ#1582111
623fc6
CURRENT=`%{_bindir}/authselect current --raw 2> /dev/null`
623fc6
if [ $? -eq 0 ]; then
623fc6
    PROFILE=`echo $CURRENT | %__awk '{print $1;}'`
623fc6
623fc6
    if [ $PROFILE == "sssd" ] ; then
623fc6
        if %__grep -E "services[[:blank:]]*=[[:blank:]]*.*sudo" /etc/sssd/sssd.conf &> /dev/null ; then
623fc6
            %{_bindir}/authselect enable-feature with-sudo &> /dev/null
623fc6
        elif systemctl is-active sssd-sudo.service sssd-sudo.socket --quiet || systemctl is-enabled sssd-sudo.socket --quiet ; then
623fc6
            %{_bindir}/authselect enable-feature with-sudo &> /dev/null
623fc6
        fi
623fc6
    fi
623fc6
fi
623fc6
623fc6
exit 0
623fc6
623fc6
%posttrans compat
623fc6
# Fix for RHBZ#1618865
623fc6
# Remove invalid lines from pwquality.conf generated by authconfig compat tool
623fc6
# - previous version could write some options without value, which is invalid
623fc6
# - we delete all options without value from existing file
623fc6
%__sed -i -E '/^\w+=$/d' %{_sysconfdir}/security/pwquality.conf.d/10-authconfig-pwquality.conf &> /dev/null
623fc6
exit 0
623fc6
623fc6
%changelog
ba2b3d
* Thu May 5 2022 Pavel Březina <pbrezina@redhat.com> - 1.2.5-1
ba2b3d
- Rebase to 1.2.5 (RHBZ #2080238)
ba2b3d
- sssd profile with-smartcard no longer prevents local users from accessing cron (RHBZ #2070325)
ba2b3d
- backup-restore now works correctly (RHBZ #2066535)
ba2b3d
- add with-subid to sssd profile (RHBZ #2063750)
ba2b3d
6a3693
* Wed Jul 14 2021 Pavel Březina <pbrezina@redhat.com> - 1.2.2-3
6a3693
- Update translations (RHBZ #1961625)
6a3693
6a3693
* Wed Jul 14 2021 Pavel Březina <pbrezina@redhat.com> - 1.2.2-2
6a3693
- try_first_pass option no longer works on some PAM modules in RHEL8 (RHBZ #1949070)
6a3693
- Need to localize the description of --debug option in authselect show (RHBZ #1970408)
6a3693
3ba6b9
* Wed Nov 25 2020 Pavel Březina <pbrezina@redhat.com> - 1.2.2-1
3ba6b9
- Rebase to authselect-1.2.2 (RHBZ #1892761)
3ba6b9
d5e762
* Fri Jun 19 2020 Pavel Březina <pbrezina@redhat.com> - 1.2.1-2
d5e762
- Update translations (RHBZ #1820533)
d5e762
d5e762
* Tue May 12 2020 Pavel Březina <pbrezina@redhat.com> - 1.2.1-1
d5e762
- Rebase to authselect-1.2.1 (RHBZ #1810471)
d5e762
- CLI commands are now correctly translated (RHBZ #1816009)
d5e762
- Remove unsupported features from sssd profile description (RHBZ #1830251)
d5e762
- add `with-files-access-provider` to sssd profile (RHBZ #1734094)
d5e762
- switch to pam_usertype module (RHBZ #1773567)
d5e762
- fix typo in sssd profile description (RHBZ #1787638)
d5e762
- add minimal profile (RHBZ #1654018)
d5e762
4a8327
* Thu Jul 4 2019 Pavel Březina <pbrezina@redhat.com> - 1.1-2
4a8327
- Update translations (RHBZ #1689973)
4a8327
623fc6
* Mon Jun 10 2019 Pavel Březina <pbrezina@redhat.com> - 1.1-1
623fc6
- Rebase to authselect-1.1 (RHBZ #1685516)
623fc6
- Notify that oddjob-mkhomedir needs to be enabled manually (RHBZ #1694103)
623fc6
- Ask for smartcard insertion when smartcard authentication is required (RHBZ #1674397)
623fc6
- Update translations (RHBZ #1689973)
623fc6
623fc6
* Mon Feb 25 2019 Jakub Hrozek <jhrozek@redhat.com> - 1.0-13
623fc6
- Revert pam_systemd.so to be optional
ba2b3d
- Resolves: #rhbz1643928 - pam_systemd shouldn't be optional in system-auth
623fc6
623fc6
* Mon Feb 4 2019 Pavel Březina <pbrezina@redhat.com> - 1.0-12
623fc6
- make authselect work with selinux disabled (RHBZ #1668025)
623fc6
- require smartcard authentication only for specific services (RHBZ #1665058)
623fc6
- update translations (RHBZ #1608286)
623fc6
623fc6
* Fri Jan 11 2019 Pavel Březina <pbrezina@redhat.com> - 1.0-11
623fc6
- require libselinux needed by (RHBZ #1664650)
623fc6
623fc6
* Fri Jan 11 2019 Pavel Březina <pbrezina@redhat.com> - 1.0-10
623fc6
- invalid selinux context for files under /etc/authselect (RHBZ #1664650)
623fc6
623fc6
* Tue Dec 4 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-9
623fc6
- fix sources for official rhel translations (RHBZ #1608286)
623fc6
- fix coverity warnings for authselect enable-features should error on unknown features (RHBZ #1651637)
623fc6
623fc6
* Mon Dec 3 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-8
623fc6
- add official rhel translations (RHBZ #1608286)
623fc6
623fc6
* Mon Dec 3 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-7
623fc6
- pam_systemd shouldn't be optional in system-auth (RHBZ #1643928)
623fc6
- compat tool: support --enablerequiresmartcard (RHBZ #1649277)
623fc6
- compat tool: support --smartcardaction=0 (RHBZ #1649279)
623fc6
- remove ecryptfs from authselect since it is not present in rhel8 (RHBZ #1649282)
623fc6
- authselect enable-features should error on unknown features (RHBZ #1651637)
623fc6
623fc6
* Wed Oct 31 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-6
623fc6
- Remove mention of Fedora Change page from compat tool (RHBZ #1644309)
623fc6
623fc6
* Wed Oct 10 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-5
623fc6
- Support for "require smartcard for login option" (RHBZ #1611012)
623fc6
623fc6
* Mon Oct 1 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-4
623fc6
- add official rhel translations (RHBZ #1608286)
623fc6
623fc6
* Fri Sep 28 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-3
623fc6
- scriptlet can fail if coreutils is not installed  (RHBZ #1630896)
623fc6
- fix typo (require systemd instead of systemctl)
623fc6
623fc6
* Thu Sep 27 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-2
623fc6
- authconfig --update overwrites current profile (RHBZ #1628492)
623fc6
- authselect profile nis enhancements (RHBZ #1628493)
623fc6
- scriptlet can fail if coreutils is not installed  (RHBZ #1630896)
623fc6
- authconfig --update --enablenis stops ypserv (RHBZ #1632567)
ba2b3d
- compat tool generates invalid pwquality configuration (RHBZ #1628491)
623fc6
623fc6
* Mon Aug 13 2018 Pavel Březina <pbrezina@redhat.com> - 1.0-1
623fc6
- Rebase to 1.0 (RHBZ #1614235)
623fc6
623fc6
* Wed Aug 01 2018 Charalampos Stratakis <cstratak@redhat.com> - 0.4-4
623fc6
- Rebuild for platform-python
623fc6
623fc6
* Mon May 14 2018 Pavel Březina <pbrezina@redhat.com> - 0.4-3
623fc6
- Disable sssd as sudo rules source with sssd profile by default (RHBZ #1573403)
623fc6
623fc6
* Wed Apr 25 2018 Christian Heimes <cheimes@redhat.com> - 0.4-2
623fc6
- Don't disable oddjobd.service (RHBZ #1571844)
623fc6
623fc6
* Mon Apr 9 2018 Pavel Březina <pbrezina@redhat.com> - 0.4-1
623fc6
- rebasing to 0.4
623fc6
623fc6
* Tue Mar 6 2018 Pavel Březina <pbrezina@redhat.com> - 0.3.2-1
623fc6
- rebasing to 0.3.2
623fc6
- authselect-compat now only suggests packages, not recommends
623fc6
623fc6
* Mon Mar 5 2018 Pavel Březina <pbrezina@redhat.com> - 0.3.1-1
623fc6
- rebasing to 0.3.1
623fc6
623fc6
* Tue Feb 20 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.3-3
623fc6
- Provide authconfig
623fc6
623fc6
* Tue Feb 20 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 0.3-2
623fc6
- Properly own all appropriate directories
623fc6
- Remove unneeded %%defattr
ba2b3d
- Remove deprecated Group tag
623fc6
- Make Obsoletes versioned
623fc6
- Remove unneeded ldconfig scriptlets
623fc6
623fc6
* Tue Feb 20 2018 Pavel Březina <pbrezina@redhat.com> - 0.3-1
623fc6
- rebasing to 0.3
623fc6
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.2-3
623fc6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
623fc6
* Wed Jan 10 2018 Pavel Březina <pbrezina@redhat.com> - 0.2-2
623fc6
- fix rpmlint errors
623fc6
* Wed Jan 10 2018 Pavel Březina <pbrezina@redhat.com> - 0.2-1
623fc6
- rebasing to 0.2
623fc6
* Mon Jul 31 2017 Jakub Hrozek <jakub.hrozek@posteo.se> - 0.1-1
623fc6
- initial packaging