Example #1
0
def configure_coreutils():
    with stdlib.pushenv():
        os.environ['FORCE_UNSAFE_CONFIGURE'] = '1'

        stdlib.cmd('autoreconf -fiv')

        configure(
            '--enable-no-install-program=kill,uptime'  # Installed by other packages
        )
Example #2
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(
            '--with-system-expat',
            '--with-system-ffi',
            '--without-ensurepip',
            '--enable-optimizations',
        ),
        split=drain_all_with_doc,
        install=lambda: make('altinstall', f'DESTDIR={build.install_cache}'),
    )

    # Make it executable
    with stdlib.pushd(packages['dev-lang/python'].wrap_cache):
        os.chmod(f'usr/lib64/libpython{build.major}.{build.minor}m.so', 0o0755)
        os.chmod(f'usr/lib64/libpython{build.major}.so', 0o0755)

    # Make the python -> python3 symlink
    packages['dev-lang/python'].make_symlink(f'python{build.major}',
                                             'usr/bin/python')
    packages['dev-lang/python'].make_symlink(
        f'python{build.major}.{build.minor}', f'usr/bin/python{build.major}')

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['dev-lang/python'].requires('raven-os/corefs')

    return packages
Example #3
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure('--disable-documentation'), )

    packages['sys-libs/wayland-dev'].drain('usr/share/wayland/')

    return packages
Example #4
0
def build(build):

    # The FHS recommends using the /var/lib/hwclock directory instead of the usual /etc directory as the location for the adjtime file
    os.environ['ADJTIME_PATH'] = '/var/lib/hwclock/adjtime'

    packages = autotools.build(
        configure=lambda: configure(
            '--disable-chfn-chsh',
            '--disable-login',
            '--disable-nologin',
            '--disable-su',
            '--disable-setpriv',
            '--disable-runuser',
            '--disable-pylibmount',
            '--disable-static',
            '--without-python',
        ),
        check=check_util_linux,
    )

    # Remove the dependencie on systemd to avoid a circular dependency (TODO FIXME)
    del packages['sys-apps/util-linux'].run_dependencies[
        'beta::sys-apps/systemd']

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/util-linux'].requires('raven-os/corefs')

    return packages
Example #5
0
def build(build):
    packages = autotools.build(configure=lambda: configure(
        '--disable-doxygen-docs',
        '--disable-xml-docs',
        '--docdir=/usr/share/doc/dbus',
        '--with-console-auth-dir=/run/console',
    ), )

    # Drain common and shared files
    packages['sys-apps/dbus'].drain(
        'usr/share/',
        'usr/lib64/dbus-daemon-launch-helper',
    )

    # Drain the development files laying in unusual places
    packages['sys-apps/dbus-dev'].drain(
        'usr/lib64/**/*.cmake',
        'usr/lib64/**/*.h',
        'usr/lib64/**/*.dtd',
    )

    # Create a symlink, so that D-Bus and systemd can use the same machine-id file:
    packages['sys-apps/dbus'].make_symlink('/etc/machine-id',
                                           'var/lib/dbus/machine-id')

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/dbus'].requires('raven-os/corefs')

    return packages
def build(build):
    packages = autotools.build(
        configure=lambda: configure('--with-xkb-rules-symlink=xorg', ))

    packages['dev-resources/xkeyboard-config'].drain('usr/share/*')

    return packages
Example #7
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure('--with-gnutls=no'), )

    packages['editor/emacs'].drain('usr/lib64/',
                                   'usr/share/{applications,icons,emacs}')

    return packages
Example #8
0
def build(build):
    return autotools.build(configure=lambda: configure(
        '--enable-unicode-properties',
        '--enable-pcre16',
        '--enable-pcre32',
        '--enable-pcregrep-libz',
        '--enable-pcregrep-libbz2',
        '--enable-pcretest-libreadline',
    ))
Example #9
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure('--enable-libgdbm-compat', ), )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-libs/gdbm'].requires('raven-os/corefs')

    return packages
