Manjaro Difference between pages "Manjaro Mirrors" and "Manjaro-tools"

Difference between pages "Manjaro Mirrors" and "Manjaro-tools"

From Manjaro
(Difference between pages)
imported>Handy
 
imported>Dalto
m (Updated link)
 
Line 1: Line 1:
<br clear="all" />
<br clear="all" />
==What's a Mirror?==


In the GNU/Linux distro world (& other systems too) a mirror is a server that hosts an up to date copy of a distro's software packages, stored in repositories (repos). There exist repos that are maintained by the distro administration - official - & other's. The Arch User Repository (AUR) being a good example of a non-official user maintained repo.
__TOC__


There are usually multiple repos in a mirror, holding software packages in categories, such as Manjaro's - core, extra, community & multilib repos. These repos will be duplicated with package content to suit both 32bit & 64bit installations, as well as for any & all the variety of releases that a distro may support. In Manjaro's case that is quite a number when all of the different Desktop & Window Manager titled front ends are considered.


The distro has package maintainers in its administration. They manage the contents of the repos, keeping it up to date, patching packages if required. Some distros, like Manjaro, have certain packages that are unique to it only - like mhwd for example.
= Introduction =


<br clear="all" />
''manjaro-tools'' consists of a lot of different tools aimed at Manjaro developers. It is splitted into 3 different packages:
* ''manjaro-tools-base'' contains basic tools, different chroot tools, and ''buildset''
* ''manjaro-tools-pkg'' contains small helper tools, ''buildpkg'', and ''buildtree''
* ''manjaro-tools-iso'' contains small helper tools and ''buildiso''


==Why do we need more mirrors?==


The more mirrors we have the faster Manjaro's users can upgrade their systems. Some parts of the world have much faster internet speeds than others. In some circumstances, having a server in your country, or better yet, in your city, can make a world of difference to your download speeds.
All of these ''manjaro-tools'' packages are replacements for '''devtools''' and '''manjaroiso'''.  


<br clear="all" />
A detailed user manual is available at [https://gitlab.manjaro.org/tools/development-tools/manjaro-tools gitlab].


==How does Manjaro know what mirror(s) to use?==
= Configuration =


There is a file /etc/pacman.d/mirrorlist which lists all of the available mirrors.
manjaro-tools can be configured by copying the folder ''/etc/manjaro-tools'' to your home in ''~/.config'' folder and then edit the file {{ic|''./config/manjaro-tools/manjaro-tools.conf''}}


There is another file called /etc/pacman-mirrors.conf that by default is configured to re-write your mirrorlist in a list with the fastest at the top, descending to the slowest, when the system is given the Terminal command:
= Files =


sudo pacman-mirrors -g
These are the new names for renamed scripts.


This is a remarkably streamlined system compared to the ways that it has been in the past for the pacman rolling release system to manage its mirrors, let alone to rank their speed.
*    mkmanjaroroot --> mkchroot
*    manjarobuild --> buildpkg
*    mkset --> buildset
*    pacstrap --> basestrap
*    genfstab --> fstabgen
*    arch-chroot --> manjaro-chroot


<br clear="all" />


==How do we get more mirrors?==
= buildset =


I'm glad you asked that question.
buildset is used to create build lists. Build lists can be defined in {{ic|/etc/manjaro-tools/sets/<buildlistname>.set}}


<br clear="all" />
The help looks like the following:
===Phil's advice, taken from the Manjaro forum:===


''Some people still ask me how I got 5 mirrors in one week before 0.8.0 came out. It is simple. Just write 100 mails to universities and companies supporting Linux. Go to Arch linux and grab their mirrorlist. Crawl through their servers and get their contact data. Write an email and see what response you get. Here is some more info about it.''
$ buildset -h
Usage: buildset [options]
    -c <name>  Create set
    -r <name>  Remove set
    -s <name>  Show set
    -i          Iso mode
    -q          Query sets
    -h          This help


<br clear="all" />
{{Note|The set name should be different from a directory name in pkgbuilds dir. Anything else should work, eg adding a date to the name.}}
====What is the size of the Manjaro database?====


We are at 42 GB. 100 GB or higher would be better.
= buildpkg =


<br clear="all" />
buildpkg is used to build a particular package or a set. In the following chapter all functions of buildpkg get explained.
====How is the mirror synchronized?====


'''Via the following Rsync-Services:'''
If you want a detailed example how to use buildpkg to build packages for a local repository, please look [https://wiki.manjaro.org/index.php?title=Buildiso_with_AUR_packages:_Using_buildpkg here].


<br clear="all" />
Brasil
rsync://rsync.las.ic.unicamp.br/pub/manjarolinux/


Germany
The help looks like the following:
rsync://repo.manjaro.org/repos (whitelisted IP needed)
rsync://ftp.halifax.rwth-aachen.de/manjaro/
rsync://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/


  Japan
  Usage: buildpkg [options]
rsync://ftp.tsukuba.wide.ad.jp/manjaro
    -a <arch>          Arch [default: x86_64]
rsync://ftp.kddilabs.jp/manjaro/
    -b <branch>        Branch [default: stable]
    -c                Recreate chroot
    -h                This help
    -i <pkg>          Install a package into the working copy of the chroot
    -n                Install and run namcap check
    -p <pkg>          Build list or pkg [default: default]
    -q                Query settings and pretend build
    -r <dir>          Chroots directory
                      [default: /var/lib/manjaro-tools/buildpkg]
    -s                Sign packages
    -w                Clean up cache and sources


United States
To build a single package, go into the directory which is one above the package build directory (which contains the PKGBUILD), and run it as:
rsync://mirror.jmu.edu/manjaro/


buildpkg -p <package-name>


''To sync from our own manjaro.org server we need the IP of your server so it can be white-listed at our end. There is a recommended script for use with our server, so please contact the Manjaro administration in this regard. ''
To build a set the name of the set can be used. The current sets can be queried with the {{ic|-q}} option.


<br clear="all" />
= buildtree =


====How do you ask an organisation with servers to create a Manjaro mirror?====
buildtree is a little tools to sync arch abs and manjaro packages git repos.


'''Write them an email like this (in your native language):'''
The arguments are:


$ buildtree -h
Usage: buildtree [options]
    -s            Sync manjaro tree
    -a            Sync arch abs
    -c            Clean package tree
    -q            Query settings
    -h            This help[/code]


Dear Sir or Madam,
To sync Arch and Manjaro trees:


My name is <YOUR NAME>, I wish to ask you to please spare me a few minutes to read this letter & consider its contents.
buildtree -as


I'd like to introduce you to a relative new comer to the world of Linux distributions - Manjaro Linux. Manjaro is a new user-friendly Linux distribution based on the highly regarded Arch Linux. We are currently searching for mirrors to host our packages.


Although new, we are already one of the top 10 most popular Linux Distributions in the world, as listed in the DistroWatch.com top 100.
= buildiso =


Manjaro Linux is based on well tested snapshots of the Arch Linux repositories, and is 100% compatible with Arch itself. We manage our repositories with our own in-house tool called BoxIt, which is designed like git.
buildiso is used to build a particular ISO or a set of ISOs. All functions of buildiso will be explained in the following chapters.


Our aim is to create a light Linux distribution which is simple, up to date, fast, user friendly and which follows the K.I.S.S (Keep It Simple, Stupid) principle. As such, Manjaro Linux provides a more user friendly installation process, utilities for managing graphic drivers, and pre-configured desktop environments.
If you want a detailed guide how to use buildiso to build your own Manjaro ISOs from scatch, please look [https://wiki.manjaro.org/index.php?title=Build_Manjaro_ISOs_with_buildiso here].


Our repository is currently at the size of 42 GB. We have between 50 GB and 100 GB granted on other mirrors hosting our packages.
Currently it is possible to sync from the following rsync services:


rsync://repo.manjaro.org/repos (white-listed IP needed)
== Overview ==
rsync://ftp.halifax.rwth-aachen.de/manjaro/
rsync://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/
rsync://rsync.las.ic.unicamp.br/pub/manjarolinux/
rsync://ftp.kddilabs.jp/manjaro/
rsync://ftp.tsukuba.wide.ad.jp/manjaro
rsync://mirror.jmu.edu/manjaro/


To sync from our own Manjaro.org server we need the IP of the server that you wish to sync, as it needs to be white-listed at our end. Also, it is recommended to use a script which we will provide, to sync from our server.
The help looks like the following for x86_64:


Thank you for your time and consideration,
$ buildiso -h
Usage: buildiso [options]
    -p <profile>      Buildset or profile [default: default]
    -a <arch>          Arch [default: x86_64]
    -b <branch>        Branch [default: stable]
    -r <dir>          Chroots directory
                        [default: /var/lib/manjaro-tools/buildiso]
    -c                Disable clean work dir
    -x                Clean xorg cache
    -l                Clean lng cache
    -i                Build images only
    -s                Generate iso only
                        Requires pre built images (-i)
    -v                Verbose output, show profies detail (-q)
    -q                Query settings and pretend build
    -h                This help


<YOUR NAME>
== Query Building ==


<br clear="all" />
To query build an ISO ('''-q''' option), for example the xfce-openbox-openrc profile, the following command can be used:


==Current Size Required for a Manjaro Mirror:==
<pre>
~ >>> buildiso -p xfce -qv                                                         
[sudo] password for fh:
==> manjaro-tools
  -> version: 0.15.9
  -> config: ~/.config/manjaro-tools/manjaro-tools.conf
==> PROFILE:
  -> build_lists: community|default|manjaro|sonar|v17-release
  -> build_list_iso: xfce
  -> is_build_list: false
==> OPTIONS:
  -> arch: x86_64
  -> branch: unstable
  -> kernel: linux419
==> ARGS:
  -> clean_first: true
  -> images_only: false
  -> iso_only: false
  -> persist: false
==> DIST SETTINGS:
  -> dist_name: Manjaro
  -> dist_release: 18.0
  -> dist_codename: Illyria
==> ISO INFO:
  -> iso_label: MJRO180
  -> iso_compression: xz
==> BUILD QUEUE:
--> Profile: [xfce]
  -> iso_file: manjaro-xfce-18.0-unstable-minimal-x86_64.iso
  -> autologin: true
  -> nonfree_mhwd: true
  -> multilib: true
  -> extra: false
  -> netinstall: false
  -> chrootcfg: false
  -> geoip: true
  -> efi_boot_loader: grub
  -> hostname: manjaro
  -> username: manjaro
  -> password: manjaro
  -> login_shell: /bin/bash
  -> addgroups: lp,network,power,sys,wheel
  -> enable_systemd: avahi-daemon bluetooth cronie ModemManager NetworkManager org.cups.cupsd tlp tlp-sleep ufw lightdm
  -> enable_systemd_live: manjaro-live mhwd-live pacman-init mirrors-live
  -> disable_systemd: pacman-init
</pre>


(last checked 2013-05-06 19:41 CEST)
== Building ==


996K  ./testing/multilib/x86_64
To actually build the ISO:
1000K  ./testing/multilib
400K  ./testing/core/i686
468K  ./testing/core/x86_64
872K  ./testing/core
11M  ./testing/extra/i686
12M  ./testing/extra/x86_64
22M  ./testing/extra
8.0M  ./testing/community/i686
9.1M  ./testing/community/x86_64
18M  ./testing/community
41M  ./testing
8.0K  ./compatibility/empty/i686
8.0K  ./compatibility/empty/x86_64
20K  ./compatibility/empty
252M  ./compatibility/basis/i686
4.0K  ./compatibility/basis/x86_64/symdir_output
253M  ./compatibility/basis/x86_64
504M  ./compatibility/basis
504M  ./compatibility
996K  ./stable/multilib/x86_64
1000K  ./stable/multilib
400K  ./stable/core/i686
468K  ./stable/core/x86_64
872K  ./stable/core
11M  ./stable/extra/i686
12M  ./stable/extra/x86_64
22M  ./stable/extra
8.0M  ./stable/community/i686
9.1M  ./stable/community/x86_64
18M  ./stable/community
41M  ./stable
1000K  ./unstable/multilib/x86_64
1004K  ./unstable/multilib
412K  ./unstable/core/i686
484K  ./unstable/core/x86_64
900K  ./unstable/core
11M  ./unstable/extra/i686
12M  ./unstable/extra/x86_64
22M  ./unstable/extra
8.0M  ./unstable/community/i686
9.2M  ./unstable/community/x86_64
18M  ./unstable/community
41M  ./unstable
8.2G  ./pool/.~tmp~
32G  ./pool/sync
837M  ./pool/overlay
41G  ./pool
42G  .


$ buildiso -p xfce -b stable


==Check here before you send a request for mirror hosting:==
== Building with predownloaded Xorg packages ==
 
To build an ISO while retaining the previously downloaded cache of Xorg packages, the '''-x''' option can be used:
 
$ buildiso -p xfce-openbox-openrc/ -b stable -x
 
== Building with a small config change ==
 
{{Note| It is to be verified if the procedure given below works or not.}}
 
Supposing something only changed in config, like a setting, instead of building the whole ISO from scratch, the ISO build directory can be modified and the ISO can be rebuilt. For example, supposing one changed ''xfce-overlay/etc/skel/.conkyrc'' in the config, one can go into the work directory, modify the said file, and rebuild the ISO using the '''-cs''' option.
 
The work directory can be found using the '''-''' option:
 
~ >>> buildiso -h                                                                                 
Usage: buildiso [options]
    -p <profile>      Buildset or profile [default: default]
    -a <arch>          Arch [default: x86_64]
    -b <branch>        Branch [default: unstable]
    -r <dir>          Chroots directory
                        [default: '''/var/lib/manjaro-tools/buildiso''']
    -t <dir>          Target directory
                        [default: /home/fh/Data/build/iso]
    -k <name>          Kernel to use
                        [default: linux419]
    -g <key>          The gpg key for sfs signing
                        [default: ]
    -m                Set SquashFS image mode to persistence
    -c                Disable clean work dir
    -f                Build full ISO (extra=true)
    -d <comp>          Compression used for build ISO: xz, gzip, lzma, lzo, lz4
                        [default: xz]
    -x                Build images only
    -z                Generate iso only
                        Requires pre built images (-x)
    -v                Verbose output to log file, show profile detail (-q)
    -q                Query settings and pretend build
    -h                This help
   
   
Following is a list that will be updated when required.


It is very important that we don't send requests to anyone on this list, as they will consider it spam & could have Manjaro's IP addresses blocked by organisations who's business is to attempt to control spam.
(work directory highlighted in bold)


So when you are trying to organise new mirrors DO NOT bother hosters who have already denied us support.
The required file can be edited as root, for example:
$ sudo nano /var/lib/manjaro-tools/buildiso/xfce/x86_64/desktopfs/etc/skel/.conkyrc


23-05-2013
There is a catch involved here though; the file one wants to edit may be present in multiple images, like rootfs, livefs, desktopfs), and would need to be edited in the respective image directories.
Canada
----------------------
csclub.uwaterloo.ca  - We are not currently interested in mirroring Manjaro Linux.


It is a good idea to check this thread: [http://forum.manjaro.org/index.php?topic=4545.0] to be sure that the wiki is up to date & also if you have been denied a request to post it in the same thread for obvious reasons.


Then the ISO then can be rebuilt as:
$ buildiso -p xfce -cs


==Do You Manage a Potential Manjaro Mirror Server?==
=== Alternative ===


If so, here are some guidelines for you to think about, as putting up such a Mirror requires a certain commitment & perseverance.
First only the chroot for the ISO could be created, using the {{ic|-i}} option, then the changes can be made, and finally an ISO can be built with the {{ic|-sc}} option.


The Manjaro community is better off not having a mirror, if it isn't kept functioning & up to date.
For example:
So if you aren't in it for the long run, don't do it. You will only create disappointment.


Do you have enough bandwidth for the job?
$ buildiso -p xfce -b stable -x
Do you pay for traffic? Your traffic may increase a lot. If you don't have enough bandwidth, you will end up offering at best a slow mirror, at worst an unreachable mirror.
==> Start building [xfce]
==> Cleaning up ...
  -> Deleting chroot [rootfs] (x86_64) ...
  -> Deleting isoroot [iso] ...
...
...


Do you have enough disk space? You will need 50GB, though being able to offer 100GB would be great for the future. If your drive fills up you will not be able to rsync your mirror, it will become out of date & cause problems.
After this the changes in the work directory can be made, and the ISO can be generated with:


Sync every six hours. Being a rolling release system Manjaro's repos are very dynamic. So mirrors need to be updated multiple times per day.
$ buildiso -p xfce/ -cz


Keep an eye on your sync scripts. Make sure that your mirror updates are functioning correctly. Users depend on your data to be all there & current.
= Further reading =


Watch the Manjaro forum for announcements re. changes that may effect the mirror/repo system. The Manjaro administration will send you an email for any important changes. Though it often helps to be primed & ready for a change.
* [https://gitlab.manjaro.org/tools/development-tools/manjaro-tools Manjaro Gitlab]
* [[Build Manjaro ISOs with buildiso]]




If you can supply a new Manjaro mirror, post in this thread: [http://forum.manjaro.org/index.php?topic=683.0]
[[Category:Contents Page]]

Revision as of 16:43, 22 May 2019


Introduction

manjaro-tools consists of a lot of different tools aimed at Manjaro developers. It is splitted into 3 different packages:

  • manjaro-tools-base contains basic tools, different chroot tools, and buildset
  • manjaro-tools-pkg contains small helper tools, buildpkg, and buildtree
  • manjaro-tools-iso contains small helper tools and buildiso


All of these manjaro-tools packages are replacements for devtools and manjaroiso.

A detailed user manual is available at gitlab.

Configuration

manjaro-tools can be configured by copying the folder /etc/manjaro-tools to your home in ~/.config folder and then edit the file ./config/manjaro-tools/manjaro-tools.conf

Files

These are the new names for renamed scripts.

  • mkmanjaroroot --> mkchroot
  • manjarobuild --> buildpkg
  • mkset --> buildset
  • pacstrap --> basestrap
  • genfstab --> fstabgen
  • arch-chroot --> manjaro-chroot


buildset

buildset is used to create build lists. Build lists can be defined in /etc/manjaro-tools/sets/<buildlistname>.set

The help looks like the following:

$ buildset -h
Usage: buildset [options]
    -c <name>   Create set
    -r <name>   Remove set
    -s <name>   Show set
    -i          Iso mode
    -q          Query sets
    -h          This help


Note
The set name should be different from a directory name in pkgbuilds dir. Anything else should work, eg adding a date to the name.

buildpkg

buildpkg is used to build a particular package or a set. In the following chapter all functions of buildpkg get explained.

If you want a detailed example how to use buildpkg to build packages for a local repository, please look here.


The help looks like the following:

Usage: buildpkg [options]
   -a <arch>          Arch [default: x86_64]
   -b <branch>        Branch [default: stable]
   -c                 Recreate chroot
   -h                 This help
   -i <pkg>           Install a package into the working copy of the chroot
   -n                 Install and run namcap check
   -p <pkg>           Build list or pkg [default: default]
   -q                 Query settings and pretend build
   -r <dir>           Chroots directory
                      [default: /var/lib/manjaro-tools/buildpkg]
   -s                 Sign packages
   -w                 Clean up cache and sources

To build a single package, go into the directory which is one above the package build directory (which contains the PKGBUILD), and run it as:

buildpkg -p <package-name>

To build a set the name of the set can be used. The current sets can be queried with the -q option.

buildtree

buildtree is a little tools to sync arch abs and manjaro packages git repos.

The arguments are:

$ buildtree -h
Usage: buildtree [options]
    -s            Sync manjaro tree
    -a            Sync arch abs
    -c            Clean package tree
    -q            Query settings
    -h            This help[/code]

To sync Arch and Manjaro trees:

buildtree -as


buildiso

buildiso is used to build a particular ISO or a set of ISOs. All functions of buildiso will be explained in the following chapters.

If you want a detailed guide how to use buildiso to build your own Manjaro ISOs from scatch, please look here.


Overview

The help looks like the following for x86_64:

$ buildiso -h
Usage: buildiso [options]
    -p <profile>       Buildset or profile [default: default]
    -a <arch>          Arch [default: x86_64]
    -b <branch>        Branch [default: stable]
    -r <dir>           Chroots directory
                       [default: /var/lib/manjaro-tools/buildiso]
    -c                 Disable clean work dir
    -x                 Clean xorg cache
    -l                 Clean lng cache
    -i                 Build images only
    -s                 Generate iso only
                       Requires pre built images (-i)
    -v                 Verbose output, show profies detail (-q)
    -q                 Query settings and pretend build
    -h                 This help

Query Building

To query build an ISO (-q option), for example the xfce-openbox-openrc profile, the following command can be used:

~ >>> buildiso -p xfce -qv                                                           
[sudo] password for fh: 
==> manjaro-tools
  -> version: 0.15.9
  -> config: ~/.config/manjaro-tools/manjaro-tools.conf
==> PROFILE:
  -> build_lists: community|default|manjaro|sonar|v17-release
  -> build_list_iso: xfce
  -> is_build_list: false
==> OPTIONS:
  -> arch: x86_64
  -> branch: unstable
  -> kernel: linux419
==> ARGS:
  -> clean_first: true
  -> images_only: false
  -> iso_only: false
  -> persist: false
==> DIST SETTINGS:
  -> dist_name: Manjaro
  -> dist_release: 18.0
  -> dist_codename: Illyria
==> ISO INFO:
  -> iso_label: MJRO180
  -> iso_compression: xz
==> BUILD QUEUE:
 --> Profile: [xfce]
  -> iso_file: manjaro-xfce-18.0-unstable-minimal-x86_64.iso
  -> autologin: true
  -> nonfree_mhwd: true
  -> multilib: true
  -> extra: false
  -> netinstall: false
  -> chrootcfg: false
  -> geoip: true
  -> efi_boot_loader: grub
  -> hostname: manjaro
  -> username: manjaro
  -> password: manjaro
  -> login_shell: /bin/bash
  -> addgroups: lp,network,power,sys,wheel
  -> enable_systemd: avahi-daemon bluetooth cronie ModemManager NetworkManager org.cups.cupsd tlp tlp-sleep ufw lightdm
  -> enable_systemd_live: manjaro-live mhwd-live pacman-init mirrors-live
  -> disable_systemd: pacman-init

Building

To actually build the ISO:

$ buildiso -p xfce -b stable

Building with predownloaded Xorg packages

To build an ISO while retaining the previously downloaded cache of Xorg packages, the -x option can be used:

$ buildiso -p xfce-openbox-openrc/ -b stable -x

Building with a small config change

Note
It is to be verified if the procedure given below works or not.

Supposing something only changed in config, like a setting, instead of building the whole ISO from scratch, the ISO build directory can be modified and the ISO can be rebuilt. For example, supposing one changed xfce-overlay/etc/skel/.conkyrc in the config, one can go into the work directory, modify the said file, and rebuild the ISO using the -cs option.

The work directory can be found using the - option:

~ >>> buildiso -h                                                                                   
Usage: buildiso [options]
    -p <profile>       Buildset or profile [default: default]
    -a <arch>          Arch [default: x86_64]
    -b <branch>        Branch [default: unstable]
    -r <dir>           Chroots directory
                       [default: /var/lib/manjaro-tools/buildiso]
    -t <dir>           Target directory
                       [default: /home/fh/Data/build/iso]
    -k <name>          Kernel to use
                       [default: linux419]
    -g <key>           The gpg key for sfs signing
                       [default: ]
    -m                 Set SquashFS image mode to persistence
    -c                 Disable clean work dir
    -f                 Build full ISO (extra=true)
    -d <comp>          Compression used for build ISO: xz, gzip, lzma, lzo, lz4
                       [default: xz]
    -x                 Build images only
    -z                 Generate iso only
                       Requires pre built images (-x)
    -v                 Verbose output to log file, show profile detail (-q)
    -q                 Query settings and pretend build
    -h                 This help

(work directory highlighted in bold)

The required file can be edited as root, for example:

$ sudo nano /var/lib/manjaro-tools/buildiso/xfce/x86_64/desktopfs/etc/skel/.conkyrc

There is a catch involved here though; the file one wants to edit may be present in multiple images, like rootfs, livefs, desktopfs), and would need to be edited in the respective image directories.


Then the ISO then can be rebuilt as:

$ buildiso -p xfce -cs

Alternative

First only the chroot for the ISO could be created, using the -i option, then the changes can be made, and finally an ISO can be built with the -sc option.

For example:

$ buildiso -p xfce -b stable -x

==> Start building [xfce] ==> Cleaning up ...

 -> Deleting chroot [rootfs] (x86_64) ...
 -> Deleting isoroot [iso] ...
...
...

After this the changes in the work directory can be made, and the ISO can be generated with:

$ buildiso -p xfce/ -cz

Further reading

Cookies help us deliver our services. By using our services, you agree to our use of cookies.