Example #10
0
def build(build):
    packages = autotools.build(
configure=lambda: configure(
'--with-ncurses',
'--enable-multibyte',{downarrow},
compile=lambda: make('SHLIB_LIBS=-lncursesw'),  # Ensures readline is linked against the libncursesw library
install=lambda: make('install', 'SHLIB_LIBS=-lncursesw', f'DESTDIR={{}build.install_cache{}}'),{downarrow}

# Drain examples in readline-dev
packages['sys-libs/readline-dev'].drain(
Example #11
0
def build(build):

    # TODO FIXME The following will be removed in a futur pass of glibc
    os.environ['GCC_INCDIR'] = '/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include'
    os.environ[
        'CC'] = 'gcc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include -isystem /usr/include '

    packages = autotools.build(
        build_folder='build',
        extract=extract_glibc,
        configure=lambda: configure(
            '--enable-kernel=3.2',
            '--enable-stack-protector=strong',
            '--infodir="/usr/share/info/glibc/"',
            binary='../configure',
        ),
        split=split_glibc,
        install=install_glibc,
    )

    # Drain pre-installed configuration
    packages['sys-libs/glibc'].drain_build_cache('nscd/nscd.conf',
                                                 'etc/nscd.conf')
    packages['sys-libs/glibc'].drain_build_cache(
        'nscd/nscd.tmpfiles', 'usr/lib/tmpfiles.d/nscd.conf')
    packages['sys-libs/glibc'].drain_build_cache(
        'nscd/nscd.service', 'usr/lib/systemd/system/nscd.service')

    # Drain files that weren't picked-up by the splitter
    packages['sys-libs/glibc'].drain(
        'usr/share/i18n/{charmaps,locales}/',
        'usr/share/zoneinfo/',
        'usr/lib64/gconv/',
        'usr/lib64/locale/',
    )

    # Drain development files that weren't picked-up by the splitter
    packages['sys-libs/glibc-dev'].drain('usr/lib64/*.o', )

    # Ensure `/etc/ld.so.conf.d` will be created when installing `sys-libs/glibc`
    packages['sys-libs/glibc'].make_keepers('etc/ld.so.conf.d')

    # Remove `/etc/ld.so.cache`, it will be generated by the package manager
    packages['sys-libs/glibc'].remove('etc/ld.so.cache')

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-libs/glibc'].requires('raven-os/corefs')

    # TODO FIXME Provide a default /etc/localtime

    # Glibc depends on the Linux Kernel headers to compile software properly.
    packages['sys-libs/glibc-dev'].requires('kernel/linux-dev', '>=3.2')

    return packages
Example #12
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure('--with-gobject --with-graphite2')
    )

    packages['dev-libs/harfbuzz-dev'].drain(
        'usr/lib64/cmake/harfbuzz/*.cmake',
        'usr/share/gir-1.0/*.gir'
    )

    return packages
Example #13
0
def build(build):
    packages = autotools.build(
        extract=extract_freetype,
        patch=patch_freetype,
        configure=lambda: configure('--enable-freetype-config'),
    )

    packages['dev-libs/freetype-doc'].drain_build_cache(
        'docs/*', 'usr/share/doc/freetype-2.10.1/')

    return packages
Example #14
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure('--localstatedir=/var/lib/locate', ),
        split=drain_all_with_doc,
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/findutils'].requires('raven-os/corefs')

    return packages
Example #15
0
def build(build):
    os.environ['CFLAGS'] += '''\
        -DSQLITE_ENABLE_FTS3=1            \
        -DSQLITE_ENABLE_FTS4=1            \
        -DSQLITE_ENABLE_COLUMN_METADATA=1 \
        -DSQLITE_ENABLE_UNLOCK_NOTIFY=1   \
        -DSQLITE_ENABLE_DBSTAT_VTAB=1     \
        -DSQLITE_SECURE_DELETE=1          \
        -DSQLITE_ENABLE_FTS3_TOKENIZER=1\
    '''

    return autotools.build(configure=lambda: configure('--enable-fts5', ))
Example #16
0
def build(build):
    packages = autotools.build(configure=lambda: configure(
        '--disable-static',
        '--disable-kill',
        '--with-systemd',
    ), )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/procps'].requires('raven-os/corefs')

    return packages
Example #17
0
def build(build):
    packages = autotools.build(
        patch=patch_libffi,
        configure=lambda: configure(
            '--with-gcc-arch=generic',
        ),
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['dev-libs/libffi'].requires('raven-os/corefs')

    return packages
Example #18
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(make_configure=lambda: make('configure'),
                                    ),
        compile=lambda: make('all'),
        split=drain_all_with_doc,
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['dev-apps/git'].requires('raven-os/corefs')

    return packages
Example #19
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(
            '--with-readline',
        ),
        patch=patch_bc,
        check=check_bc,
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['dev-apps/bc'].requires('raven-os/corefs')

    return packages
Example #20
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(
            '--enable-threaded-resolver',
            '--with-ca-path=/etc/ssl/certs',
        ),
        check=None,
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/curl'].requires('raven-os/corefs')

    return packages
Example #21
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(
            '--with-xz',
            '--with-zlib',
            '--disable-static',  # --enable-static isn't supported by kmod.
        ),
        split=split_kmod,
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/kmod'].requires('raven-os/corefs')

    return packages
Example #22
0
def build(build):
    packages = autotools.build(
        patch=patch_shadow,
        configure=lambda: configure('--with-group-name-max-length=32', ),
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/shadow'].requires('raven-os/corefs')
    packages['sys-apps/shadow'].requires('sys-apps/bash')
    packages['sys-apps/shadow'].requires('sys-apps/coreutils')

    packages['sys-apps/shadow'].load_instructions('./instructions.sh')

    return packages
Example #23
0
def build(build):
    packages = autotools.build(
        configure=lambda:
        configure('--enable-thread-safe', '--infodir="/usr/share/info/mpfr/"',
                  '--docdir="/usr/share/doc/"'),
        install=lambda: make(
            'install', 'install-html',
            f'DESTDIR={stdlib.build.current_build().install_cache}'),
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-libs/mpfr'].requires('raven-os/corefs')

    return packages
Example #24
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(
            '--with-history',
        ),
    )

    packages['dev-libs/xml2-dev'].drain(
        'usr/lib64/xml2Conf.sh',
        'usr/lib64/cmake/libxml2/libxml2-config.cmake'
    )

    packages['dev-libs/xml2-doc'].drain(
        'usr/share/gtk-doc/'
    )

    return packages
Example #25
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(
            '--disable-setuid',
            '--enable-cache-owner=bin',
            '--with-browser=/usr/bin/lynx',
            '--with-vgrind=/usr/bin/vgrind',
            '--with-grap=/usr/bin/grap',
        ),
        split=drain_all_with_doc,
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/man-db'].requires('raven-os/corefs')

    return packages
Example #26
0
def build(build):
    os.environ['SED'] = 'sed'  # TODO FIXME
    target = os.environ['TARGET']

    packages = autotools.build(
        build_folder='build',
        configure=lambda: configure(
            '--enable-languages=c,c++',
            '--disable-multilib',
            '--disable-bootstrap',
            '--disable-libmpx',
            '--with-system-zlib',
            '--docdir=/usr/share/doc/',
            binary='../configure',
        ),
        install=install_gcc,
        split=split_gcc,
        deplinker=lambda packages: stdlib.deplinker.elf.elf_deplinker(
            packages,
            search_patterns=[
                '{,usr/}bin/*',
                '{,usr/}lib{,32,64}/*',
                f'usr/lib{{,64}}/gcc/{target}/*/*',
            ],
        ),
        check=check_gcc,
    )

    # Move a misplaced file
    packages['dev-apps/gcc'].move(
        'usr/lib{,64}/*-gdb.py',
        'usr/share/gdb/auto-load/usr/lib/',
    )

    # Create a bunch of symlinks required to satisfy external utilities
    packages['dev-apps/cpp'].make_symlink('../usr/bin/cpp', 'lib/cpp')
    packages['dev-apps/gcc'].make_symlink('gcc', 'usr/bin/cc')

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-libs/gcc-libs'].requires('raven-os/corefs')

    return packages
Example #27
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(
            '--disable-logger',
            '--disable-whois',
            '--disable-rcp',
            '--disable-rexec',
            '--disable-rlogin',
            '--disable-rsh',
            '--disable-servers',
        ),
        check=None,  # TODO FIXME: Tests are looping indefinitely
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/inetutils'].requires('raven-os/corefs')

    return packages
Example #28
0
def build(build):

    # TODO FIXME
    os.environ['PKG_CONFIG_PATH'] = '/tools/lib/pkgconfig'

    packages = autotools.build(
        configure=lambda: configure(
            '--disable-vlock',  # vlock requires PAM, which, when this manifest was written, wasn't available (Sept. 2019)
        ),
        split=drain_all_with_doc,
    )

    packages['sys-apps/kbd-doc'].drain_build_cache('docs/doc/*',  'usr/share/doc/kbd/')

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/kbd'].requires('raven-os/corefs')

    return packages
Example #29
0
def build(build):
    packages = autotools.build(
        configure=lambda: configure(
            '--infodir="/usr/share/info/mpc/"',
            '--docdir="/usr/share/doc/"',
        ),
        install=lambda: make(
            'install', 'install-html',
            f'DESTDIR={stdlib.build.current_build().install_cache}'),
    )

    # Rename documentation directory to match the other packages.
    packages['sys-libs/mpc-doc'].move('usr/share/doc/mpc.html',
                                      'usr/share/doc/mpc')

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-libs/mpc'].requires('raven-os/corefs')

    return packages
Example #30
0
def build(build):
    target = os.environ['TARGET']

    packages = autotools.build(configure=lambda: configure(
        '--with-internal-glib',
        '--disable-host-tool',
        '--docdir=/usr/share/doc/pkg-config-0.29.2',
    ), )

    packages['sys-apps/pkg-config'].drain('usr/share/aclocal/*')
    packages['sys-apps/pkg-config'].make_symlink(
        'pkg-config',
        f'usr/bin/{target}-pkg-config',
    )

    # Packages member of `raven-os/essentials` should explicitly state all
    # of their dependencies, including indirect ones.
    packages['sys-apps/pkg-config'].requires('raven-os/corefs')

    return packages